mihomo 与 sing-box 文档差异
Mihomo 与 sing-box 内核手册编辑部 · 更新于 2026-10-18
mihomo 使用 YAML 与 rule-providers,sing-box 使用 JSON 与 rule-set;两者的规则集格式、控制接口、TUN 默认栈和图形客户端安排也不同,下面按官方文档写明的条目逐项对照。
mihomo 与 sing-box 都提供命令行内核,但官方资料采用不同配置结构和发布方式。下表只列文档明确记录的差别,包括格式、规则集、策略组、控制接口、TUN 与图形客户端;哪个更快、更稳,官方没有说明。
| 项目 | mihomo | sing-box |
|---|---|---|
| 配置格式 | YAML(源码里的默认文件名是 config.yaml) | JSON(源码里 run 默认读 config.json) |
| 规则集 | rule-providers,支持 yaml、text、mrs;behavior 可为 domain、ipcidr、classical | rule-set,source 为 JSON,binary 为 .srs |
| 二进制规则集转换 | mihomo convert-ruleset | sing-box rule-set compile |
| 策略选择 | 独立的 proxy-groups 段 | 出站类型 selector 与 urltest |
| 控制接口 | 原生 RESTful API | 兼容 Clash API,另有自有 gRPC API 服务 |
| TUN | 默认栈 mips | v1.14.x 文档列 system、gvisor、mixed;1.15 alpha 文档描述自有栈 |
| 官方图形客户端 | 官方页面列第三方客户端 | 官方维护 Android、Apple、Desktop 客户端 |
| 发布方式 | 正式版与滚动 Prerelease-Alpha 标签 | 正式版及编号 alpha、beta、rc;软件包有四条轨道 |
配置格式是最直观的结构差异:mihomo 文档以 YAML 描述配置,sing-box 文档明确写 JSON。规则集也有各自的字段名称与转换命令,不能把一方的配置结构直接当作另一方格式。
控制界面同样不同。mihomo 文档列出 RESTful API;sing-box 文档说明其 Clash API 位于 experimental.clash_api,并在 1.14.0 起提供 gRPC API 服务。TUN 部分存在版本口径差异,sing-box 当前文档含有只在 1.15 alpha 出现的内容。
继续阅读mihomo 配置结构或sing-box 配置结构。
规则集转换命令分别是 mihomo convert-ruleset(把 yaml / text 转成 mrs)和 sing-box rule-set compile(把 JSON 源文件编译成 .srs)。mihomo 将代理组放在 proxy-groups,sing-box 把 selector 与 urltest 作为出站类型。两者的配置怎样互相转换,官方没有说明。
许可证也有名称条款。mihomo README 写 GPL-3.0,且与 MetaCubeX 无关的下游项目名称不得包含 mihomo;sing-box 为 GPL-3.0 或更高版本,并限制未经同意使用项目名称或暗示关联。
最近正式版的发布时间也不同:mihomo v1.19.28 到 v1.19.32 相邻两版的间隔在 10 至 29 天,sing-box 1.14.0 至 1.14.3 发布于 2026-08-31 到 2026-10-09。这只是这几个版本的日期记录。
常见问题
两种内核配置能混用吗?
文档记录两者采用不同格式和字段结构:mihomo 是 YAML,sing-box 是 JSON。两者之间的配置如何互转或混用,官方没有说明。
两者都能提供图形界面吗?
mihomo 官方客户端页列出第三方工具,说明项目不直接控制其开发;sing-box 官方页面列出由 Project S 维护的 Android、Apple 与 Desktop 客户端。