Clash Verge 扩展覆写配置:Merge 合并顺序与字段优先级
区分全局扩展和订阅扩展,用最小 YAML 修改配置,避免规则列表被替换、DNS 策略丢失和应用设置覆盖。
本页目录
扩展覆写配置用于保留自己的配置修改:订阅刷新后,客户端会在新的订阅内容上再次应用扩展。它适合修改少量固定字段;需要按订阅名称判断、保留数组后追加内容时,使用扩展脚本 更合适。
先选择作用范围
「订阅」页面的「全局扩展覆写配置」(Merge)作用于全部订阅。右键某一张订阅卡片,选择「扩展覆写配置」,只修改那份订阅。
首次设置建议选择订阅级扩展,先在一份可用配置中试验。打开编辑器后,把原有内容完整复制备份,并记下此前是否有全局 Merge 和 Script。已有内容不能直接用教程片段覆盖;应在同一层级补充字段,避免出现两个同名顶层键。
用一个字段完成首次覆写
以启用并发 TCP 连接为例,在目标订阅的扩展覆写配置里填写:
tcp-concurrent: true
这是完整的最小扩展片段,可以单独保存。保存后等待配置重新应用,再打开订阅页顶部的「查看运行时订阅」,搜索 tcp-concurrent,核对最终值是否为 true。
这个示例只用于确认覆写入口和合并链路,不保证所有网络都因此变快。确认成功后,再添加实际需要的设置。一次变更一个目标,便于出现问题时判断是哪项造成的。
全局配置与订阅配置如何叠加
扩展处理顺序为:全局扩展配置、全局扩展脚本、订阅扩展配置、订阅扩展脚本。后面的步骤可以继续修改前面产生的结果。
例如全局 Merge 中设置:
tcp-concurrent: true
find-process-mode: strict
某一份订阅需要持续匹配进程时,可在它自己的 Merge 中设置:
find-process-mode: always
应用设置没有另行接管这些字段时,最终这份订阅保留并发 TCP,并将进程匹配模式设为 always。其他订阅仍使用全局的 strict。从原文查看到 strict,不代表最终配置也是 strict,应查看运行时结果。
哪些内容会整体替换
列表不是自动追加。扩展里写出 rules 或 proxy-groups,会替换对应列表。只想增加一条分流规则,应使用编辑规则
的前置区域;不要在 Merge 中放一条规则后,误以为原有几百条规则会自动保留。
普通嵌套对象通常按子字段合并。但从 Rev v2.5.5 开始,dns 下明确写出的每个字段以及顶层 hosts 使用替换规则,nameserver-policy 这样的表也包含在内。
例如,全局 Merge 给某个域名设置 DNS 策略,订阅 Merge 又写了另一份 nameserver-policy,最终表中只保留后一份所列条目。需要两份策略同时存在,就在后一份写出完整集合,或通过脚本逐条修改。不要只检查 dns.enable,还应检查 DNS 下具体策略表是否完整。
为什么端口和 TUN 设置改了没效果
客户端设置接管的字段最终以界面设置为准。例如代理端口、运行模式、允许局域网连接、日志等级和 tun.enable,不能依靠扩展强行覆盖。TUN 设置中保存过的相关子字段也会被应用设置回写。
这些设置应回到「设置」页面对应项目调整。如果保存扩展后出现值被丢弃的提示,先移除扩展里相应字段,再到设置页修改。不要在全局脚本、订阅脚本中重复写同一字段来“提高优先级”。
验证、排错与恢复
验证分两步:先在「查看运行时订阅」核对最终值,再发起实际连接,查看「连接」中的主机、规则与链路。配置已生成和流量按预期工作是两个不同检查点。
**YAML 无法保存:**使用半角冒号,冒号后留空格;缩进用空格,布尔值写 true、false。不要把 Markdown 的三个反引号复制进编辑器。
**值又变回去:**逐一检查后续订阅 Merge、Script,以及应用设置接管情况。
**保存后节点或规则消失:**检查是否写了不完整的列表,恢复原扩展,再采用可视化编辑或脚本追加。
撤回时恢复备份内容;原来为空则还原为 {}。重新激活订阅,确认运行配置恢复,再测试连接。不需要删除配置目录或重新安装。若仍失败,保留报错并按照导出日志
的步骤查找加载阶段的错误。