Clash Verge Rev 扩展覆写配置(Merge)教程:合并规则、执行顺序与示例
Clash 中文网编辑部 · 更新于 2026/10/22 · 对照版本 Clash Verge Rev v2.5.8
扩展覆写配置(Merge)是一段 YAML,Clash Verge Rev 会把它“合并”进订阅配置。 它单独保存,更新订阅后依然有效。打开方式有两种:
- 右键订阅卡片 →「扩展覆写配置」:只对该订阅生效;
- 订阅页顶部的「全局扩展覆写配置」:对所有订阅生效。
Merge 适合“覆盖某些设置项”,例如开启域名嗅探、修改 DNS、换 GeoData 下载地址。如果你想“追加”规则或节点,请使用 编辑规则 / 节点 / 代理组 或 扩展脚本。
合并规则(必须理解)
Merge 不是简单的“追加”,而是按以下规则合并。理解这四条,就能准确预测结果:
1. 对象(键值对)深度合并
你写的键会覆盖原配置中的同名键,没写的键保持不变,并且会递归到下一层。
订阅原有:
tun:
stack: system
mtu: 1500
Merge 写:
tun:
stack: mixed
结果:
tun:
stack: mixed # 被覆盖
mtu: 1500 # 保留
2. 列表整体替换
数组(列表)不会合并,而是整个替换。
订阅原有 50 条规则,Merge 写:
rules:
- MATCH,DIRECT
结果:订阅的 50 条规则全部消失,只剩这一条。所以不要在 Merge 中写 rules、proxies、proxy-groups,除非你确实想完全替换它们。
3. dns 只合并第一层
dns 是例外:它只按第一层字段替换,不会递归。例如你写了 dns.nameserver,就会整体替换 nameserver 列表;写了 dns.nameserver-policy,就会整体替换整个策略表,而不是往里面加一条。
4. hosts 整体替换
hosts 也是例外:写了就整体替换订阅中的 hosts。
旧写法已失效
很多旧教程里的写法:
prepend-rules:
- DOMAIN-SUFFIX,example.com,DIRECT
在新版 Clash Verge Rev 中已经不起作用——Merge 只会把 prepend-rules 当作一个普通字段写进配置,内核不认识它。请改用「编辑规则」。
被应用设置接管的字段
以下字段始终以「设置」页为准,写在 Merge 中会被丢弃,软件会提示“扩展配置或脚本写入了由应用设置接管的字段,这些值已被丢弃”:
| 字段 | 在哪里设置 |
|---|---|
mode |
代理页模式切换 |
mixed-port、port、socks-port、redir-port、tproxy-port |
Clash 设置 → 端口设置 |
allow-lan |
Clash 设置 → 局域网连接 |
log-level |
Clash 设置 → 日志等级 |
ipv6 |
Clash 设置 → IPv6 |
external-controller、secret |
Clash 设置 → 外部控制 |
unified-delay |
Clash 设置 → 统一延迟 |
TUN 的开关(tun.enable)同样由「虚拟网卡模式」开关控制,但 TUN 的其他参数可以写在 Merge 中。
执行顺序
Clash Verge Rev 处理一份订阅的完整流程:
订阅原文
→ 应用设置
→ 全局扩展配置(全局 Merge)
→ 全局扩展脚本(全局 Script)
→ 订阅扩展配置(订阅 Merge)
→ 订阅扩展脚本(订阅 Script)
→ 应用设置回写
→ 交给内核
规律:全局先、订阅后;配置先、脚本后。越靠后的步骤可以修改前面步骤的结果。编辑器顶部也会显示这个顺序,并说明当前编辑的是哪一步。
想看最终交给内核的配置,点击订阅页的「查看运行时订阅」。
编辑器使用
- 编辑器支持 YAML 语法高亮和错误提示;
- 右键或快捷键可以「格式化文档」;
- 保存时如果 YAML 有语法错误会提示失败,请检查缩进(必须用空格,不能用 Tab);
- 保存后,若该订阅正在使用,会自动重新加载;没有生效时点击「重新激活订阅」。
常用示例
开启域名嗅探
嗅探可以从 TLS、HTTP、QUIC 流量中识别真实域名,提高 TUN 模式下域名规则的准确性:
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
sniff:
HTTP:
ports: [80, 8080-8880]
override-destination: true
TLS:
ports: [443, 8443]
QUIC:
ports: [443, 8443]
skip-domain:
- "+.push.apple.com"
覆盖 DNS 服务器
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://dns.alidns.com/dns-query
- https://doh.pub/dns-query
因为 dns 按第一层替换,这里只会替换 enable、enhanced-mode、nameserver 三项,订阅中的 fake-ip-filter 等其他字段保留。也可以使用图形界面的 DNS 覆写。
修改 GeoData 下载地址
GitHub 访问困难时,换成 CDN 地址:
geox-url:
geoip: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat
geosite: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat
mmdb: https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb
geo-auto-update: true
geo-update-interval: 24
设置 TUN 细节参数
tun:
stack: mixed
auto-route: true
auto-detect-interface: true
route-exclude-address:
- 192.168.0.0/16
- 10.0.0.0/8
(tun.enable 仍由开关决定。这些参数也可以在 TUN 设置窗口 中修改。)
开启 TCP 并发与进程匹配
tcp-concurrent: true
find-process-mode: strict
添加规则集合(配合编辑规则使用)
Merge 中可以新增一个规则集合(因为 rule-providers 是对象,会深度合并,不会删掉订阅原有的规则集):
rule-providers:
my-direct:
type: http
behavior: domain
format: text
url: https://example.com/my-direct.txt
path: ./ruleset/my-direct.txt
interval: 86400
然后在「编辑规则」中添加前置规则 RULE-SET,my-direct,DIRECT。规则集写法见 代理集合与规则集合。
新增一个代理集合
同理,proxy-providers 也可以新增,把第二个机场的节点引入当前配置:
proxy-providers:
second-airport:
type: http
url: "https://example.com/another-sub"
path: ./providers/second.yaml
interval: 86400
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
再用「编辑代理组」新建一个 use: [second-airport] 的代理组即可使用。
Merge、编辑规则、Script 怎么选
| 需求 | 推荐工具 |
|---|---|
| 覆盖某个设置项(嗅探、DNS、GeoData、TUN 参数) | Merge |
| 新增规则集合、代理集合 | Merge |
| 添加几条自定义规则 | 编辑规则 |
| 添加自建节点、删除信息节点 | 编辑节点 |
| 新建代理组 | 编辑代理组 |
| 批量处理、条件判断、对所有订阅追加规则 | Script |
相关教程
常见问题
在 Merge 里写 prepend-rules 为什么不生效?
新版 Clash Verge Rev 的 Merge 只做“合并”,不再识别 prepend-rules、append-rules 这类旧字段。添加规则请用「编辑规则」,或用扩展脚本。
在 Merge 里改端口为什么无效?
mixed-port、allow-lan、mode、log-level、ipv6、external-controller、secret、unified-delay 等字段由应用设置接管,写在 Merge 里会被丢弃,请到「设置」页修改。
全局扩展配置和订阅扩展配置有什么区别?
全局的对所有订阅生效,订阅的只对当前订阅生效;执行顺序上全局先、订阅后,所以订阅扩展配置可以覆盖全局的结果。
写了 rules 之后订阅的规则全没了?
因为列表是整体替换的。在 Merge 中写 rules 会用你的列表完全替换订阅的规则。追加规则请用「编辑规则」或扩展脚本。
怎么确认 Merge 生效了?
点击订阅页的「查看运行时订阅」,查看最终配置中对应字段是否已经改变。
还没安装 Clash Verge Rev?
最新版 v2.5.8,直链 GitHub 官方安装包。