TL;DR:更新 Clash Verge Rev 或 profile 前,先导出当前可用配置,检查 YAML 顶层字段、provider、DNS、规则引用和覆写脚本。更新后再找原因,通常会被缓存干扰。
Clash Verge Rev 的 profile 经常不是一份简单 YAML。它可能由远程订阅、本地覆写、proxy-provider、rule-provider、DNS 模块和脚本合成。更新失败、节点变空、规则不生效,大多不是按钮坏了,而是某一层依赖已经不健康。
更新前 10 分钟清单
| 检查项 | 怎么看 | 不健康信号 |
|---|---|---|
| 本地备份 | 导出当前 profile | 只能依赖远程 URL,没有本地副本 |
| 顶层字段 | 看 proxies、proxy-groups、rules | 字段缺失、缩进错、数组变字符串 |
| 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 应该是数组,组内 proxies 或 use 也应该是数组;写成字符串时,有些编辑器不提示,内核解析才报错。
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 字段从对象改成数组。
- 按旧内核字段写法覆盖了新字段。
覆写脚本建议保留注释,说明它修改了哪些字段。半年后回头看,比猜变量名可靠。
更新顺序
推荐顺序是:
- 导出当前可用 profile。
- 手动拉取订阅和 provider。
- 关闭覆写,更新一次 profile。
- 开启覆写,再更新一次。
- 升级内核。
- 重启 Verge,观察日志。
不要把 profile 更新、覆写重构、内核升级、系统代理改动放在同一天同一轮。出问题时无法定位。
相关阅读
FAQ
为什么 health check 通过,更新后还是失败? 可能是远程内容在你检查后变化,或运行时网络和手动 curl 的网络路径不同。保留检查时间和日志,继续对比。
要不要删除所有缓存? 先不要。缓存是恢复线索。确认已导出备份后,再清理对应 profile 的缓存。
旧 Clash 字段还能用吗? 看 Mihomo 当前文档和内核版本。有些旧字段仍兼容,有些只是不报错但不生效。升级前先查字段。