为什么不要混用 Mihomo 与 sing-box 配置格式?

#Mihomo配置#sing-box JSON#格式冲突
阅读需 6 分钟||

新手经常将各种配置文件混用导致代理内核崩溃。目前主流的两大内核:Mihomo (Clash Meta) 与 sing-box,其配置文件互不兼容。

1. 语法与配置模型的根本差异

它们不仅仅是 YAML 与 JSON 语法的区别,其数据结构、字段语义和路由匹配逻辑完全不同。

[!NOTE] 结构展示说明 以下片段仅用于展示两者在“定义节点”与“路由规则”时的结构差异,不可直接复制运行。要运行完整客户端,还需包含入站 (inbounds)、DNS 模块等必填配置。

  • Mihomo (YAML) 结构示例: 在 Mihomo 中,通常由 proxies 定义节点,通过 proxy-groups 定义策略组(此处假设名为 “Proxy”),然后在 rules 中进行引用。

    proxies:
      - name: "Node 1"
        type: vless
        server: example.com
        # ... (省略端口、uuid等细节)
    proxy-groups:
      - name: "Proxy"
        type: select
        proxies:
          - "Node 1"
    rules:
      - DOMAIN-SUFFIX,google.com,Proxy
  • sing-box (JSON) 结构示例: 在 sing-box 中,采用平铺对象结构,节点称为 outbounds 并用 tag 标识,路由系统 route 使用对象数组。

    {
      "outbounds": [
        {
          "type": "vless",
          "tag": "Node 1",
          "server": "example.com"
        },
        {
          "type": "selector",
          "tag": "Proxy",
          "outbounds": ["Node 1"]
        }
      ],
      "route": {
        "rules": [
          {
            "domain_suffix": ["google.com"],
            "outbound": "Proxy"
          }
        ]
      }
    }

2. 订阅链接、节点 URI 与完整配置

不要混淆“节点协议 URI”(如 vless://...)与“完整配置文件”。 许多客户端(如 v2rayN)支持将各种离散的协议 URI 转换为自身所需的路由格式。但如果你使用专用的全接管 GUI(如 Clash Verge Rev 运行 Mihomo,或 Hiddify 运行 sing-box),绝不能宣称“所有客户端都直接接受完整的 sing-box JSON 订阅”。必须根据所用软件,向订阅转换服务请求相对应的配置文件标准。


参考资料与相关阅读

机场讯 技术安全审查组Fact-Checked

本文所述的网络配置指南、路由分析及安全建议已通过技术独立验证。文内提及的客户端配置与底层原理引用自各开源项目的官方文档。为保障您的设备安全,请严格按照教程指引操作,切勿随意修改系统级内核参数。

相关推荐