客户端配置中心标志⌘ 搜索

Clash配置文件怎么合并?订阅覆写与多订阅节点教程

更新于 2026-11-01 · peizhibang.com

简答:Clash配置文件不要直接拼接:保留订阅外的规则用Merge,多订阅节点用proxy-providers,两份完整YAML才手动整理;入口和语法需按客户端版本核对。

定义:Clash配置文件合并,是把订阅、本地覆写或多个节点提供器按客户端支持的结构组合,再生成一份可校验、可加载和可回滚的运行配置。

先判断:Clash配置文件要合并哪一种

如果你搜索“Clash配置文件怎么合并”,先不要把两份YAML直接上下拼接。实际需求通常分为三类:订阅更新后保留本地规则或DNS设置;把多个订阅源的节点放进同一个策略组;把两份完整配置手动整理为一份。三种场景的入口、字段和风险不同。

本文适用范围:重点覆盖Clash Verge Rev的Merge扩展配置,以及采用mihomo内核并支持proxy-providers的配置。Clash for Windows、ClashX、Android和其他客户端可能没有相同菜单或字段,不能直接照搬本文语法;这些客户端只能先核对当前版本是否支持Merge、覆写或代理提供器。

你的目标优先方式判断重点
订阅更新后保留自定义规则、节点或策略组Clash Verge Rev Merge扩展配置在主配置之上处理,部分客户端控制字段不能覆写
多个订阅源共同提供节点mihomo proxy-providers策略组用use引用提供器,提供器名称必须唯一
两份完整YAML合成一份备份后手动整理重复键、列表顺序、节点重名和引用关系都要重新检查

Clash Verge Rev文档将Remote、Local作为主要配置,将Script和Merge作为增强配置;Merge用于在主配置前后添加字段,或覆盖部分原有字段。查看Clash Verge Rev配置类型说明

最快判断口诀:Merge、proxy-providers还是手动合并

保留本地设置用Merge,多订阅节点用proxy-providers,两份完整文件才手动整理。不要为了“合并”而复制整份订阅内容,因为订阅更新后,直接改动下载文件通常会被新内容替换;分层配置更容易更新、验证和回滚。

场景操作入口不建议的做法
订阅加本地规则Clash Verge Rev中创建或编辑Merge配置,保存后重新启用并刷新直接修改Remote订阅文件
多个订阅节点在主配置写多个proxy-providers,策略组通过use引用重复复制大量节点到proxies
两份完整YAML合并同名键、整理列表、检查引用,再做语法校验把两份顶层YAML直接拼接

如果你只是想让规则在订阅更新后继续存在,先选择Merge;如果你只是想集中管理多个节点来源,先选择代理提供器。只有当两个文件分别包含完整运行配置,而且你确实需要脱离原订阅独立运行时,才考虑手动合并。

Clash Verge Rev:订阅和本地设置怎么合并

Clash Verge Rev的官方说明显示,Merge配置支持prepend-rules、append-rules、prepend-proxies、append-proxies、prepend-proxy-groups和append-proxy-groups,其他支持的配置字段还可以按原配置语法覆盖。多个增强配置会按启用顺序连续处理;修改后需要重新启用或刷新才能观察结果。查看Merge配置语法与生效方式

  1. 复制当前可用配置,并单独保存原始订阅地址。
  2. 先确认订阅单独更新成功,能显示节点;订阅本身解析失败时,不要继续叠加Merge。
  3. 在Clash Verge Rev的配置管理区域创建或打开Merge配置。菜单名称和界面位置可能随版本变化,需按当前版本核对。
  4. 只写需要长期保留的字段,例如新增规则、追加节点或某个明确的DNS覆盖,不要再次粘贴整份订阅。
  5. 保存后重新启用Merge并刷新主配置,再查看最终运行配置、节点列表和日志。

合法的Merge结构示例,字段名称以当前文档和客户端版本为准:

prepend-rules: - "DOMAIN-SUFFIX,example.org,DIRECT" append-rules: - "DOMAIN-SUFFIX,example.net,Proxy" prepend-proxies: [] append-proxies: [] prepend-proxy-groups: [] append-proxy-groups: []

上例中的Proxy只是策略组名称示例,必须替换成当前主配置中真实存在的名称。每条规则应是一个完整字符串;不要写成[DOMAIN-SUFFIX,example.org,Proxy]这种会被解析为多个列表元素的形式。

官方说明建议自定义规则通常使用prepend-rules,因为原配置中的MATCH可能已经位于规则末尾;如果把新规则追加到MATCH之后,新规则可能不会被匹配。官方还提示,Clash Verge Rev自身控制的部分字段不能通过Merge成功覆盖,例如端口、日志级别或外部控制器等字段,具体限制需按当前版本核对。查看Merge覆盖限制与规则顺序

mihomo:多个订阅节点怎么合并

多个订阅节点不需要全部复制到proxies。在支持mihomo的配置中,可以为每个订阅建立一个proxy-providers条目,再让策略组通过use引用这些提供器。mihomo文档要求提供器名称唯一;HTTP类型提供器需要填写订阅URL,路径需要保持唯一。查看mihomo proxy-providers字段说明

完整结构示例,可复制后替换URL;不代表所有客户端的最终运行结果:

mixed-port: 7890 allow-lan: false mode: rule proxy-providers: provider_a: type: http url: "https://example.com/subscription-a" path: ./proxy_providers/provider_a.yaml interval: 86400 provider_b: type: http url: "https://example.com/subscription-b" path: ./proxy_providers/provider_b.yaml interval: 86400 proxies: - name: "DIRECT" type: direct udp: true proxy-groups: - name: "节点选择" type: select proxies: - DIRECT use: - provider_a - provider_b rules: - "DOMAIN-SUFFIX,example.org,节点选择" - "MATCH,DIRECT"

这个示例中,provider_a和provider_b分别代表两个订阅源,策略组“节点选择”通过use引用它们。URL、缓存路径、策略组名称和规则目标都需要替换;示例中的域名和订阅地址不是可用服务地址。

mihomo的策略组文档说明,proxies用于引用代理或其他策略组,use用于引用代理集合;如果策略组只写proxies而没有use,提供器中的节点不会自动进入该组。使用include-all-providers等自动包含字段时,还要重新检查节点范围和排序。查看mihomo策略组use字段

第一次配置建议只保留一个提供器,确认它能更新并显示节点后,再加入第二个。若两个订阅中存在同名节点,可以使用提供器的名称前缀或其他当前版本支持的重命名字段;具体写法应以mihomo文档为准,无法确认时不要自行添加字段。

两份完整YAML手动合并:基础配置、订阅配置和结果对照

手动合并时,先把文件分成“基础配置”和“订阅节点来源”两类,而不是简单复制。下面示例用于展示合并思路,地址、节点和策略组均为占位内容;它不是任何具体订阅的最终结果。

合并前:基础配置,仅示意:

mixed-port: 7890 mode: rule proxies: - name: "本地直连" type: direct udp: true proxy-groups: - name: "默认选择" type: select proxies: - "本地直连" rules: - "DOMAIN-SUFFIX,local,DIRECT" - "MATCH,默认选择"

合并前:订阅配置,仅示意:

proxies: - name: "示例节点A" type: http server: example.com port: 443 username: "user" password: "password" proxy-groups: - name: "订阅选择" type: select proxies: - "示例节点A" rules: - "DOMAIN-SUFFIX,example.org,订阅选择" - "MATCH,DIRECT"

合并后:仅示意,不能代表所有客户端的通用最终结果:

mixed-port: 7890 mode: rule proxies: - name: "本地直连" type: direct udp: true - name: "示例节点A" type: http server: example.com port: 443 username: "user" password: "password" proxy-groups: - name: "默认选择" type: select proxies: - "本地直连" - "示例节点A" - name: "订阅选择" type: select proxies: - "示例节点A" rules: - "DOMAIN-SUFFIX,local,DIRECT" - "DOMAIN-SUFFIX,example.org,订阅选择" - "MATCH,默认选择"

这个对照只说明整理逻辑:顶层标量通常保留一个最终值;映射对象按键名整理;列表则需要逐项确认顺序、去重和引用。真实订阅的节点字段、认证字段和代理类型可能不同,不能把上述占位节点直接用于连接。

字段类型手动处理方式检查内容
标量,例如mode、mixed-port只保留一个最终值确认该值由配置控制还是由客户端界面控制
映射,例如dns、proxy-providers按键名合并或整段替换同名键是否覆盖,是否因此丢失原有子字段
列表,例如rules、proxies、proxy-groups逐项整理,必要时去重节点名称、策略组名称和规则顺序是否一致

DNS、规则和策略组:最容易出错的合并点

DNS不要默认按子字段深度合并。如果你用一个新的dns对象覆盖原配置,可能只留下新对象中的字段,原来的nameserver、fake-ip-filter或其他设置可能不再存在。修改前先复制原段落;如果决定覆盖,就写出你确实需要保留的完整结构,再查看最终运行配置。

规则顺序决定匹配结果。规则通常从上到下检查,MATCH是常见兜底项。自定义规则放到MATCH之后,可能无法达到预期;策略组名称也必须与proxy-groups中的实际名称完全一致,包括空格、括号和特殊字符。

节点重名会影响排查。两个来源包含相同节点名时,列表中可能难以区分,也可能在某些处理方式下发生覆盖或引用混淆。优先使用提供器分组、名称前缀或客户端当前支持的重命名机制,并在最终节点列表中核对。

不要把“能保存”当成“已生效”。至少检查配置是否成功加载、提供器是否更新、节点是否显示、策略组是否出现,以及一条测试流量是否命中了预期规则。

合并后报错:备份、校验、加载和回滚顺序

排查时一次只改一层。推荐顺序是:备份原文件 → 单独验证订阅 → 验证Merge或提供器 → 加载主配置 → 查看日志和运行时结果 → 必要时回滚。

  1. YAML解析失败:检查Tab、缩进、引号、冒号和重复顶层键;把复杂的行内写法改成多行列表。
  2. 配置能打开但规则不生效:检查规则是否在MATCH之前,目标策略组是否真实存在,规则字符串是否完整。
  3. 节点列表为空:先单独更新订阅或proxy-provider,再检查URL、缓存路径、提供器名称和客户端是否支持该字段。
  4. 策略组加载失败:检查use中的提供器名称是否完全一致,proxies中的节点名是否真实存在。
  5. DNS、TUN或端口设置没有变化:确认该字段是否被客户端自身控制;Clash Verge Rev官方说明明确提示,部分由程序控制的配置项不能通过Merge覆盖。查看官方覆盖限制
  6. 无法判断哪一层出错:禁用Merge或移除第二个provider,恢复最近一次可用备份,再逐项恢复改动。

如果使用Clash Verge Rev,官方用户指南说明Merge修改后需要刷新,增强配置还会按启用顺序连续处理。对于mihomo,提供器和策略组字段应以当前配置文档为准;文档没有覆盖的客户端行为写“需核实”,不要按其他客户端经验推断。查看配置处理流程

Clash配置文件合并结论

最稳妥的做法不是把两份文件直接拼接,而是先明确配置来源和更新关系:订阅加本地设置用Clash Verge Rev的Merge,多订阅节点用mihomo的proxy-providers,两份完整YAML才进行备份后的手动整理。

完成后不要只看编辑器是否能保存,应继续检查YAML结构、规则顺序、节点与策略组引用、订阅更新结果和最终运行配置。不同客户端、内核和版本对字段的支持可能不同,本文示例只能作为结构参考,实际入口和语法请按当前版本核对。

常见问题

Clash配置文件怎么合并才不会被订阅更新覆盖?

不要直接修改订阅下载文件。需要长期保留的规则或设置,优先放进Clash Verge Rev的Merge配置;保存后重新启用并刷新,再查看最终运行配置。具体入口和可覆盖字段需按当前版本核对。

Clash订阅和本地配置可以直接拼接吗?

不建议。两份YAML可能出现重复顶层键,rules、proxies和proxy-groups还涉及列表顺序与名称引用。应先判断是订阅覆写、多订阅节点还是完整文件合并,再选择对应方式。

多个Clash订阅怎么合并节点?

在支持mihomo的配置中,为每个订阅建立独立的proxy-provider,再让同一个策略组通过use引用它们。提供器名称、缓存路径和策略组引用必须唯一且一致。

为什么Clash配置合并后规则不生效?

先检查规则是否位于MATCH之前,以及规则目标策略组是否真实存在。使用Clash Verge Rev时,自定义规则通常应放在prepend-rules中;官方说明将规则追加到原有MATCH之后可能导致规则无效。

DNS配置合并后为什么丢了原来的字段?

因为不能默认假设所有客户端都会对嵌套对象逐字段合并。覆盖dns前应保留原段落,写出需要保留的完整字段,再对照最终运行配置确认。

Clash Verge Rev、Clash for Windows和Android能通用这套配置吗?

不能直接保证通用。本文主要覆盖Clash Verge Rev Merge和mihomo proxy-providers;其他客户端的入口、内核和字段支持需按当前版本核对,无法确认的部分应标记为需核实。

相关阅读

参考资料

  1. Clash Verge Rev User Guide:配置类型与处理流程(clashvergerev.com)
  2. Clash Verge Rev Merge Configuration:Merge语法与覆盖限制(clashvergerev.com)
  3. mihomo:proxy-providers配置文档
  4. mihomo:proxy-groups配置文档
  5. Clash Verge Rev项目说明