TL;DR:先别急着重装。把订阅 URL 复制到浏览器或 curl -L 看返回内容;如果返回的不是 Mihomo/Clash YAML,Clash Verge Rev 更新必然失败。返回正常再处理本地缓存、provider 引用和系统代理。

这个问题的典型表现是:第一次添加 profile 能看到节点,过一段时间点「Update」提示 failed、parse error、network error,或者更新完成但节点变空。原因通常不在 Verge 的下载按钮,而在「更新时拿到的内容」和「本地解析环境」。

先做 5 分钟判断

检查项正常结果异常信号
URL 可达性返回 YAML 文本302 到登录页、403、空白
文件头部proxies:proxy-providers:HTML、JSON 错误消息
配置组proxy-groups 引用存在的节点或 provider组名拼错、provider 为空
本地状态关闭系统代理后仍能拉取只在开代理时能拉,或反过来
缓存清缓存后重新生成旧 profile 一直覆盖新内容

macOS / Linux 可以直接跑:

curl -L -A "clash-verge" "你的订阅URL" -o /tmp/profile.yaml

Windows 用 PowerShell:

Invoke-WebRequest -MaximumRedirection 5 -Headers @{"User-Agent"="clash-verge"} -Uri "你的订阅URL" -OutFile "$env:TEMP\profile.yaml"

打开文件,第一屏如果是网页、错误码、续费提示、JSON 包装层,就不是客户端能处理的 profile。

provider 混写最容易漏

很多订阅会同时出现 proxiesproxy-providers。Mihomo 允许这样写,但要求引用关系完整:

proxy-providers:
  sub-a:
    type: http
    url: https://example.com/sub.yaml
    path: ./providers/sub-a.yaml

proxy-groups:
  - name: Proxy
    type: select
    use:
      - sub-a

如果 use 里写成 sub_a,或者 provider 文件下载失败,Verge 更新时会显示 profile 解析失败。首次导入时能用,是因为旧缓存里已经有展开后的节点;更新时重新解析 provider,问题才暴露。

清缓存但别先删配置

先在 Profiles 里复制当前 profile,或导出一份本地 YAML。然后关闭 Clash Verge Rev,到配置目录找 profiles / providers 缓存:

  • Windows:%APPDATA%\io.github.clash-verge-rev.clash-verge-rev\
  • macOS:~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/
  • Linux:~/.config/clash-verge/

删除对应 profile 的缓存副本,不要删整个应用目录。重启后再点更新。若此时正常,问题就是旧缓存或 provider 本地文件损坏。

系统代理干扰订阅更新

更新请求本身也要走网络。当前 profile 已半失效时,Verge 可能通过坏链路拉取新 profile,形成死循环。排查时按这个顺序:

  1. 关闭系统代理和 TUN。
  2. 用浏览器直连打开订阅 URL。
  3. 再回 Verge 点更新。
  4. 仍失败时换一个 User-Agent,如 clashClashMetaclash-verge

如果你的服务商提供多格式链接,Clash Verge Rev 优先选 Mihomo/Clash YAML,不要拿 sing-box JSON 或 V2Ray base64 直接导入。

需要重新准备订阅时,可以用兼容 Clash / Singbox / V2Ray 的订阅,重点是确认导出格式里明确包含 Clash/Mihomo profile。

最后再考虑重装

只有在同一个 URL 用 curl 能拉到正确 YAML、其他 Clash 客户端也能更新、但 Verge 独自失败时,才考虑升级或重装 Clash Verge Rev。多数场景下,问题会在 URL 返回内容、provider 引用、缓存或系统代理这四处被定位出来。

相关阅读