OpenClash 多机场配置:多个订阅合并使用教程
简答:OpenClash 配置多个机场,推荐在同一个配置文件中使用多个 proxy-providers 分别填写订阅链接,再通过 proxy-groups 的 use 字段把它们加入选择或自动测速策略组。这样可以集中更新、统一切换节点,也比同时维护多个完整配置文件更容易排查。
定义:OpenClash 多机场配置,是指在同一份 Mihomo/Clash 配置中添加多个代理订阅提供者,并通过策略组统一选择这些订阅中的节点。
一、先理解 OpenClash 多机场配置的结构
OpenClash 是运行在 OpenWrt 上的 Mihomo(Clash Meta)客户端。官方项目说明中,OpenClash 可以在 LuCI 后台导入订阅或上传配置文件后启动;具体安装包和依赖应以项目的 Release 与 README 为准,可参考 OpenClash 官方 README。
配置多个机场时,通常涉及两个核心部分:proxy-providers 和 proxy-groups。proxy-providers 用来保存每个订阅的地址、更新间隔和本地缓存路径;proxy-groups 用来把一个或多个订阅中的节点集中到“手动选择”“自动测速”或其他策略组中。Mihomo 官方文档明确支持使用多个 provider,并通过策略组的 use 字段引用它们,详见 Mihomo proxy-providers 配置文档 和 Mihomo proxy-groups 配置文档。
需要注意,多个订阅并不是把多个完整 YAML 文件简单拼接在一起。更稳妥的方式是保留一份主配置,在其中定义多个订阅提供者;如果某个服务只提供节点订阅而不是完整配置,也应将它作为 provider 处理,再由策略组调用。
二、推荐方案:在一份配置里添加多个订阅
下面的示例只展示结构,订阅地址请替换成你从对应服务账户后台复制的真实地址。示例中的名称可以自行修改,但每个 provider 名称必须保持唯一。
proxy-providers:
provider_a:
type: http
url: "https://example.com/subscription-a"
path: ./proxy_providers/provider_a.yaml
interval: 3600
health-check:
enable: true
url: "https://www.gstatic.com/generate_204"
interval: 300
provider_b:
type: http
url: "https://example.com/subscription-b"
path: ./proxy_providers/provider_b.yaml
interval: 3600
health-check:
enable: true
url: "https://www.gstatic.com/generate_204"
interval: 300
proxy-groups:
- name: 手动选择
type: select
proxies:
- DIRECT
use:
- provider_a
- provider_b
- name: 自动选择
type: url-test
use:
- provider_a
- provider_b
url: "https://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
rules:
- MATCH,手动选择这个结构中,provider_a 和 provider_b 分别代表两条订阅;“手动选择”可以把两个订阅里的节点放在同一个列表中;“自动选择”则用于对纳入的节点进行连通性测试。Mihomo 文档说明,provider 的类型可以是 http、file 或 inline,HTTP 类型需要填写 url,本地缓存文件路径可以通过 path 指定。
如果你的配置文件已有名为“代理”“默认”或“漏网之鱼”的策略组,不必照搬示例中的策略组名称,只需要把对应 provider 名称加入已有策略组的 use 列表,并确认规则最后指向的策略组确实存在。
三、OpenClash 后台配置多个订阅的操作步骤
- 确认基础环境。先确认 OpenClash 已安装、内核可用,并且在关闭 OpenClash 时路由器本身能够正常访问订阅地址和必要的更新地址。首次使用时,官方 README 提醒需要提前确认网络环境。
- 备份当前配置。在修改前导出正在使用的 YAML 配置,或复制到本地保存。不要直接覆盖唯一可用配置,避免新配置语法错误后无法恢复。
- 准备订阅地址。分别登录你使用的服务后台,复制适用于 Clash/Mihomo 的订阅地址。不要把账户密码、订阅链接或带有长期授权参数的地址公开发布。
- 选择配置方式。如果你希望多个服务同时出现在节点列表中,使用一个主配置加多个
proxy-providers;如果不同服务各自提供完整规则和 DNS 配置,并且你只想在它们之间切换,可以分别导入多个配置文件,但这属于切换配置,不是合并节点。 - 添加 provider。在主配置的
proxy-providers下为每条订阅建立独立名称,例如provider_a、provider_b。每个 provider 的path应不同,避免多个订阅共用同一个缓存文件。 - 加入策略组。在目标
proxy-groups中添加use字段,并列出需要调用的 provider。手动组适合先确认节点是否正常;自动测速组适合在确认连通后再使用。 - 检查并保存。检查 YAML 缩进、冒号、引号和名称拼写。provider 名称在
proxy-providers和策略组use中必须完全一致。 - 更新订阅并查看日志。保存后先更新单个订阅,确认成功后再更新其他订阅。最后启动 OpenClash,在状态页确认配置载入成功,并在策略组中检查节点是否出现。
OpenClash 官方示例还展示了通过模块变量把多个订阅地址写入不同的 proxy-providers,例如使用 ruby_map_edit 修改多个 provider 的 url 字段。这种方式更适合已经在使用模板或自动更新模块的用户;普通用户直接编辑主配置通常更容易理解和维护,可参考官方的 OpenClash 默认覆写示例。
四、多个订阅如何分组,避免节点列表混乱
多机场配置完成后,建议不要把所有节点直接塞进一个巨大的手动列表。可以按用途建立几类策略组:一个“总选择”组负责最终出站,一个“自动选择”组负责在多个 provider 中测试,一个“服务商选择”组负责先选某个 provider,再从该 provider 中选节点。
| 配置目标 | 推荐结构 | 适合场景 |
|---|---|---|
| 所有订阅节点放在一起 | 策略组使用多个 use | 希望统一查看和切换节点 |
| 优先使用某一订阅 | 建立服务商选择组,再由总选择组引用 | 主用订阅和备用订阅有明确优先级 |
| 自动选择可用节点 | 使用 url-test 或其他自动策略,并引用多个 provider | 想减少手动切换 |
| 完全隔离不同配置 | 分别保存多个完整 YAML 配置 | 不同配置的规则、DNS 或模式差异很大 |
如果只是为了备用,建议先使用“手动选择”组验证两个订阅都能更新,再增加自动策略。Mihomo 文档提醒,策略组通过 use 引入 provider 时,健康检查和筛选行为要结合具体字段理解;例如只写在 proxies 中的节点与通过 provider 引入的节点,处理方式并不完全相同,因此不要只看策略组名称判断测速是否生效。
五、常见问题与排查顺序
1. 订阅更新失败,应该先查什么?
先在路由器上确认订阅地址能否访问,再检查地址是否复制完整、是否过期、是否需要特定 User-Agent,以及服务端返回的是 Clash/Mihomo 可识别内容还是网页提示。随后检查 OpenClash 日志中的 HTTP 状态、证书、DNS 和超时信息。不要把“更新失败”直接判断为服务失联,具体原因需要以日志为准。
2. provider 已更新,但策略组里没有节点怎么办?
重点检查三处:第一,策略组的 use 名称是否与 provider 完全一致;第二,订阅返回内容是否为支持的 YAML、URI 或 Base64 内容;第三,策略组是否设置了过于严格的 filter 或 exclude-filter。Mihomo 官方文档列出了 provider 内容格式和策略组筛选字段,可对照 proxy-providers 内容说明 排查。
3. 两个订阅中有重复节点或节点名称冲突怎么办?
可以为不同 provider 设置名称前缀,或在订阅转换、模板或覆写规则中增加区分标识。不要直接手工修改自动下载的缓存文件,因为下一次更新可能覆盖修改。修改前先确认当前 OpenClash 版本和配置模板是否支持对应的名称覆写字段。
4. 自动选择组一直为空或测速不稳定怎么办?
先切换到手动选择组,确认至少有一个节点能正常建立连接;再检查测速地址是否可访问、策略组是否引用了正确的 provider,以及是否设置了过短的超时时间。自动策略只能帮助选择测试结果较好的节点,不能证明订阅长期稳定,也不能替代对服务状态的核验。
5. 多个完整配置文件和多个订阅提供者有什么区别?
多个完整配置文件通常是“在不同配置之间切换”,每次启用其中一份;多个 provider 则是“在同一份主配置中汇总节点”,可以统一使用规则、DNS 和策略组。想要主备节点共存,优先考虑多个 provider;想要不同规则体系完全隔离,再考虑多个完整配置文件。
六、安全与维护建议
- 订阅地址通常包含账户授权信息,不要粘贴到公开论坛、截图或日志中。
- 下载 OpenClash 安装包时,优先从项目代码仓库和 Release 页面核对来源,不要仅根据搜索结果中的“官网”字样判断真实性。
- 订阅服务的价格、有效期、节点数量和在线状态应以对应服务的可核验页面为准;本文不对任何第三方服务的稳定性、速度或售后作承诺。
- 更新前保留旧配置,更新后先验证 DNS、局域网访问、规则模式和节点连通性,再决定是否启用自动更新。
- 如果某个服务长时间无法更新,不要反复公开提交订阅链接;可以先暂停该 provider,保留其他 provider 工作,并在确认新订阅可用后再迁移。
简单来说,OpenClash 多机场配置的关键不是复制更多链接,而是建立清晰的“订阅提供者—策略组—规则”关系。先让每条订阅单独更新成功,再合并到策略组,最后才启用自动测速和定时更新,故障定位会更快。
常见问题
OpenClash 可以同时添加多个机场订阅吗?
可以。推荐在一份主配置中定义多个 proxy-providers,再通过 proxy-groups 的 use 字段引用它们。这样多个订阅的节点可以在同一套规则和策略组中使用。
OpenClash 多机场配置必须使用订阅转换吗?
不一定。如果服务直接提供兼容 Mihomo/Clash 的订阅地址,可以直接作为 type: http 的 provider 使用。只有在格式不兼容、需要改名或需要统一规则时,才考虑使用可信的转换或模板方案。
多个订阅应该分别写不同配置文件吗?
不必。若目标是让多个订阅的节点同时出现在策略组中,使用多个 provider 更合适;只有当每个服务的规则、DNS 或运行模式需要完全隔离时,才建议分别保存完整配置文件。
为什么订阅更新成功但 OpenClash 看不到节点?
检查 provider 是否被策略组通过 use 引用、名称是否拼写一致、返回内容是否为可识别格式,以及 filter 或 exclude-filter 是否过滤掉了全部节点。建议先查看 provider 缓存和 OpenClash 日志。
