先看失败发生在哪个阶段
| 阶段 | 常见现象 | 优先检查 |
|---|---|---|
| 取得订阅内容 | DNS、连接、TLS 或 HTTP 报错 | 链接、网络路径、账号状态和响应 |
| 解析配置 | 未知字段、结构错误、没有可导入内容 | 格式、目标内核、版本与返回正文 |
| 启用与请求 | 导入成功但节点不可用或走错路径 | 实际节点、接管、规则与出站 |
订阅是取得配置的一种方式,不是连通性证明。更新成功只能说明相应下载和导入步骤完成;节点是否能建立连接、应用是否被接管,需要随后单独验证。
下载失败时,先查链接和请求路径
检查链接是否完整,包括查询参数;复制时多一个空格、漏掉令牌、把说明页地址当成订阅地址,都可能取得错误内容。域名变化则要以服务提供方的正式说明为准。
DNS 无法得到地址、连接超时与证书错误,分别处于不同阶段。TLS 失败先核对设备时间和证书错误细节,不要通过关闭校验让更新“看起来成功”。
客户端的订阅更新可能使用直连、当前代理或指定出站,取决于软件设置。浏览器能打开链接,只能证明浏览器这一条路径可用;用客户端日志确认更新请求走哪条路径。
收到 HTTP 响应后,按状态和正文处理
| 响应 | 可以怎样理解 | 处理方式 |
|---|---|---|
| 401 / 403 | 请求未获授权或被服务拒绝,原因需看服务说明 | 检查账号、令牌、客户端要求及提供方状态 |
| 404 | 当前地址没有返回所需资源 | 确认链接是否过期、变更或复制错误 |
| 429 | 服务要求减少请求频率 | 停止反复更新,按 Retry-After 或服务说明等待 |
| 200 但正文是 HTML | 取得了网页,不是预期配置 | 检查是否为登录页、错误页或说明页 |
403 不一定等于订阅到期,404 也不能单凭状态确定是服务停用。以返回正文、账号界面和正式通知综合判断,避免把所有拒绝响应归到节点故障。
如果服务明确要求指定客户端或请求头,用受支持的客户端重新获取。不要把任意修改 User-Agent 当成通用修复;即使能取得内容,格式也仍需适合目标内核。
下载完成,再核对内容格式与目标内核
分享链接列表、Clash / mihomo YAML 和 sing-box JSON 不可互相等同。选择客户端支持的导入类型,核对配置字段与当前内核版本,再看解析错误指向哪一项。
未知字段往往需要查版本兼容性;缩进或引号错误属于语法;返回 HTML 则应先回到下载阶段。不要只改文件扩展名,或在不知道字段用途时逐项删掉错误项。
有些客户端还会合并本地覆写、规则与策略组。下载正文能解析,但合并后启动失败时,应检查完整生效配置中的引用和端口,保留原配置便于恢复。
排查之前备份,提供日志时隐藏令牌
保留当前仍可用的配置,再更新远程内容。遇到空结果或格式改变时,先检查软件是否已替换当前配置,避免故障时同时丢失上一份可用内容。
订阅链接的查询参数、路径或认证信息可能包含访问令牌。公开截图、日志和问题反馈时,把完整链接与凭证替换为占位文字;不需要把真实链接提交给陌生转换站。
确实需要格式转换时,优先使用服务方提供的目标格式或自己信任的工具。若令牌已泄露,在提供方支持的情况下重置,再更新自己使用的设备。
更新完成后,选一个目标实际验证
启用更新后的配置,确认节点与策略组仍存在,再发起一条实际请求。客户端日志应能对应目标、命中规则与最终出站;HTTP 或 SOCKS 入口也可用 curl 明确测试。
若只有个别节点失败,记录这些节点的连接错误,先不要继续归咎订阅下载。若所有应用都没有进入客户端,则回头检查系统代理或 TUN 接管。把下载、解析和运行分别验证,后续错误才容易复现。
常见问题
浏览器能下载订阅,客户端为什么还更新失败?
二者可能使用不同 DNS、代理路径、认证信息或请求头;客户端还需解析内容。先看错误是下载阶段还是格式阶段,再核对该软件支持的订阅类型。
多久更新一次才合适?
以客户端默认设置和提供方说明为起点。没有必要为排查错误持续高频重试;遇到 429 时按服务要求降低频率或等待。
参考资料
原理和协议定义可查以下标准与官方文档。文中的流程图由 AFQKit 绘制。