Clash 订阅更新失败排查:常见报错原因与自动更新间隔设置

梳理订阅拉取超时、证书错误、返回内容非 YAML 等常见失败原因,并说明 interval 自动更新间隔与手动刷新的正确设置方式。

先分清失败位置:下载、解析还是启用

订阅更新通常经过三个步骤:客户端请求订阅地址,检查返回内容,再保存或加载配置。提示“更新失败”不一定表示节点失效;节点仍能连接,也不代表订阅地址仍然有效。排查时先保留当前可用配置,不要删除后重新导入,更不要连续点击刷新。

  1. 记录对象:是“配置 / Profiles”里的整份远程配置,还是“代理集合 / Proxy Providers”中的某个节点集合。
  2. 记录原文:打开客户端“日志 / Logs”,手动更新一次,保存同一时间附近的错误、HTTP 状态码和配置名称。不同客户端的入口名称可能不同。
  3. 检查现状:确认旧配置是否还能使用、最后成功更新时间是否变化,以及更新后是否仍选中了目标配置。
日志或状态优先检查下一步
no such host订阅域名解析检查域名拼写与当前网络 DNS
i/o timeout连接或读取超时换网络,对比直连与代理下载
x509时间与证书链同步系统时间,核对证书错误全文
401 / 403授权、令牌或访问策略在服务商账户页核对订阅状态
429刷新频率限制停止重试,遵循服务端等待时间
yaml: unmarshal errors格式或字段类型检查响应正文、订阅类型与内核兼容性

拉取超时:分别检查域名、网络与下载路径

先换网络,再改配置

context deadline exceeded 表示操作超出期限,但不能仅凭这一句确定是 DNS、TCP 连接、TLS 握手还是响应读取变慢。先对照日志中的具体阶段,再让同一设备从 Wi-Fi 切到手机热点,使用同一订阅地址手动更新一次。一次只改一个条件,才能判断是否与原网络有关。

  • 域名解析失败:检查链接是否多了空格、换行或缺少字符。网页能打开其他网站,不能证明订阅域名一定能解析。
  • 连接被拒绝:connection refused 通常说明目标端口拒绝连接,应检查服务端地址或本地代理监听状态。
  • 读取超时:服务器可能已接收连接,但响应迟迟没有完成。记录发生时间与网络环境,再向服务商反馈。

系统代理、TUN 与订阅下载不是同一个开关

整份配置可能由客户端界面进程下载,也可能由其他组件处理;proxy-providers 的远程资源则通常由内核获取。因此,“浏览器已经走代理”并不能证明订阅请求使用了相同路径。TUN 能接管哪些连接,还受路由、进程排除和客户端实现影响。

如果客户端提供“通过代理更新”之类的选项,先确认已有可用节点,再切换该选项对比一次。旧节点全部失效时,强制依赖旧节点下载新订阅可能形成循环依赖,应尝试直连或更换可访问订阅地址的网络。

证书错误:先修正时间与信任链

HTTPS 订阅需要验证服务器身份。遇到证书错误时,先看完整提示,不要直接关闭验证。节点配置中的 skip-cert-verify 主要影响相应代理节点的 TLS 验证,并不是客户端订阅下载器的通用修复开关。

  1. 同步系统时间:开启操作系统的自动日期与时间,检查年份、时区和同步状态。系统时钟偏差可能让有效证书被判断为尚未生效或已经过期。
  2. 核对域名:certificate is valid for 一类错误常涉及主机名不匹配。不要把订阅域名擅自替换成 IP 地址,这可能同时破坏证书验证与虚拟主机选择。
  3. 排除网络认证:公共 Wi-Fi 可能需要先打开认证页面;完成登录后再更新。单位网络中的 HTTPS 检查也可能改变证书链,应联系网络管理员确认。
  4. 检查信任环境:certificate signed by unknown authority 可能来自服务器证书链不完整,也可能来自设备信任库或网络拦截。换到个人热点复测,有助于缩小范围。

如果设备时间正常、不同网络均报告同一订阅域名证书过期,应交由服务商修复。不要把 HTTPS 地址改成 HTTP,也不要通过安装陌生根证书来绕过提示。

返回内容非 YAML:检查状态码与订阅类型

HTTP 请求成功不等于拿到了可用配置。状态码为 200 时,正文仍可能是登录页面、访问验证页或账户到期通知。反过来,Content-Type 写成 text/plain 也不能直接判定失败,部分服务会用它返回有效 YAML;最终要检查正文结构。

常见响应分别怎样处理

  • 正文以 <!DOCTYPE html> 开头:拿到的是网页。确认复制的是客户端订阅地址,而不是账户后台地址;不要把网页内容保存为配置后强行加载。
  • 正文是 vmess:// 等链接或一长串编码文本:可能选择了通用节点订阅,而非适合当前客户端的配置格式。回到服务商的订阅导出入口选择对应类型。
  • 正文是 JSON 错误信息:先读服务端错误说明。修改 YAML 缩进不能修复账户失效或令牌错误。
  • 正文确实是 YAML:继续检查字段层级、数据类型和内核支持情况。YAML 语法能解析,不代表它一定符合 Clash 或 mihomo 的配置结构。

整份配置与节点集合不要混用

整份配置可以包含 proxies、proxy-groups、rules,也可以通过 proxy-providers 引用节点集合。常见的 provider YAML 则以 proxies: 列出节点;它不等同于完整的策略组与规则配置。将整份配置地址填进只接受节点集合的入口,或把节点集合当完整配置导入,都可能产生解析或运行问题。

如果日志明确提示不支持某种节点类型或字段,核对客户端“关于”页面显示的内核名称与版本。传统 Clash 与 Clash Meta(现称 mihomo)的支持范围存在差异,不能只看应用名称中是否含有 Clash。字段层级可对照配置文件结构说明,格式转换边界可参考订阅转换说明。

自动更新间隔:区分三种 interval

“每小时更新订阅”不是在 YAML 任意位置写入 interval: 3600。整份远程配置的定时刷新通常属于客户端配置管理功能;provider 下载与节点健康检查则有各自的字段。把三者混用,往往会出现延迟测试一直运行、节点列表却没有变化的情况。

设置位置实际作用单位与示例
客户端远程配置编辑页重新下载整份订阅配置依界面标注;60 分钟等于 1 小时
proxy-providers.名称.interval刷新 HTTP 节点集合秒;3600 等于 1 小时
health-check.interval检测集合中的节点可用性秒;300 等于 5 分钟
url-test 策略组的 interval按周期进行延迟测试秒;不负责下载订阅

整份订阅:在远程配置条目里设置

常见入口是“配置 / Profiles”→目标远程配置的菜单→“编辑 / Edit”→自动更新或更新间隔;这是一类入口的描述,具体名称以客户端界面为准。若输入框单位是分钟,填 60 才是一小时;若单位是秒,则应填 3600。不要跨客户端照抄同一个数字。

建议先以每 6 小时或每天更新一次作为起点,再根据服务商要求调整。订阅地址稳定、节点很少变更时,过密刷新通常没有帮助。也不要假定填 0 一定代表关闭;应优先使用明确的关闭开关,并查看当前客户端说明。

HTTP provider:在对应集合里设置

下面是 mihomo 常见 HTTP provider 的配置片段,不是完整可运行配置。example.com 是文档示例域名,不能提供实际节点;使用时需要填写账户提供的节点集合地址,并让策略组通过 use 引用集合名称。

proxy-providers:
  daily-nodes:
    type: http
    url: "https://example.com/subscription.yaml"
    path: ./providers/daily-nodes.yaml
    interval: 21600
    health-check:
      enable: true
      url: "https://www.gstatic.com/generate_204"
      interval: 300

这里 21600 秒是 6 小时,控制节点集合下载周期;300 秒是健康检查间隔,不会刷新节点清单。健康检查地址还应能被当前节点正常访问。多个 provider 应使用不同的缓存文件路径,避免写到同一文件。

手动刷新:一次验证与结果确认

手动刷新适合验证修复是否有效,不适合用来反复碰运气。尤其遇到 429 时,应停止连点;若响应带有 Retry-After,按服务端指定时间等待。出现 500、502、503 等服务端错误时,先保留旧配置,稍后重试或查询服务状态。

  1. 保留备份:通过客户端支持的导出功能保存当前可用配置,单独记录本地覆写、策略选择与订阅来源。
  2. 确认目标:在远程配置条目上执行更新,不要误点策略组的延迟测试按钮;更新 provider 时也要确认集合名称。
  3. 只改一项:例如仅切换网络或修正系统时间,然后手动刷新一次,记录错误是否变化。
  4. 检查保存与加载:确认更新时间已变化、日志没有后续解析错误,并核对当前启用的配置。部分客户端在更新非当前配置后不会自动切换。
  5. 验证实际连接:确认策略组仍选择了有效节点,再访问常用目标服务;“下载成功”与“业务访问正常”是两个验收步骤。

如果更新后节点恢复了,但自定义规则消失,通常需要检查修改是否直接写进了远程配置。后续下载可能替换该文件,长期规则应放入客户端明确支持的覆写、合并或扩展功能,并验证最终生成配置。导入与切换步骤见订阅导入教程。

向服务商或客户端维护者反馈时,提供发生时间、系统与客户端版本、内核版本、脱敏状态码,以及“同一地址换网络是否成功”的对照结果。这些信息比重复发送“更新失败”更有助于定位;订阅令牌、完整节点凭据与账户页面截图中的敏感内容应先移除。

下载Clash按平台选择客户端