更新订阅本身也要能联网
订阅更新是一次普通的 HTTP 请求。客户端得先把配置文件下载回来,才谈得上解析和应用。这句话听着像废话,但它解释了最常见的那个死循环:节点全挂了,而订阅又设成「经由代理更新」,于是拉不到新配置 → 没有可用节点 → 更不上。
破法很直接。在订阅项的编辑对话框里把更新方式临时改成直连,或者干脆断开系统代理再点更新。手机开个热点、电脑连过去更新一次,效果一样。拿到新配置之后再改回来。
先看请求发出去了没有
更新一直转圈的时候,去日志页找有没有对应的请求记录。完全没有记录,说明请求根本没发出去,问题在本机。
按返回的状态分类最快
- 1
401 / 403:链接失效或账号被停
服务商拒绝了这次请求。常见原因是套餐到期、流量跑满、订阅链接被重置,或者同一条链接在太多设备上用被风控。登录服务商后台看一眼订阅链接是不是变了,变了就重新复制一条。
- 2
404 与超时:一个地址错,一个路不通
404 说明这个地址在服务器上不存在,多半是复制时少了尾巴,或者服务商换了域名。超时、连接被重置这类则是网络路径的问题:订阅域名本身可能被干扰,换个网络环境,或者让更新走代理试试。
- 3
200 但解析失败:拿回来的不是配置
这种最容易误判。请求成功了,但日志里报 yaml 解析错误。原因通常是服务商返回了一个网页——提示登录、地区限制、或者人机验证页——客户端拿着一堆 HTML 去解析 YAML,当然报错。把链接贴到浏览器地址栏打开一次,看到网页就确认了。
把链接和 UA 逐项核一遍
先确认链接本身没写坏:复制时是不是少了末尾几位、前后多了空格、中文输入法带进了全角引号,或者干脆复制成服务商的网页地址而不是订阅地址。订阅地址通常带 token 或一长串参数,网页地址不带。
还有一项是 User-Agent。部分服务商按 UA 决定返回哪种格式,UA 不对就给你一份别的客户端能用、Clash 不能用的配置。订阅的编辑对话框里可以单独填这一栏。
- 浏览器能直接下载到一份 yaml 文本,而不是跳出网页
- 日志页有这次更新的请求记录,状态是 200
- 订阅卡片上的到期时间和流量数字刷新了
常见问题
更新时报 403,是订阅被封了吗?
不一定。403 只是服务商拒绝了这次请求,套餐到期、流量用完、订阅链接被重置、同一条链接连的设备太多,都会返回这个。先登录服务商后台核对订阅状态和链接,链接变了就换一条再更新。
订阅在浏览器能打开,客户端却更新不了,差在哪?
差在两者的网络路径和请求头不同。浏览器可能走系统代理而订阅设的是直连,或者反过来;另外浏览器的 User-Agent 和客户端不同,服务商可能因此返回了不同内容。先把网络出口统一,再把订阅的 User-Agent 填成客户端该有的值。