本页目录(9)
一句话结论:订阅更新失败最常见的原因是订阅域名被墙,开启「通过代理更新」或先连上代理再更新即可;导入后没有节点,多半是链接复制错、格式不匹配、账号到期或客户端内核太旧。
先看报错:订阅更新失败的几种典型表现
订阅更新失败和导入没有节点,看起来是同一件事,其实背后的原因差别很大。最省时间的办法是先看客户端给出的报错信息,再对号入座。常见的情况可以归为下面几类:
| 表现 / 报错关键词 | 最可能的原因 | 先做什么 |
|---|---|---|
| timeout、超时、connection reset、EOF | 订阅域名被墙或网络不通 | 开启通过代理更新,或换网络重试 |
| 403、404、401、invalid token | 链接已重置、复制不完整、账号被停用 | 回用户中心重新复制链接 |
| yaml 解析错误、unmarshal、invalid config | 订阅格式与客户端不匹配 | 改用对应客户端的专用链接 |
| certificate、x509、TLS 报错 | 系统时间错误或网络被劫持 | 校准系统时间,换网络 |
| 导入成功,但 0 个节点或只有几个「信息节点」 | 账号到期、流量用完、内核不支持协议 | 登录用户中心看账号状态 |
下面按出现频率从高到低逐项展开。
原因一:订阅域名被墙,需要通过代理更新
这是订阅更新失败最常见的原因。机场的订阅链接通常挂在一个境外域名上,这个域名本身可能被墙或者被 DNS 污染。于是出现一个矛盾:你需要代理才能访问订阅地址,而客户端默认是「直连」去下载订阅的。
典型症状是:节点明明还能用,网页也打得开,但点击「更新订阅」就超时。解决方法:
- 在客户端里开启通过代理更新:Clash Verge Rev 在订阅的编辑设置里有使用系统代理或 Clash 代理更新的选项,打开后再更新即可,具体位置见 Clash Verge Rev 使用教程。其他客户端一般也有类似开关。
- 没有这个开关时,先连上代理再更新:选一个当前还能用的节点,开启系统代理或 TUN 模式,再点更新。
- 一个节点都没有时:如果是第一次导入、本地没有任何可用配置,可以先用另一家机场或另一个已能翻墙的设备导入;或者在用户中心看有没有备用订阅域名。很多机场会同时提供两三个订阅地址,其中某个可能没被墙。
如果你直接写 mihomo 配置文件,proxy-providers 支持用 proxy 字段指定通过哪个代理组去下载订阅,例如:
proxy-providers:
main:
type: http
url: "https://example.com/your-subscription"
path: ./providers/main.yaml
interval: 86400
proxy: 节点选择
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
这里的 节点选择 要换成你配置里实际存在的策略组名称。这样即使订阅域名被墙,定时更新也能自动走代理完成。interval 单位是秒,86400 即每天更新一次,一般足够;设得太短没有意义,还可能触发机场对频繁拉取订阅的限制。
原因二:链接复制错或格式不匹配
导入后没有节点、或者直接报解析错误,往往是链接本身的问题:
- 复制成了网页地址:把机场官网或用户中心的网址当成订阅链接导入,客户端拿到的是 HTML 网页,自然解析失败。订阅链接一般在用户中心的「订阅」「一键导入」区域,通常带有一长串随机字符(token)。
- 链接不完整:手机上长按复制时容易截断,或者末尾多了空格、换行。最好用页面上的「复制」按钮,而不是手动选取。
- 格式不对:Clash 系客户端需要 YAML 格式的完整配置;v2rayN、Shadowrocket 等常用的是 Base64 编码的节点链接列表。很多机场会按客户端的 User-Agent 自动返回不同格式,但并非全部如此。最稳妥的办法是在用户中心点对应客户端的导入按钮,或使用标明「Clash」「Shadowrocket」的专用链接。
关于订阅链接的格式和各客户端的导入方式,订阅链接是什么、怎么导入这篇有更完整的说明。
原因三:账号到期、流量用完或链接被重置
订阅能正常下载,但节点列表是空的,或者只剩几个名字写着「剩余流量:0」「套餐已过期」的节点,这就是账号层面的问题。这类「信息节点」本身无法连接,只是机场用来提示状态的。
- 登录用户中心:查看套餐是否到期、流量是否用完、账号是否被暂停(例如因多设备共享触发了限制)。
- 检查链接是否被重置:如果你或者别人在用户中心点过「重置订阅链接」,旧链接会立即失效,有的机场返回 403,有的返回空列表。重新复制新链接导入即可。
- 续费后要手动更新一次:续费或重置流量后,客户端里的缓存不会自己刷新,需要手动点一次更新订阅。
原因四:客户端内核太旧,不支持订阅里的协议
现在很多机场提供 VLESS Reality、Hysteria2、TUIC、AnyTLS 等较新的协议。早已停更的 Clash for Windows 等旧客户端使用原版 Clash 内核,不认识这些协议,结果可能是整份配置报错,或者这些节点被丢弃,只剩少量甚至零个节点。
解决办法是换用仍在维护、采用 mihomo 或 sing-box 内核的客户端,例如电脑上的 Clash Verge Rev。各平台的选择可以看 代理软件推荐。如果你不确定订阅里有哪些协议,可以把订阅内容粘贴到 订阅解析工具 里看一眼协议分布。
原因五:系统时间、网络劫持等本地问题
- 系统时间不对:订阅链接几乎都是 HTTPS,系统时间偏差太大时证书校验会失败,报 certificate 或 x509 之类的错误。把系统时间设为自动同步即可,这一点对 VMess 等对时间敏感的协议也很重要。
- 公司、学校或公共 Wi-Fi:一些网络会拦截或劫持 HTTPS 访问,导致订阅下载失败。换手机流量热点试一次,能快速判断是不是网络环境的问题。
- 安全软件拦截:部分杀毒软件或防火墙会阻止代理客户端联网,需要把客户端加入信任列表。
怎么确认问题出在机场还是客户端
一个简单的分流测试:在已经能翻墙的浏览器里直接打开订阅链接。
- 浏览器也打不开或返回错误码:问题在链接或账号,联系机场客服或重新复制链接。
- 浏览器能看到一大段 YAML 或乱码(Base64):订阅本身正常,问题出在客户端的网络、格式或内核上。
把浏览器返回的内容复制到 订阅解析工具,能直接看到节点数和到期信息,判断是不是「其实有节点,只是客户端没认出来」。仍然解决不了,可以把报错截图发给机场客服,大多数正规机场都能很快定位。如果你的机场经常出现订阅域名不可用的情况,也值得看看 机场官网打不开怎么办,提前保存好备用入口。