singbox 和 clash 对比:订阅、平台与迁移怎么选
简答:已有 Clash 或 Mihomo 配置且运行正常,继续使用通常更省事;需要 JSON、规则集和多平台核心时再考虑 sing-box。两者没有脱离节点、协议、设备与线路条件的绝对速度差异。
定义:sing-box 与 Clash(实际使用中常指 Mihomo 生态)是不同的代理核心与配置生态,Clash Verge Rev 则是基于 Mihomo 的图形客户端,三者不在同一层级。
先看结论:你该继续用 Clash 还是换 sing-box
如果你已经有能正常使用的 Clash 或 Mihomo YAML 配置、代理组和规则,优先继续使用现有客户端,通常比重新迁移更省事。如果你需要维护 JSON 配置、细分路由规则、rule-set,或希望在多个平台使用同一套 sing-box 配置,再考虑迁移。这个结论针对配置维护成本,不是速度排名。
本文是第三方使用指南,与相关项目及开发者无隶属关系。Clash、Mihomo、Clash Verge Rev 和 sing-box 的名称经常被混用,比较前必须先分清核心、客户端和订阅格式。
| 你的情况 | 先选什么 | 判断理由 |
|---|---|---|
| 刚开始使用,只想导入现成订阅 | 能直接识别订阅格式的客户端 | 先看订阅输出是 Clash/Mihomo YAML 还是 sing-box JSON,不要只看软件名称 |
| 已有 YAML、代理组和规则,当前运行正常 | 继续使用 Mihomo 生态 | 可减少策略组、DNS、覆写、TUN 和规则迁移工作 |
| 愿意维护 JSON、Schema、路由和规则集 | 考虑 sing-box | 官方提供 JSON Schema、check、format 等配置工具,但学习和迁移成本更高 |
第一层:Clash、Mihomo、Clash Verge Rev 和 sing-box是什么
“Clash”在实际讨论中可能表示原始项目名称、Clash 兼容配置格式、某个内核,或者一个图形客户端。为了避免误判,建议拆成三层:内核负责连接、DNS、路由和 TUN;客户端负责界面、配置管理和系统权限;订阅或配置文件负责提供节点、代理组、规则和 DNS 参数。
| 层级 | Clash 侧常见代表 | sing-box 侧常见代表 | 主要作用 |
|---|---|---|---|
| 代理内核 | Mihomo | sing-box core | 处理入站、出站、DNS、路由和 TUN |
| 图形客户端 | Clash Verge Rev | sing-box for Android、sing-box for Apple platforms、sing-box for Desktop | 负责界面、系统代理、权限和配置管理 |
| 配置或订阅 | 常见为 YAML | 常见为 JSON | 描述节点、路由、规则、DNS 和系统接管方式 |
Mihomo 官方文档以 YAML 作为配置语法;Clash Verge Rev 官方 README 说明它是基于 Mihomo 内核的图形客户端,支持 Windows、Linux 和 macOS,并提供配置管理、系统代理和 TUN 模式。可查看 Mihomo 配置语法说明、Clash Verge Rev 官方 README。
sing-box 官方配置结构使用 JSON,顶层字段包括但不限于 log、dns、ntp、certificate、endpoints、inbounds、outbounds、route、services 和 experimental。具体字段应以已安装版本对应的官方文档为准,参见 sing-box 官方配置结构。
第二层:YAML 和 JSON 为什么不能直接互换
Mihomo 的 YAML 与 sing-box 的 JSON 不只是文件后缀不同,节点、代理组、规则、DNS 和 TUN 的数据结构也不同。不能把 YAML 文件改名为 JSON,也不能只复制节点地址就认为迁移完成。
| 需求 | Mihomo 常见表达 | sing-box 常见表达 | 迁移时要核对 |
|---|---|---|---|
| 配置文件 | YAML | JSON | 字段名称、数组结构和必填项 |
| TUN 接管 | tun 配置节点 | inbounds 中类型为 tun 的入站 | address、mtu、auto_route、strict_route、stack 等 |
| 代理组 | 代理组、规则提供器和覆写 | selector、urltest、route 规则等 | 组名、默认出口、自动测速和规则指向 |
| 规则集 | 规则提供器或本地规则 | inline、local 或 remote rule-set | 来源地址、更新方式、格式和匹配顺序 |
sing-box 官方提供 JSON Schema。支持 Schema 的编辑器可以提示字段并进行校验;也可以使用与当前配置功能匹配的命令行版本执行以下检查:
sing-box check -c config.json
sing-box format -w -c config.json -D config_directory
判定标准是:命令没有配置解析错误,启动日志没有未知字段、缺少必填字段、出站标签不存在或规则引用失败。若系统提示找不到 sing-box,先安装命令行程序;若某字段不支持,应根据当前版本文档调整,不能照搬旧教程。JSON Schema 与命令说明见 sing-box 官方 JSON Schema 和 sing-box 配置检查与格式化说明。
第三层:订阅能下载,不代表能完整导入
订阅链接可能返回 Clash/Mihomo YAML、sing-box JSON、单个分享链接或其他节点列表格式。浏览器能下载内容,不代表客户端能识别;客户端能识别节点,也不代表代理组、规则、DNS 和 TUN 参数全部保留。
- 先保存原始订阅内容和原配置,保留可回滚副本。
- 查看订阅提供方是否明确写出 Clash/Mihomo 或 sing-box 输出格式。
- 如果需要转换,先确认转换服务会不会接触完整订阅 URL、节点地址、密码或 UUID。
- 导入后逐项检查节点数量、代理组、规则、DNS、TUN 和默认出口。
- 用一个固定网站、一次 DNS 查询和一个实际应用做并行验证。
订阅转换后可能需要重新配置策略组、规则覆写、DNS、TUN 和默认出口,是否完整保留取决于输入格式与转换工具实现,未核实前不要假定一一对应。若订阅包含个人令牌,无法确认转换服务数据处理方式时,应标记为未核实,并优先使用本地或可信环境完成转换。
Clash Verge Rev 的隐私政策说明,配置、凭据和日志保存在本地,同时应用会连接用户配置的代理、订阅及其他相关服务。使用任何客户端或转换服务时,都应把订阅地址视为敏感信息,参考 Clash Verge Rev 官方隐私政策。
TUN、规则和 DNS:迁移时最容易出问题的地方
Mihomo 与 sing-box 都可以接管系统流量,但配置路径不同。Mihomo 的 TUN 通常放在 YAML 的 tun 节点;sing-box 的 TUN 是 inbounds 中类型为 tun 的入站,字段需要按其官方文档核对,不能机械替换。可参考 Mihomo TUN 配置文档 与 sing-box TUN 配置文档。
排障时先关闭 TUN,只验证普通 HTTP 或 SOCKS 代理;确认节点可用后,再开启 TUN;最后检查 DNS、局域网、系统代理和应用权限。若开启 TUN 后全设备断网,先关闭 TUN 并恢复系统网络,再检查默认出口、自动路由、严格路由、DNS 和管理员权限,不要同时修改 MTU、DNS、规则和节点。
sing-box 的路由配置包含 rules、rule_set 和 final 等结构;rule-set 又分为 inline、local 和 remote 等类型。迁移时应先把规则缩减到一条默认路由和一个明确出口,再逐项恢复复杂规则,参见 sing-box 官方路由配置 和 sing-box 官方 rule-set 配置。
版本变化也会影响 DNS 配置。sing-box 1.12.0 重构了 DNS server 格式,官方迁移文档列出了旧格式与新格式的对应关系;旧配置升级时应先查看 sing-box 官方迁移说明。官方变更记录还说明,部分旧 DNS 规则字段会被弃用或移除,因此本文不建议直接复制旧字段。
平台怎么选:先看客户端是否真正支持你的格式
| 平台 | 可核实的客户端方向 | 先检查什么 | 不应直接假定的内容 |
|---|---|---|---|
| Windows | Clash Verge Rev;sing-box for Desktop | 系统代理、TUN 权限、配置格式和防火墙提示 | 某个订阅一定能直接导入 |
| macOS | Clash Verge Rev;sing-box for Apple platforms 或 Desktop | 系统扩展、TUN、睡眠唤醒和系统代理恢复 | 桌面配置可直接用于 Apple 客户端 |
| Linux | Clash Verge Rev;sing-box for Desktop 或命令行核心 | 路由表、DNS、nftables、权限和网卡 | 图形界面与命令行配置完全相同 |
| Android | sing-box for Android;其他客户端需逐项核验 | VPN 权限、电池限制、应用分流和订阅格式 | 桌面端配置无需调整即可使用 |
| iOS 或其他 Apple 平台 | sing-box for Apple platforms;其他客户端需逐项核验 | VPN 授权、系统限制、配置导入和后台行为 | Windows、macOS 与 iOS 的权限行为一致 |
| 软路由或服务端 | 按命令行核心、发行版和防火墙支持选择 | 默认路由、DNS、MTU、UDP、日志和故障恢复 | 图形客户端的设置可直接复制到服务端 |
sing-box 官方客户端页面目前列出了 Android、iOS/macOS/Apple tvOS、Windows 和 Linux 的客户端分类;页面同时提醒,未列出的项目属于第三方,质量和广告情况需要用户自行核验。参见 sing-box 官方图形客户端列表。v2rayN、Shadowrocket 等名称只能说明客户端类别,不能单凭名称判断其是否支持某一份订阅或全部配置字段,具体兼容性未核实。
同条件并行测试:不要把线路差异误判成核心差异
- 固定同一设备、同一网络、同一节点、同一协议和同一时段。
- 先关闭 TUN,只用普通代理端口测试网页、DNS 和实际应用。
- 分别开启 TUN,每次只改变一个变量。
- 记录连接成功率、首包延迟、持续传输稳定性、丢包、CPU、内存和耗电。
- 重复多轮,并记录规则规模、DNS 设置、TUN 栈、MTU 和测试时间。
如果 sing-box 和 Mihomo 使用了不同节点、不同协议或不同规则集,结果只能说明两套组合的表现,不能推出某个核心在所有线路上都更快。节点位置、协议实现、线路质量、设备性能、规则数量、DNS 和 TUN 参数都可能改变结果。尤其是跨境办公,应分开观察 DNS 解析、TCP 建连、TLS 握手、UDP 会议和文件传输,单次测速不能代表全部业务。
从 Mihomo 迁移到 sing-box:备份、并行、回滚按这个顺序做
- 备份:保存原 YAML、订阅地址、覆写文件、规则文件、DNS 设置、代理组和当前能工作的客户端配置。
- 列清单:记录实际使用的节点协议、代理组名称、直连域名、代理域名、局域网例外和 TUN 参数。
- 最小化:先只保留一个已确认可用的出站、一个 direct 出站和一条默认 route。
- 校验:使用与当前配置匹配的 sing-box 命令行版本执行
sing-box check -c config.json。 - 并行:保留原客户端,在另一个配置或设备上测试,不要直接覆盖原配置。
- 逐项恢复:按节点、DNS、规则集、代理组、TUN、MTU 的顺序一次增加一项。
- 回滚:出现断网、DNS 异常、局域网不可达或应用不兼容时,关闭新客户端并恢复原配置。
如果你的问题只是节点慢、晚高峰延迟高或丢包,换核心通常不能消除线路拥堵;如果问题来自订阅格式、规则维护、平台支持或需要更细的 JSON 路由,迁移才可能有明确收益。
最终判断可以概括为:新手优先选择能直接识别现有订阅且便于回滚的客户端;已有 Clash 或 Mihomo 用户先保留稳定配置;愿意维护 JSON、Schema、rule-set、路由和 TUN 的进阶用户再考虑 sing-box。性能必须在相同条件下自行复现。
常见问题
sing-box 能直接导入 Clash 订阅吗?
不能把 Clash YAML 文件直接当作 sing-box JSON 使用。只有订阅明确输出 sing-box 格式,或经过可靠转换并核对节点、规则、DNS、代理组和 TUN 后,才适合导入;完整兼容性未核实前不要假定保留。
Clash、Mihomo 和 Clash Verge Rev 是一回事吗?
不是。Mihomo 是代理内核,Clash Verge Rev 是基于 Mihomo 的图形客户端,“Clash”还可能指配置格式、项目名称或其他客户端。比较时应分别看内核、客户端和订阅格式。
sing-box 一定比 Clash 快吗?
不能这样判断。节点、协议、线路、DNS、规则规模、设备和 TUN 参数都会影响结果。应固定同一节点、协议、设备和时段,并记录延迟、丢包、稳定性与资源占用。
Clash Verge Rev 和 sing-box 是同一层级吗?
不是完全同层级。Clash Verge Rev 是图形客户端,官方 README 说明其内置 Mihomo 内核;sing-box 同时有核心、JSON 配置体系和多个平台的官方客户端。
从 Mihomo 迁移到 sing-box 最容易丢什么?
最容易需要重写或重新核对的是代理组、规则覆写、DNS、rule-set、TUN、默认出口和应用分流。转换工具是否完整保留这些内容取决于输入格式与工具实现,未核实前应保留原配置并行测试。
sing-box 旧 DNS 配置还能继续用吗?
要看已安装版本和具体字段。官方变更记录说明 DNS server 格式在 1.12.0 重构,迁移文档列出了旧格式与新格式的对应关系;升级前应先执行配置检查并按当前文档迁移。