01

为什么不要直接编辑订阅文件

订阅每次更新都会整份覆盖,手改的内容会全部消失。Clash Verge 的做法是把你的改动放在单独一层,生成最终配置时再合并进去,订阅怎么更新都不影响。

在「订阅」页新建时可以选 Merge(YAML 片段)和 Script(JavaScript)两种扩展。建好之后在配置卡片的菜单里绑定;也可以用全局的 Global Merge 和 Global Script,对所有订阅生效。

先备份
改扩展之前先记下当前能正常工作的配置名,出问题解绑扩展就能立刻回到原状。

合作推荐订阅链接从哪来?本站合作机场注册即送 1GB 香港高速体验流量,可直接一键导入。获取高速节点
02

Merge 和 Script 各自适合什么

  1. 1

    Merge:写 YAML 片段

    顶层字段直接覆盖,比如 mixed-port、mode、log-level。规则用三个专门的键:prepend-rules 插到最前面,append-rules 追加到末尾,filter-rules 删掉匹配的行。要让自定义规则优先生效,用 prepend-rules。

  2. 2

    Script:写一个 main 函数

    函数签名是 main(config),拿到完整配置对象,改完把整个对象 return 回去。适合按条件批量处理,比如给所有 url-test 组统一补上 interval 和 tolerance,或者按关键字过滤节点。

  3. 3

    执行顺序

    先订阅原文,再 Merge,最后 Script。挂多个扩展时按你排列的顺序依次执行,同一个字段被改多次时以最后一次为准。

03

检查合并结果

保存后从配置卡片菜单里打开的是原始订阅文件,看不到合并结果。要看真正生效的配置,用「查看运行配置」,Merge 和 Script 的改动都应该在里面。如果没有,多半是 YAML 缩进错了,日志页第一屏会有一行解析失败的提示,指出具体行号。

  • prepend-rules 里不要写 MATCH,它会挡住后面所有规则
  • Script 必须 return 整个 config 对象,返回片段会导致配置为空
  • 保存后客户端会自动重新生成并热重载,不需要重启程序
04

常见问题

Merge 里写了 dns 段,为什么没生效?

检查客户端的 DNS 覆写开关。开着的时候,Clash Verge 会用自己的 DNS 设置覆盖配置文件里的 dns 段,关掉它才会用你写的那份。

能同时挂多个 Merge 吗?

可以。扩展是一条链,按排列顺序依次执行。建议一个 Merge 只做一件事,比如一个专门管规则、一个专门管端口和 DNS,出问题时好定位。