适用于 v2rayN、v2rayNG 与 v2flyNG 的订阅更新故障。先区分“没有取回订阅内容”和“取回内容却没有可识别节点”,再检查链接权限、响应格式、更新路径与证书。保留已有可用配置,每次只改变一个条件,用更新日志确认故障停在哪一层。
先定位更新失败的环节
订阅更新是客户端获取服务器列表的过程,不是一次节点连接测试。客户端需要访问订阅地址、取得响应、解析内容,再写入对应分组。Xray 或 V2Fly 内核随后才负责使用节点配置建立连接。因此,“订阅更新成功”不代表每个节点都能连通,“已有节点可用”也不代表订阅地址仍然有效。
可按链接与权限、内容格式、更新网络、TLS 证书的顺序检查。这个顺序优先处理容易核实、修改成本较低的问题,不代表所有网络环境都有相同的故障比例。先打开客户端日志,记录本次更新的时间和完整错误类型,避免把上一轮连接日志当成订阅错误。
- 连接超时或域名解析失败:通常还没有拿到有效响应,优先查网络与 DNS。
- 返回 401、403 或 404:请求收到了服务器响应,优先核实权限、访问策略与地址。
- 提示更新完成但数量为零:优先检查响应正文、格式兼容性以及当前分组筛选。
- 列表正常但节点不可用:转向节点参数、内核支持与路由排查,不要反复重置订阅。
链接过期与权限变化:先核实订阅地址
订阅链接常带有账户令牌。重置订阅、套餐到期、账号状态变化或提供方调整接口,都可能让旧地址失效。浏览器能够登录账户页面,只能说明网页会话有效;客户端的订阅请求未必携带相同的登录状态。复制的应当是提供方标明的订阅地址,而不是后台页面地址。
-
保留现有列表
记录当前分组名称和节点数量;若需导出备份,放在受控的本地位置。先不要删除原分组,也不要把含令牌的链接放进公开截图。
-
重新获取地址
进入提供方的订阅管理页面,核实账户状态后重新复制对应客户端格式的地址。保留完整查询参数,删除复制时混入的空格、换行和引号。
-
核对分组设置
v2rayN 常见入口为「订阅分组」→「订阅分组设置」,打开目标分组检查地址;安卓端可从主界面菜单进入「订阅分组设置」,编辑对应条目。菜单文字可能随版本略有调整。
-
只更新目标组
保存后仅更新该分组,立即查看日志。不要同时更新所有来源,否则一个分组的成功信息可能掩盖另一个分组的错误。
重新生成地址通常会使旧令牌失效,其他设备也需要同步修改。若响应是 403,不应直接认定套餐过期:来源限制、防护页面和请求频率限制也可能返回相同状态。应把状态码与提供方账户页面的信息一起判断。
节点解析为空:检查返回内容与格式
HTTP 请求成功只说明取回了内容,不说明取回的是节点列表。登录页面、维护提示、防护验证页甚至一段 JSON 错误消息,都可能以 200 状态返回。出现“解析为空”时,先确认内容类型,再考虑升级客户端;反复粘贴同一个错误页面不会改变结果。
| 实际内容 | 识别线索 | 处理方式 |
|---|---|---|
| 订阅请求地址 | 通常以 HTTPS 开头,用于获取列表 | 填入订阅分组地址栏,再执行更新 |
| 单条分享链接 | 常以 vmess:// 或 vless:// 开头 | 使用剪贴板导入,不作为远程订阅地址 |
| Base64 编码列表 | 解码后通常是多条分享链接 | 确认客户端支持对应订阅编码与协议 |
| 其他配置文本 | 可能是 YAML 或完整 JSON 配置 | 向来源获取适配当前客户端的订阅格式 |
| 网页或错误消息 | 含 HTML 标签、登录提示或权限说明 | 修复地址、权限或访问策略,而非修改节点 |
Base64 是编码,不是加密,也不是协议名称。看起来像长字符串并不能证明内容完整有效;不要凭外观随意补字符。若需要检查内容,应在本地受控环境中查看,先确认没有复制截断,再核实解码结果是否确实包含分享链接。
还要区分“客户端能解析分享格式”与“所选内核能运行该配置”。安卓端 v2rayNG 使用 Xray 内核,v2flyNG 使用 V2Fly 内核;遇到 REALITY 等特性时,应核对实际内核支持与版本。替换客户端不会修复失效令牌,也不会自动把任意配置文件转换为兼容订阅。
- 取消主界面的搜索条件,检查是否切到了其他订阅分组。
- 比较更新前后的分组数量,确认不是筛选条件隐藏了节点。
- 若只有部分节点被跳过,记录对应协议与解析错误,不要把全部节点判为失效。
更新时未走代理:分别测试直连与代理路径
订阅请求不一定沿用浏览器的网络路径。部分客户端提供单独的订阅更新方式,即使系统代理已开启,选择“不通过代理”更新仍会走直连。反过来,若更新依赖的当前节点已经失效,通过代理更新也会失败,形成“需要先更新才能得到可用节点”的循环。
-
测试直连更新
在 v2rayN 的「订阅分组」菜单中,选择当前订阅的“不通过代理”更新项。记录是超时、解析失败还是返回 HTTP 状态,不要只记“失败”。
-
确认代理可用
选择一个已经验证可用的已有节点,确认核心已启动且普通 HTTPS 请求能完成。仅有延迟测试结果,不足以证明完整网页请求可用。
-
改用代理更新
在同一菜单选择“通过代理”的对应更新项。安卓端先连接已有可用配置,再从主界面菜单执行订阅更新,并查看本次日志确认结果;不能仅凭连接图标推断请求路径。
-
比较两次结果
代理成功、直连失败时,重点检查直连网络与解析;直连成功、代理失败时,重点检查代理出站和订阅域名的访问策略。两者均失败再继续查链接与证书。
若要检查桌面端本地代理端口,以「设置」→「参数设置」中实际显示的监听值为准。例如,只有界面确实配置为 127.0.0.1:10808 时,才检查该端口;10808 不是所有版本和所有协议的统一默认值。HTTPS 订阅通常访问远端 443 端口,与本地代理监听端口是两回事。
证书与网络报错:根据原文选择修复项
TLS 验证发生在订阅内容解析之前。证书错误时,客户端可能根本没有拿到订阅正文。先检查系统日期、时区与自动时间同步,再核实订阅域名和证书链。不要把节点里的“跳过证书验证”当成订阅下载修复开关,这两者可能属于完全不同的请求层。
报错: x509: certificate has expired or is not yet valid
原因与解法:证书有效期与当前时间不匹配,可能是设备时间错误或服务端证书过期;先同步系统时间,仍复现则联系提供方更新证书。
报错: x509: certificate signed by unknown authority
原因与解法:本机不信任签发链,也可能存在网络设备替换证书的情况;更新系统信任库并在可信网络复测,由服务端补齐证书链,不导入来源不明的根证书。
报错: Could not resolve host
原因与解法:当前解析路径无法得到订阅域名地址;核对域名拼写,确认网络已联网,并比较其他可信网络上的解析结果。
报错: Connection refused
原因与解法:目标端口拒绝连接,目标可能是订阅服务器或本地代理;先辨认日志中的主机与端口,再检查服务状态或代理监听设置。
不同操作系统与请求组件的报错措辞可能不同,以上是常见原文,不要求日志逐字一致。若出现“连接被重置”或超时,也不能仅凭一句报错认定证书有问题;必须结合错误发生阶段判断。
- 安卓:可从系统「设置」→「系统」→「日期和时间」检查自动时间,具体路径以设备系统为准。
- Windows:可从「设置」→「时间和语言」→「日期和时间」执行时间同步。
- 公共网络:先完成网络接入认证;认证页拦截可能让订阅请求返回网页。
- 持续证书错误:不要将域名直接改为 IP 地址,这可能引入证书名称不匹配,也可能破坏服务端路由。
恢复更新后的验证与反馈记录
修复后至少完成一次“更新结果核对”和一次“节点实际连接验证”。先看目标分组是否出现预期条目,再选择其中一个节点测试。若更新成功但连接失败,应保留这次成功的更新记录,转而检查节点参数、内核支持、系统代理和路由规则。
-
核对更新结果
确认日志中没有残留本轮解析错误,列表不受搜索条件遮挡,分组归属正确。节点数量变化应与来源实际提供的内容一致。
-
验证一个节点
选中一个新条目并启动连接,访问正常的 HTTPS 页面。延迟测试与真实访问分开记录,避免只凭一个测试数字下结论。
-
整理脱敏记录
记录客户端版本、操作系统、更新时间、直连或代理方式、HTTP 状态和错误原文。发送前删除令牌、节点密码与完整订阅正文。
仍需帮助时,可以用“同一地址在直连更新超时,通过已有节点更新返回 403”这样的对照结果描述问题。它比“订阅坏了”更容易区分网络与权限故障。不要高频重复点击更新;遇到 429 状态或明确的限流提示,应按服务端要求等待再试。