先定位失败阶段:下载、解析还是载入
Clash 订阅更新不是单一步骤。客户端先请求订阅 URL,取得响应内容,再解析配置,最后保存文件并交给内核载入。下载成功不代表格式正确,配置保存成功也不代表当前内核能够执行全部字段。先看错误发生在哪一步,比反复点击「更新」更有效。
这里的订阅管理主要由图形客户端实现;Clash、Clash Meta 与 mihomo 的内核能力不能直接等同于客户端的下载行为。不同客户端的更新代理、定时器和错误提示可能不同。下文给出参数含义与检查顺序,菜单名称以正在使用的版本为准。
- 在客户端「订阅」或「配置」页面,记录失败条目的名称、最后更新时间与完整错误类型。
- 保留当前仍可用的配置,不要先删除订阅或清空节点。重新导入前,先确认原链接还能取得内容。
- 打开客户端日志,只手动更新一次,按同一时间点查看下载错误与内核载入错误。
- 区分「更新失败」和「更新后节点不可用」:后者还要检查节点状态、策略组与规则,不应直接归因于订阅下载。
| 可见提示 | 通常所在阶段 | 优先检查 |
|---|---|---|
timeout、context deadline exceeded | 连接或读取 | 网络路径、更新代理、响应耗时 |
x509、certificate | TLS 握手 | 系统时间、证书链、域名 |
401、403、429 | HTTP 响应 | 链接权限、访问限制、请求频率 |
yaml、unmarshal | 内容解析 | 返回正文、订阅格式、字段类型 |
| 不支持的代理类型、策略不存在 | 内核校验或载入 | 内核支持范围、策略引用 |
超时排查:先比较直连与更新代理
区分域名解析失败和连接超时
no such host 通常指向域名解析问题;connection refused 表示连接被拒绝;i/o timeout 则需要结合日志判断发生在连接、握手还是读取阶段。不要看到任何网络错误就更换 DNS,也不要把浏览器能打开服务商首页当成订阅接口正常的证明。
Windows 可在 PowerShell 运行下面两条命令,先检查本机 HTTPS 连通性与本地监听。第一条只检查本站的 443 端口,不能代替对实际订阅域名的检查;第二条中的 7890 只是常见混合端口示例,应与客户端显示值核对。
Test-NetConnection clash-winpc.com -Port 443
Test-NetConnection 127.0.0.1 -Port 7890
若订阅日志明确指出某个域名连接失败,可在本机把第一条命令的主机名改成该订阅域名进行测试。只使用主机名,不要把包含访问令牌的完整 URL 粘进公开截图或工单标题。端口连通也不等于 TLS、鉴权和正文下载全部正常。
浏览器可访问,客户端仍超时
浏览器可能使用系统代理,客户端的订阅下载器却可能走直连;反过来,下载器也可能被设置成经过某个已经失效的代理。TUN 模式还可能影响实际路由,因此「更新走直连」这个界面选项并不总能代表数据包最终没有被接管。
- 打开失败订阅的编辑菜单,查找「更新代理」「通过代理更新」或同类选项,记录原设置。
- 先测试一次直连,再测试一次经过已确认可用出口的更新路径。每次只改一项,保留对应时间点的日志。
- 若需要手填代理地址,确认下载器接受 HTTP 代理还是 SOCKS 代理。混合端口示例可写为
http://127.0.0.1:7890,实际协议与端口以客户端设置为准。 - 代理监听正常但请求仍超时,检查所选出口是否能访问订阅域名,以及是否存在失效策略、认证或网络限制。
如果请求总在固定时长后失败,例如每次约 30 秒,应检查客户端是否提供下载超时设置,而不是假定所有客户端的默认超时都为 30 秒。适度延长读取时间只对响应较慢有帮助,无法解决无效域名、被拒绝的连接或权限错误。
证书报错:检查时间、域名和信任链
HTTPS 证书校验用于确认服务器身份。出现证书错误时,先修复时间或信任链,不要把关闭证书验证当成常规处理办法。订阅 URL 往往携带访问凭据,错误地放宽校验会增加凭据与配置内容泄露的风险。
- 尚未生效或已过期:Windows 11 可进入「设置」→「时间和语言」→「日期和时间」,开启「自动设置时间」并点击「立即同步」。确认系统日期正确后重试。
- 域名不匹配:检查订阅 URL 是否仍使用服务商提供的域名。不要自行把 HTTPS 域名替换成 IP 地址,也不要沿用已停用的旧入口。
- 未知签发机构:可能是服务端证书链不完整、本机信任库异常,或企业网络进行了 HTTPS 检查。先完成系统更新,再向服务商或网络管理员确认。
- 浏览器正常、客户端报错:浏览器与下载器可能使用不同的信任库或网络路径。记录具体客户端版本及错误文本,不能仅凭浏览器页面正常就排除证书问题。
节点配置里的 skip-cert-verify 控制相应代理连接的证书校验,不是图形客户端订阅下载器的通用开关。修改节点中的这个字段,通常不能修复下载订阅时的 x509 错误,也不应为排障而批量启用。
HTTP 状态码与格式报错:确认返回的是配置
先处理权限与限流,再看 YAML
服务端返回了响应,不代表响应就是订阅文件。登录页、账户到期提醒、访问验证页也可能被客户端下载下来,随后表现为 YAML 解析失败。甚至 HTTP 状态为 200,正文仍可能是 HTML。
| 状态或正文特征 | 可能原因 | 处理动作 |
|---|---|---|
401 / 403 | 凭据失效、权限或访问策略限制 | 登录服务商账户核对订阅状态,重新复制专用订阅链接 |
404 / 410 | 入口不存在或已移除 | 从账户页面获取当前入口,不自行猜测路径 |
429 | 触发请求频率限制 | 停止连续重试;若有 Retry-After,按其要求等待 |
502 / 503 / 504 | 服务端或上游暂时异常 | 稍后重试,并保留状态码与发生时间 |
<!DOCTYPE html>、登录表单 | 取得网页而非配置 | 核对 URL 类型、跳转目标与服务端访问验证 |
检查响应内容时优先使用本地文本编辑器,只看结构,不公开完整文件。订阅可能包含节点密码、令牌、内部域名和其他敏感信息;第三方在线检测或转换服务也会接触这些内容。
完整配置、节点列表与 provider 文件不能混用
完整 Clash YAML 通常包含 proxies、proxy-groups、rules 等配置段,但并不是每份有效配置都必须同时包含这三个字段。Base64 编码的节点列表、以 ss:// 等协议开头的 URI 列表,不会因为扩展名改成 .yaml 就自动成为 Clash 配置。
用于 proxy-providers 的节点文件通常以 proxies: 组织节点,规则提供器则使用相应的规则载荷结构。它们不应直接当作完整桌面配置导入。优先选择服务商标明适配 Clash 或 mihomo 的输出,再核对该客户端是否支持相应导入方式。
- 缩进错误:YAML 层级使用空格,避免 Tab。按报错行号同时检查上一行,漏写冒号也可能让下一行报错。
- 类型错误:本应为列表的字段被写成字符串,或参数类型与内核预期不符。不要只删掉报错字段而忽略配置含义。
- 内核不兼容:面向 mihomo 的新协议或扩展字段,不一定能由原版 Clash 内核处理。记录实际运行内核及版本,再选择兼容输出。
- 引用失效:策略组或规则引用的名称不存在时,文件可能能解析,但载入仍会失败。核对名称、大小写与订阅更新后的节点变化。
自动更新间隔:区分客户端订阅与内核 provider
客户端订阅定时器
桌面客户端通常在「订阅/配置」→「目标订阅菜单」→「编辑」中提供自动更新设置;部分版本会把入口放在全局设置。找到「自动更新」「更新间隔」与「更新代理」后,先看字段旁的单位,再保存。各项目没有统一默认值,不能把某个客户端的界面参数当成 Clash 内核标准。
普通使用可从每 6 小时一次开始评估:界面单位为分钟时填 360,单位为秒时填 21600。这是一组建议值,不是通用出厂值。服务商若明确规定最短间隔,应遵守该限制;节点变化不频繁时,每 12 或 24 小时更新也可以。不要设置成每分钟请求来掩盖故障。
- 确认订阅能手动更新成功,再开启自动更新。
- 保存间隔后,回到订阅列表检查设置是否保留,并记录最后成功更新时间。
- 到下一个预期更新时间后核对日志。电脑休眠或客户端退出期间,通常不能指望桌面定时器持续运行。
- 如启用了「启动时更新」,单独验证启动行为;它与按固定间隔更新不是同一个条件。
mihomo 的 HTTP provider 更新参数
若配置使用 proxy-providers,远程节点提供器还可以由内核独立刷新。HTTP provider 的 interval 以秒计;支持的 proxy 字段用于指定该资源下载使用的出站名称。下面只是已有 HTTP provider 内部的字段片段,不能单独作为完整配置导入:
# 置于现有 HTTP proxy-provider 的定义内
interval: 21600
proxy: DIRECT
DIRECT 表示选择直连出站,并不保证当前网络一定能访问该资源。若改为代理或策略组名称,该名称必须在配置中有效,且应避免通过尚未下载的同一 provider 来取得出口。不同内核版本的支持范围应以实际配置校验结果为准。
恢复后的验证顺序与问题反馈
错误提示消失后,还要确认新内容确实进入当前配置。只看到文件修改时间变化不够;下载可能成功,但覆写、合并或内核校验仍然失败。建议按下面的顺序检查,避免在同一次排障中同时改动代理、DNS、TUN 和配置格式。
- 确认下载成功:订阅列表出现新的成功更新时间,日志没有对应的 HTTP 或 TLS 错误。
- 确认载入成功:当前配置没有解析错误,策略组正常显示;若订阅本来没有变更,节点数量不变化是正常情况。
- 确认连接可用:选择一个已知可用的出口,访问目标站点,在连接记录中检查命中的规则与实际出站。
- 确认自动刷新:保留客户端运行,等待一个配置的更新周期,再检查下一次成功时间。
向服务商或客户端项目反馈时,提供操作系统版本、客户端版本、实际内核版本、发生时间、错误文本,以及直连和代理更新的对比结果。对订阅 URL 的路径、查询参数和节点凭据做脱敏;不要把完整配置上传到公开问题区。需要了解导入与连接步骤,可查阅本站使用指南,参数含义可对照协议参考。