Clash Verge Rev 的 profile 经常不是一份简单 YAML。它可能由远程订阅、本地覆写、proxy-provider、rule-provider、DNS 模块和脚本合成。更新失败、节点变空、规则不生效,大多不是按钮坏了,而是某一层依赖已经不健康。

更新前 10 分钟清单

检查项怎么看不健康信号
本地备份导出当前 profile只能依赖远程 URL,没有本地副本
顶层字段proxiesproxy-groupsrules字段缺失、缩进错、数组变字符串
provider手动访问 URL返回 HTML、空文件、401、403
DNS看监听和上游端口冲突、上游不可达、fake-ip 范围异常
规则引用名称逐字匹配rule-providers 名称和 rules 中引用不一致
覆写脚本暂时关闭再测试关闭后正常,开启后解析失败

做这张表,能避免很多「更新后突然坏了」的误判。

备份不是复制订阅链接

订阅链接只能重新拉取远程内容,不能保证拿回更新前的配置。真正有用的备份至少包含:

  • 当前合成后的 profile YAML。
  • 本地覆写文件。
  • Verge 版本和 Mihomo 内核版本。
  • 订阅 URL 的域名和备注,但不要把完整 token 贴到公开地方。

文件名建议写成 profile-2026-04-28-before-core-update.yaml。以后对比差异时,一眼知道它的用途。

schema 检查从顶层开始

Mihomo 配置最常见的结构问题是缩进和字段类型。比如 proxy-groups 应该是数组,组内 proxiesuse 也应该是数组;写成字符串时,有些编辑器不提示,内核解析才报错。

proxy-groups:
  - name: Auto
    type: url-test
    use:
      - provider-a
    url: https://www.gstatic.com/generate_204
    interval: 300

如果 use 引用 provider-a,上面必须存在同名 proxy-providers.provider-a。大小写、横线、下划线都要逐字一致。

provider 先手动拉一次

很多 profile 表面上导入成功,是因为节点来自旧缓存。真正更新时,provider URL 返回了错误页,Verge 才显示节点为空。用浏览器或 curl 拉一次:

curl -L -A "clash-verge" "https://example.com/provider.yaml" -o provider.yaml

打开文件看第一屏。如果是 HTML、登录页、JSON 错误或空文件,这不是 Verge 能解析的 provider。使用兼容 Clash / Singbox / V2Ray 的订阅时,也要确认导出的格式和当前客户端选择一致。

DNS 更新前不要顺手重构

DNS 模块是更新事故高发区。建议只检查,不要在同一次更新里大改。重点看:

  • enable 是否符合预期。
  • listen 端口是否和其它服务冲突。
  • nameserver 是否可达。
  • fake-ip-filter 是否覆盖了局域网、登录页、游戏平台等特殊域名。
  • 规则里是否依赖还没下载成功的 rule-provider。

如果你准备升级内核,先保持 DNS 不变。升级完成确认可用,再单独调整 DNS。

覆写脚本要有关闭开关

Clash Verge Rev 的覆写很方便,也容易把远程 profile 改坏。健康检查时至少做一次「关闭覆写后更新」。如果关闭后正常,开启后失败,问题就不在订阅,而在覆写逻辑。

常见问题包括:

  • 给不存在的组追加节点。
  • 删除了 provider,但 rules 仍引用它。
  • 把 DNS 字段从对象改成数组。
  • 按旧内核字段写法覆盖了新字段。

覆写脚本建议保留注释,说明它修改了哪些字段。半年后回头看,比猜变量名可靠。

更新顺序

推荐顺序是:

  1. 导出当前可用 profile。
  2. 手动拉取订阅和 provider。
  3. 关闭覆写,更新一次 profile。
  4. 开启覆写,再更新一次。
  5. 升级内核。
  6. 重启 Verge,观察日志。

不要把 profile 更新、覆写重构、内核升级、系统代理改动放在同一天同一轮。出问题时无法定位。

相关阅读