1 为什么「直接改订阅文件」往往白改
在 Clash Verge Rev 等客户端里,机场订阅链接对应的是一份远程生成、本地缓存的配置片段:你点「更新订阅」时,客户端会重新下载并覆盖磁盘上的那份缓存。若你把自定义 rules、手改的节点 name 或额外 proxy-groups 写进同一份会被刷新的文件,下一次更新就会把它们冲掉——这不是 bug,而是订阅更新语义本来如此。
你要的是另一条路径:远程订阅只提供节点与基础结构,你的备注、追加规则、DNS 微调等放在独立层,由内核或客户端在启动时合并成最终运行配置。这样每次订阅更新只替换「机场那份」,你的覆写文件始终在原处。若订阅本身还不是 Clash 原生 YAML,可先看《订阅转换完全指南:把 SS/V2Ray/Trojan 机场链接转成 Clash YAML》理清格式与导入方式。
2 覆写、mixin 与「最终生效的那一份 YAML」
覆写(Override)在图形客户端里通常指:在 UI 或单独文件里写一段 YAML,由客户端在合并订阅与本地片段时叠上去——具体菜单位置因 Clash Verge Rev 版本而异,但思路一致:不要改缓存订阅本体,改「合并链路上的下一层」。
在 Mihomo(Clash Meta) 侧,根配置里常见的 mixin: 是一个深度合并块:把 mixin 下的字段按语义合并进主配置(例如补充 dns、tun 开关等)。另有根级字段 prepend-rules / append-rules,用于在不手改整段 rules: 列表的前提下,在规则链前部或后部插入你的行——特别适合「只加几条 DOMAIN-SUFFIX」的规则追加需求,且与订阅里自带的 rules 解耦。
若你已经在用策略组做自动测速或故障转移,覆写里写的策略组名必须与规则引用一致;写法可参考《Clash URL-Test 与 Fallback:测速选节点与故障转移》,避免只改了节点却忘了同步组名。
3 Clash Verge Rev 里的推荐操作顺序
实践上可以固定四步:① 在客户端里正常添加订阅 URL,确认能拉取节点;② 打开与「覆写」「Merge」「脚本」或等价名称相关的设置(不同版本文案可能略有差异),新建或编辑仅属于你本地的 YAML 片段;③ 把「更新后仍要保留」的内容只写在这一层,例如自定义 prepend-rules、补充 dns、或 TUN 相关键;④ 保存后重载配置,再在连接日志里确认规则命中顺序是否符合预期。
从旧版 Clash for Windows 迁来时,很多人习惯 Mixin / Parsers;在 Verge 生态里往往对应覆写与脚本化合并,详见《Clash Verge Rev Windows 安装教程》中的迁移说明。首次迁移建议小步验证:先只加一条测试规则,确认更新订阅后仍在,再逐步加复杂度。
4 prepend-rules 与 append-rules:追加规则的首选写法
分流规则顺序敏感:靠前优先匹配。若你想让个人域名走固定策略组,通常应把对应行放在「过宽的 MATCH 或国外总规则」之前——这时用 prepend-rules 很合适。相对地,若你只想在订阅自带规则末尾再补兜底,可使用 append-rules。二者都写在根配置(或与客户端合并后的等价根结构)中,而不是去改机场下发的整段 rules:。
下面是一段示意(请把 PROXY_HOME 换成你配置里真实存在的策略组名;与流媒体、广告拦截等远程规则集配合时,可继续参考《ACL4SSR 规则订阅配置详解》中的顺序经验)。
prepend-rules:
- DOMAIN-SUFFIX,example.com,PROXY_HOME
- DOMAIN-KEYWORD,company-internal,DIRECT
append-rules:
- DOMAIN-SUFFIX,telemetry.internal,DIRECT
具体字段名与是否支持多条合并,以当前 Mihomo 版本文档为准;若某版本对数组合并行为有调整,应以实际生成的运行配置(客户端「查看当前配置」类功能)为准做核对。
5 mixin:合并 DNS、TUN 等横切片段
当你要改的不是单条规则,而是整段 DNS、TUN 或日志级别等「横切」能力时,放在 mixin: 里往往更清晰:主配置保持订阅生成的主体,mixin 负责你本机固定环境。与 TUN 相关的权限、服务模式与 YAML 片段,可与《Clash Verge Rev TUN 模式完全指南》对照,避免只复制半段键名导致未生效。
mixin:
dns:
enable: true
enhanced-mode: fake-ip
log-level: info
mixin 与 prepend-rules 可以同时使用:前者补段落结构,后者补规则行。注意深度合并时同名字段可能被覆盖或按内核规则合并,变更后务必做一次配置校验与日志观察。
6 改节点备注、固定默认策略组
「改节点显示名」本质上是改 proxies 里每个节点的 name 字段;若名字来自订阅拉取,一改订阅又会被还原。可行思路包括:在客户端提供的重命名 / 前缀 / 覆写映射里做(若版本支持),或自建 proxy-providers 并在本地处理链里改名,再让策略组引用稳定别名。核心原则是:策略组、规则里引用的名字应与你控制的那一层一致,而不是赌机场永远不改节点名。
「默认选哪个节点 / 哪个组」常与 profile 下的选项(例如是否记忆用户选择)以及策略组类型有关;若你希望某组在重启后仍回到指定成员,需查阅当前内核与客户端对 store-selected 一类键的支持情况,并避免与订阅侧同名冲突。
7 每次订阅更新后建议快速检查
- 配置能否加载:有无 YAML 语法错误、策略组是否引用了已不存在的节点名。
- 规则顺序:个人追加的规则是否仍排在预期位置(尤其在使用
prepend-rules时)。 - 覆写文件是否还在:确认未被误保存进订阅缓存目录。
- 日志抽样:抽几条目标站点连接,看命中策略组是否符合预期。
8 常见坑
- 把覆写写进订阅缓存路径:更新一次就没了;应使用客户端指定的覆写或独立文件。
- 节点改名后策略组断裂:引用旧
name会导致启动失败或静默跳过成员。 - 重复规则冲突:前后两条指向不同策略组时,以靠前为准,不要以为「后写的会覆盖前面的」。
- 混淆 mixin 与 subscription:
mixin是合并层,不是远程 URL 本身;订阅仍只负责拉节点。
9 总结
订阅更新会刷新机场侧内容;要在不改原始订阅语义的前提下完成「改节点备注、固定默认出口、规则追加」等操作,应把改动放在覆写、mixin、prepend-rules / append-rules 等你本地掌控的层。Clash Verge Rev 提供图形化入口管理这些片段;Mihomo 则在 YAML 层给出 mixin 与根级规则插入字段,二者配合即可形成稳定的订阅覆写工作流。
相比每次更新后手工合并 diff,把「长期不变的个人偏好」与「会变的机场节点」分层维护,能显著减少挫败感;需要精细策略组时,可继续结合站内 url-test 与 Rule Provider 类文章扩展。获取或升级客户端时,请优先使用本站下载页各平台安装包,与开源仓库信息区分,便于版本与安全策略统一。
若你刚开始接触这类合并机制,建议先用一条 prepend 规则做实验:更新订阅前后各截一张「当前配置」对比,亲眼确认批注层未被覆盖,再逐步加上 DNS 与 TUN 片段。养成习惯后,YAML 读起来会像「底稿 + 个人补丁」,而不是一团每次刷新都可能变样的单文件。