跳转到内容

Clash Verge Rev 订阅更新失败

主题:排错 适用:clash-verge-rev / windows/macos/linux / any 最后验证:2026-09-18

按提示里的英文原文分三种情况:下载不下来、下载到的不是 Clash 配置、下载到了但内核校验不通过(提示里带 test failed)。

在「订阅」页右键订阅点「更新」时,客户端先不走代理直接下载;失败了改用内核代理,再改用系统代理(系统代理没开时,这一次也不走代理),三次都失败才报错。提示写的是「使用 Clash 代理更新失败」,附带订阅名和最后一次失败的原因,而且原因只写最外层的一句;导入订阅时,下载失败的报错一般会把整串原因都写出来1

  • sub-server-cert-untrusted:订阅服务器的证书不受信任,导入时的报错里是 invalid peer certificate: UnknownIssuer。官方给的办法是勾选「允许无效证书(危险)」23,它的代价见修复步骤。
  • sub-not-clash-config:服务商按请求里的 UA 判断你用的是哪种客户端,下发不同的配置4。拿回来的内容不是 YAML,或者里面没有节点(proxies)也没有节点集(proxy-providers),客户端就拒收1
  • sub-config-rejected-by-core:下载成功后,如果这是正在用的订阅,客户端会重新生成配置并用内核校验,不通过就报错,新配置不会交给内核1;内核解析配置出错时,校验输出里带 test failed5。这时新下载的内容已经存进了这个订阅,之后打开「虚拟网卡模式」同样会校验失败,那一侧按 Clash Verge Rev 虚拟网卡模式(TUN)开不了或开了不起作用 排查。

适用范围里的「已验证」,指按 Clash Verge Rev 2.5.2 的源码与官方文档逐条核对过,没有在客户端上实际操作过。

取证

  • sub-downloads-ok:订阅能下载下来吗?(更新失败的提示里有 failed to fetch remote profile,就是下载不下来) pass → sub-content-is-clash-config;fail → sub-server-cert-ok;unknown → escalate
  • sub-server-cert-ok:订阅服务器的证书能通过校验吗?更新的提示只写最外层的原因,要看细节:在「订阅」页顶部的「订阅文件链接」框里粘贴同一条链接,点「导入」,报错里出现 invalid peer certificate 就是不能。(导入失败不会新增订阅;万一导入成功,会多出一个新订阅,查完删掉新的那个) pass → escalate;fail → sub-server-cert-untrusted;unknown → escalate
  • sub-content-is-clash-config:下载到的是 Clash 配置吗?(提示里有 the remote profile data is invalid yamlprofile does not contain,就不是) pass → sub-config-passes-core-test;fail → sub-not-clash-config;unknown → escalate
  • sub-config-passes-core-test:新配置能通过内核校验吗?(提示里有 test failed,就是没通过;校验失败了、但提示里没有 test failed,算无法判断) pass → escalate;fail → sub-config-rejected-by-core;unknown → escalate

原因

  • sub-server-cert-untrusted(可能性 medium)→ 修复 accept-invalid-certs
  • sub-not-clash-config(可能性 high)→ 修复 get-clash-format-sub
  • sub-config-rejected-by-core(可能性 medium)→ 修复 fix-sub-config-rejected-by-core

修复

accept-invalid-certs

  1. 先请订阅服务商修好证书。要临时绕过,在「订阅」页右键这个订阅,点「编辑信息」,勾选「允许无效证书(危险)」并保存。勾上以后,客户端不再校验订阅服务器的证书和主机名,无法确认连上的真是订阅服务器,订阅链接可能泄露、下载到的配置可能被替换;服务商修好证书后取消勾选。 验证:sub-update-succeeds

get-clash-format-sub

  1. 按官方文档的办法检查——在自己电脑上带着 Clash Verge Rev 的 UA 请求订阅链接,看返回的是不是 YAML 格式的 mihomo 配置——但不要把链接直接写进命令:写进命令的链接会留在命令历史里,运行时同一台电脑上的其他程序也看得到。macOS / Linux 终端:先运行 read -rs SUB,粘贴订阅链接后回车(屏幕上不显示),再运行 printf 'url = "%s"\n' "$SUB" | curl -L -A clash-verge/v2.5.2 -K --L 让 curl 跟着订阅地址的跳转走,客户端自己下载时也会跟随),看完运行 unset SUB。Windows PowerShell:先运行 $sub = Read-Host '订阅链接',粘贴后回车,再运行 Invoke-RestMethod -UserAgent 'clash-verge/v2.5.2' -Uri $sub,看完运行 Remove-Variable sub。返回的是 YAML 格式的 mihomo 配置才算正确。订阅链接和返回的内容都相当于凭据,不要贴给别人、聊天助手或在线工具。
  2. 返回的不是这种配置,说明这条链接没有给 Clash 系客户端下发配置:向订阅服务商要 Clash(mihomo)格式的订阅链接,重新导入。 验证:sub-update-succeeds

fix-sub-config-rejected-by-core

  1. 在报错提示里找到 test failed 前面那一行,那是内核解析配置时给出的具体原因;拿它到「mihomo 内核报错信息表」里查是哪一类问题。
  2. 交给内核校验的配置,是订阅下载来的内容再经过「扩展覆写配置」「扩展脚本」(以及全局的这两项)处理的结果。那一行指向你自己改过的覆写或脚本时,先撤掉那处改动;指向订阅下发的内容时,把那一行原文发给订阅服务商,请对方提供当前内核能通过校验的配置。 验证:verify-core-accepts-config

验证

  • sub-update-succeeds(人):在「订阅」页右键这个订阅,点「更新」。 预期:不再弹出失败提示,订阅卡片上的更新时间变成刚才(鼠标移到那段文字上,提示的是「点击查看上次更新时间」,说明显示的是下次更新,先点一下切回来)。 通过 → resolved;失败 → escalate;无法判断 → escalate
  • verify-core-accepts-config(人):改好后,在「订阅」页右键这个订阅点「更新」;如果原本是「虚拟网卡模式」开不了,再打开一次,然后关掉「系统代理」,在「代理」页确认选的是「规则」或「全局」、出口是一个节点,打开一个平时打不开、按配置应该走节点的网页。 预期:更新不再报错,订阅卡片上的更新时间变成刚才(鼠标移到那段文字上,提示的是「点击查看上次更新时间」,说明显示的是下次更新,先点一下切回来);原本是虚拟网卡模式开不了的,再打开后开关保持打开、没有带 test failed 的报错,而且那个网页能正常显示(开关能保持打开但网页打不开,说明还有别的原因,比如防火墙没有放行内核,这一步不算通过)。 通过 → resolved;失败 → escalate;无法判断 → escalate

相关条目

来源

最后修订:2b8f68d 2026-09-19

Footnotes

  1. https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1 2 3

  2. https://www.clashverge.dev/faq/other.html

  3. https://www.clashverge.dev/guide/profile.html

  4. https://www.clashverge.dev/guide/term.html

  5. https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471