把版本限制说清楚:我在 2026-05-24 查看官方 release,sing-box 最新稳定版是 1.13.121.14.0-alpha.* 仍是预发布;Mihomo 最新 release 是 v1.19.25。这篇只讨论稳定版能放心写进日常配置的行为,alpha 分支的新字段只当后续观察项。

旧文把重点放在协议覆盖,2026 年再这样选会偏。真正影响日常维护的是 DNS 怎么分流、规则集怎么更新、TUN 怎么接管系统流量。协议只在少数前沿需求里决定胜负。

2026 年到底怎么选?

你的主要场景先选原因不适合的情况
Windows / macOS 桌面端日常使用MihomoMihomo Party、Clash Verge Rev 生态成熟,YAML 配置可读性高必须用 sing-box JSON 模板统一多端
OpenWrt / 旁路由 / 家庭网关MihomoOpenClash 和 Mihomo 配置资料更多,规则迁移成本低你已经用 sing-box 做服务端和网关
Android 单客户端sing-box 系或 Mihomo 系都可Karing、Hiddify 偏 sing-box,FlClash 偏 Mihomo,关键看订阅格式只拿旧 Clash 配置直接导入 sing-box
自建服务端和客户端同构sing-box服务端、客户端、规则和 DNS 可放进同一套 JSON 思路团队只熟 Clash YAML
追 Naive、AnyTLS 等前沿协议细节sing-boxsing-box 文档和实现通常更早暴露新字段只需要常见协议和桌面 GUI
大量历史 rule-providersMihomo.mrsRULE-SET 和 Clash YAML 可继续沿用准备统一改成 .srs 和 JSON

我的建议很简单:没有强约束就先用 Mihomo;有服务端同构、前沿协议或配置自动化要求,再把 sing-box 作为主内核。

DNS 差异为什么比协议更影响日常?

Mihomo 的 DNS 更像 Clash 传统配置的延伸。你会看到 enhanced-modefake-ipredir-hostnameserver-policyfallbackfallback-filterproxy-server-nameserver 这些字段。它适合从旧配置微调,因为字段名和大量中文教程里的写法接近。

sing-box 的 DNS 更像一套独立规则引擎。核心是 dns.serversdns.rulesfinal 和 rule action;到 1.14.0-alpha 文档里,DNS rule 还继续扩展了 ip_versionquery_typematch_response 等行为。稳定版用户不该直接追 alpha 字段,但可以看出 sing-box 的方向是把 DNS 解析纳入更严格的规则系统。

差异点Mihomosing-box选择建议
配置入口dns: 顶层 YAMLdns 对象 JSON旧 Clash 用户选 Mihomo 更省时间
Fake-IP 控制enhanced-mode: fake-ipfake-ip-filter通过 DNS rule、route rule 和 TUN 行为组合需要细粒度规则时 sing-box 更清晰
分域名 DNSnameserver-policy 支持域名和规则集dns.rules 用对象匹配并指定 action/server大量历史模板继续用 Mihomo
代理节点域名解析proxy-server-nameserver 独立处理通过 DNS server、route action 和 detour 组合团队配置审计选 sing-box 更规整
迁移风险字段多但容错高JSON 严格,层级错就不生效新手不要手写完整 sing-box DNS

DNS 迁移时先测两个域名:一个走常规解析,一个走你自定义规则。只要这两个域名的出口不一致,先停下来查 DNS,不要继续改协议字段。

rule-set 和 rule-providers 最大坑在哪里?

Mihomo 叫 rule-providers,sing-box 叫 rule-set。这不是换个名字那么简单,两边文件格式、引用方式、转换命令都不同。

项目Mihomo rule-providerssing-box rule-set
配置语言YAMLJSON
来源类型http / file / inlineremote / local / inline
常见格式yaml / text / .mrssource JSON / .srs binary
行为分类domain / ipcidr / classicalheadless rule,放进 route 或 DNS rule 引用
转换方式mihomo convert-ruleset domain/ipcidr yaml/text xxx.yaml xxx.mrssing-box rule-set compile --output xxx.srs xxx.json
旧 geodata 处理Clash 系配置还能见到 GEOSITE / GEOIP新配置应转向 rule-set,避免继续依赖旧 geosite / geoip 直引

2026 年不要把 .mrs.srs 混在同一个规则仓库里当成同类文件。文件名看起来都像二进制规则集,实际只能被各自内核读取。

如果你从 Mihomo 迁到 sing-box,先迁 domainipcidr 两类规则。classical 规则里经常混着 DOMAIN-SUFFIXIP-CIDRPROCESS-NAME,直接转换后最容易出现命中顺序变化。

TUN 差异怎么影响 Windows、Linux 和 Android?

Mihomo 的顶层 tun: 对普通用户更友好,字段名是 Clash 系习惯:auto-routeauto-redirectauto-detect-interfacedns-hijackstrict-route。Mihomo 文档还明确提示,listeners 里的 tun 更适合高级用户,普通用户优先用顶层 tun

sing-box 把 TUN 放在 inbound 体系里,字段是 JSON 风格:type: tunauto_routeauto_redirectstrict_routeroute_address_setroute_exclude_address_set。Linux 上 auto_redirect 依赖 nftables,官方文档也把它作为更高性能、减少 Docker bridge 冲突的推荐项。

平台 / 问题Mihomosing-box排查重点
Windows 多网卡 DNSstrict-route 可减少多宿主 DNS 解析问题strict_route 同样用于限制系统 DNS 行为开启后检查 VirtualBox、WSL、公司 VPN 是否异常
Linux 网关auto-redirect 配合 auto-routeauto_redirectroute_address_set 更细确认 nftables、路由表编号和 Docker bridge
Android可用 include-packageexclude-package可用 package_namepackage_name_regex 等规则先关私人 DNS,再测应用级规则
Apple 平台依赖 GUI 客户端封装图形客户端支持网络类型匹配更多不要照搬 Linux TUN 字段
大规则集进 TUNroute-address-set 依赖规则集route_address_set / route_exclude_address_setAndroid VpnService 对超大路由表更敏感

TUN 排错不要从协议开始,看虚拟网卡是否生成,再看 DNS 是否被接管,最后看 route rule 是否命中。顺序反了,会把一个路由表问题误判成协议问题。

协议覆盖还值得作为主因吗?

值得,但只在少数场景里值得。常见的 Shadowsocks、VMess、VLESS、Trojan、Hysteria 2、TUIC、WireGuard,两边都能覆盖到日常客户端需求。

sing-box 的优势是 Naive、AnyTLS 等前沿协议细节,以及服务端和客户端放在同一项目里维护的工程一致性。Mihomo 的优势是 Clash 系客户端生态,尤其是 Mihomo Party、Clash Verge Rev、OpenClash、FlClash 这类工具已经把大部分复杂度藏起来。

Mihomo v1.19.25 release 里继续新增 Tailscale outbound、OpenVPN outbound、GOST relay outbound proxy type 等能力,说明它不是只做旧 Clash 兼容。sing-box 1.13.12 则继续更新 naiveproxy 并修复问题,说明它仍在新协议和底层能力上快速推进。

协议或能力Mihomosing-box结论
常见订阅协议覆盖日常足够覆盖日常足够不作为默认选择依据
Naive不是 Mihomo 主线能力官方文档列为 inbound / outbound依赖 Naive 时优先 sing-box
AnyTLS已有配置项和客户端跟进官方文档列为 inbound / outbound追字段细节时优先 sing-box
OpenVPN / Tailscale outboundv1.19.25 有新增也在持续扩展相关能力看客户端封装,不只看内核
GUI 生态Mihomo Party、Clash Verge Rev 更成熟Karing、Hiddify 更友好但配置迁移仍有条件新手桌面端先选 Mihomo

从 Mihomo 迁到 sing-box 要重写哪些字段?

下面这张表比协议表更重要。只要你有一份超过 300 行的 Clash YAML,迁移成本基本都在这里。

Mihomo / Clash YAMLsing-box JSON迁移备注
proxiesoutbounds每种协议字段名不同,不能机械改名
proxy-groupsselector / urltest outbounds分组逻辑要重建 tag
rulesroute.rulesRULE-SETMATCHGEOIP 写法要改成对象规则
rule-providersroute.rule_set.mrs 不能直接给 sing-box 读取
dns.nameserver-policydns.rules先迁域名规则,再迁 IP 结果规则
tun.auto-routeinbounds[].auto_route字段命名和默认行为都要重新比对
tun.dns-hijackTUN + DNS inbound 行为组合不同 GUI 封装会隐藏部分字段

迁移建议是保留旧 Mihomo 配置作为基线,另建一份 sing-box 最小配置,跑 mixed inbound、一个 outbound、一条 domain rule、一条 DNS rule,确认后再加 rule-set。不要一次性把完整订阅、规则、DNS、TUN 全部迁过去。

哪些情况不建议折腾迁移?

第一,桌面端只想导入订阅、点选策略组、偶尔看日志,继续用 Mihomo 系客户端。Mihomo Party 和 Clash Verge Rev 的学习成本低很多。

第二,OpenWrt 路由器已经跑得稳定,规则更新也正常,不建议为了协议覆盖迁移到 sing-box。路由器场景的代价不在内核,而在 DNS、DHCP、旁路由网关和家庭设备回滚。

第三,团队里只有一两个人能看懂 JSON 配置,其他人只会改 Clash YAML,不建议把主配置切到 sing-box。配置可维护性比内核先进性更重要。

sing-box vs mihomo 不覆盖什么

我没有在 2026-05-24 重新跑吞吐量基准测试,所以不写「谁快 10%」这类结论。不同系统协议栈、网卡驱动、规则数量和 GUI 封装都会改变结果。

我也不把 1.14.0-alpha.* 的字段写成稳定建议。sing-box alpha 分支已经出现 DNS rule、route rule、TUN 相关新项,但生产配置更适合跟随稳定版文档。

iOS 端没有把 Shadowrocket、Quantumult X、Surge 纳入同表比较,因为它们不是简单的 Mihomo vs sing-box 二选一。iOS 用户更该看客户端自身的规则语法和订阅兼容性。

结论怎么落地?

把选择压成四条规则:

  1. 桌面新手、Clash YAML 老用户、OpenWrt 用户,默认选 Mihomo。
  2. 服务端和客户端想用同一套配置模型,或者需要 Naive、AnyTLS 细节,选 sing-box。
  3. 已经有大量 .mrsrule-providersRULE-SET 的配置,不要为了新协议贸然迁移。
  4. 真要迁移,顺序是 outbound、route rule、DNS、rule-set、TUN,最后再处理 GUI 导入。

Sing-box 和 Mihomo 都不是短期会消失的项目。2026 年的选择题不是谁更先进,而是谁能让你的 DNS、规则集和 TUN 在下一次更新后仍然可维护。

相关阅读