sing-box 对比 Clash(Mihomo):配置、订阅和客户端怎么选?
简答:普通用户只想导入订阅、切换节点,优先考虑 Mihomo 图形客户端;需要细粒度 DNS、路由、TUN 或长期维护 JSON 配置,再考虑 sing-box。二者没有脱离设备、节点和配置环境的固定速度排名。
定义:sing-box 是以 JSON 配置为核心的通用代理平台;用户所说的 Clash 通常需要进一步确认是原版 Clash、Clash.Meta 演进而来的 Mihomo 内核,还是某个图形客户端。
先看结论:你该选 sing-box 还是 Mihomo?
如果你只是导入订阅、切换节点、打开系统代理,先选支持 Mihomo 的成熟图形客户端,学习成本通常更低;如果你需要自己维护 DNS、路由、TUN、规则集或服务器配置,再考虑 sing-box。最重要的是,不要把“内核更快”直接等同于网页速度,实际体验还会受到节点线路、协议、服务器负载、DNS、规则数量和设备性能影响。
| 主要需求 | 优先考虑 | 判断理由 |
|---|---|---|
| 只想导入订阅、切换节点 | Mihomo 图形客户端 | 通常更接近常见订阅和 YAML 配置的使用方式,少改配置即可开始。 |
| 需要复杂 DNS、路由和规则集 | sing-box | JSON、route、DNS、rule_set 等模块拆分清晰,适合持续维护。 |
| 正在使用 Clash Verge Rev | 先继续使用 Mihomo | 项目 README 将其定位为基于 Tauri 的 Windows、macOS 和 Linux 图形客户端,隐私政策也说明其使用 mihomo 内核,迁移到 sing-box 需要更换配置生态。 |
| 需要 WireGuard | 按客户端当前文档确认 | sing-box 新配置应关注 WireGuard endpoint;旧的 WireGuard outbound 已进入迁移路径,不能照搬旧字段。 |
| 低配置设备或在意电量 | 同条件实测 | 没有统一设备、节点、协议和规则条件的 CPU、内存或吞吐数字,不能直接套用。 |
截至发稿时,官方资料显示 sing-box 提供 Android、Apple 平台和 Windows、Linux 桌面客户端;Clash Verge Rev 项目则面向 Windows、macOS 和 Linux。移动端是否能直接导入某份订阅,仍要看具体客户端支持的格式。
本站是第三方使用指南站,不代表任何客户端项目;下载和安装前请以对应项目的官方仓库、文档或应用商店页面为准。
Clash、Clash.Meta、Mihomo 和客户端是什么关系?
搜索“Clash 对比 sing-box”时,最容易混淆的是“内核”和“客户端”。内核负责解析配置、建立连接、执行规则和转发流量;客户端负责提供界面、订阅管理、系统代理、TUN 权限和日志查看。
| 名称 | 所属层级 | 当前使用时应确认什么 |
|---|---|---|
| 原版 Clash | 较早的代理内核项目 | 不要把旧配置的全部字段默认视为新内核仍然支持。 |
| Clash.Meta | Clash 生态中的后续内核名称 | 旧教程、文件名和日志中可能仍出现这个名称。 |
| Mihomo | 当前独立维护的兼容内核名称 | 配置通常围绕 YAML、代理组、规则和 provider 展开,具体字段以项目文档为准。 |
| Clash Verge Rev | 桌面图形客户端 | 它不是 sing-box 内核;项目 README 和隐私政策均说明其使用 mihomo 内核。 |
| sing-box | 独立的通用代理平台 | 主要使用 JSON 配置,并有自己的 inbound、outbound、route、DNS 和 endpoint 结构。 |
可以把关系简化为:客户端是外壳,内核才是实际处理流量的程序。因此,看到“Clash 客户端”时,要继续确认它内置的是 Mihomo、其他内核,还是只支持某种订阅格式。Clash Verge Rev 的项目说明可查看项目仓库 README,其隐私政策也列出了 bundled mihomo core。
关于名称演进,MetaCubeX 的资料仍保留 Clash.Meta 旧称和 Mihomo 当前称呼;实际下载文件、配置目录和字段应以Mihomo 项目资料及其文档为准。
配置格式和订阅兼容:YAML、JSON 不能直接互换
Mihomo 通常使用 YAML 配置,常见结构包括端口、proxies、proxy-groups、rules、proxy-providers 和 DNS;sing-box 使用 JSON,常见模块包括 inbounds、outbounds、route、dns 和 endpoints。两种格式都能表达代理、分流和 DNS,但字段名称、默认行为和配置层级并不相同。
订阅能否直接导入,取决于订阅返回的实际内容,而不是链接后缀。订阅可能返回节点 URI、YAML 节点列表、完整客户端配置,或者经过转换的 JSON。Mihomo 官方资料说明代理 provider 可以通过 URL 获取和更新,相关格式可查看Mihomo 代理提供者内容文档。
- 先在浏览器或命令行查看订阅返回内容,确认是节点列表还是完整配置。
- 记录原配置中的代理组数量、节点数量、规则条数和主要节点参数。
- 如果要转为 sing-box,先只转换一个节点,不要一次性迁移所有规则。
- 逐项核对服务器地址、端口、UUID、密码、SNI、ALPN、TLS、传输方式和证书校验设置。
- 导入后检查代理组数量、规则命中和日志中的出站标签,确认没有静默丢字段。
涉及订阅转换时,尽量避免把含有个人凭据的订阅地址交给公共转换服务。更稳妥的做法是使用可信的本地工具,或者只复制不含真实密码和订阅令牌的脱敏配置进行测试。
规则、DNS、TUN 和 WireGuard:差异不在“开关名称”
两种内核都能处理系统代理、TUN、DNS 和规则分流,但配置思路不同。Mihomo 侧重代理组、规则和 provider;sing-box 侧重 route、rule_set、DNS 规则动作以及独立的 inbound、outbound 和 endpoint。不要把某一方文档里的字段直接写到另一方配置中。
sing-box 的 TUN 文档列出 interface_name、address、mtu、auto_route、auto_redirect 等字段;DNS 劫持或 DNS 处理应结合 DNS 与 route 文档中的规则动作配置,而不是把不存在的字段复制进 TUN 段。具体可查看sing-box TUN 文档。
WireGuard 也需要特别注意:sing-box 官方迁移文档把旧 WireGuard outbound 指向 endpoint 结构,当前 WireGuard endpoint 文档列出 address、private_key、peers 等字段。因此,旧教程中的 outbound 写法不能直接当成新配置模板,应按WireGuard 迁移说明和WireGuard endpoint 文档核对。
排查 TUN 时按这个顺序做:
- 先关闭 TUN,仅通过 HTTP、SOCKS 或 mixed 端口测试节点。
- 确认系统代理指向客户端设置页显示的监听地址和端口,常见端口可能是 7897 或 7890,但必须以设置页为准。
- 再启用 TUN,检查 Windows 服务权限、macOS“隐私与安全性”放行、Linux 网卡和路由权限,以及 Android 或 iOS 的 VPN 权限。
- 查看连接日志中实际命中的规则和出站策略,再对比出口 IP,不能只看“端口已打开”。
按设备选择:Windows、macOS、Linux、Android、iOS、软路由和服务器
| 平台 | 更适合的起步方式 | 重点检查 |
|---|---|---|
| Windows | 桌面用户先用 Mihomo 图形客户端;需要 JSON 路由时再看 sing-box Desktop。 | TUN 服务模式、虚拟网卡、Windows 防火墙和系统代理。启用服务模式时需允许客户端安装或启动相关服务。 |
| macOS | 按客户端是否支持目标内核和配置格式选择。 | TUN 权限、系统“隐私与安全性”放行、应用隔离状态和系统代理。 |
| Linux | 服务器、软路由和复杂路由可评估 sing-box;Mihomo 也适合已有 YAML 配置的场景。 | 专用用户、配置目录权限、CAP_NET_ADMIN 等能力、systemd 日志和路由表。Mihomo 官方 systemd 示例见服务配置文档。 |
| Android | 可在官方客户端目录中确认 sing-box for Android,也可选择支持 Mihomo 的 Android 客户端。 | VPNService 是否被系统允许、后台电池限制、是否同时运行其他 VPN,以及应用分流设置。 |
| iOS 和 iPadOS | 先看应用商店和项目页面支持的格式;常见客户端如 Shadowrocket 是否能读取目标配置,以应用页面为准。 | VPN 配置授权、订阅格式、DNS 接管能力和后台限制。不要把桌面 YAML 或 JSON 默认当成移动端可用配置。 |
| 软路由或服务器 | 需要长期运行、多设备共享和细粒度路由时,可优先评估 sing-box;已有大量 YAML 规则时继续使用 Mihomo 也更省迁移成本。 | 监听地址、防火墙、专用用户、配置文件权限、TUN 或透明代理能力。 |
sing-box 官方客户端页面列出了 Android、Apple 平台以及 Windows、Linux 桌面客户端,具体入口可查看Graphical Clients 页面。这只能说明官方提供的客户端范围,不能替代对具体订阅格式和系统权限的核对。
三种路径速查:按学习成本做选择
| 使用路径 | 推荐方向 | 操作重点 |
|---|---|---|
| 只导入订阅 | Mihomo 图形客户端 | 导入后检查节点数量、代理组、系统代理和日志命中,不急着开启 TUN。 |
| 需要自定义规则 | 先评估 Mihomo YAML,再考虑 sing-box JSON | 先明确规则来源、策略组和 DNS 需求,每次只改一个模块并保留备份。 |
| 需要多端统一配置 | 按平台共同支持的字段选择 | 不要只看内核名称,先确认 Windows、macOS、Android、iOS 是否都能读取同一格式。 |
这三条路径的核心差别不是“谁更强”,而是配置维护方式不同。只导入订阅时,客户端生态和格式兼容更重要;需要复杂规则时,字段表达能力和日志可读性更重要;多端统一时,最低共同能力和迁移成本更重要。
迁移前的安全和兼容性检查清单
- 看维护状态:查看官方仓库最近提交、发布页、Issue 和文档是否仍在更新,不要只根据搜索结果中的旧教程判断项目状态。
- 看开源与权限:优先从官方仓库下载,确认安装包来源、签名或哈希校验方式,并了解客户端是否会保存订阅地址、UUID、密码和日志。
- 看配置风险:订阅地址往往包含个人令牌;Clash Verge Rev 隐私政策说明配置和订阅文件可能包含订阅 URL、服务器地址、端口、密码和 UUID,因此不要把原文件直接上传到公开 Issue 或公共转换服务。
- 看版本兼容:升级前保存原配置,记录当前内核名称和客户端版本;升级后先不开 TUN,确认单节点连接和日志正常。
- 看转换结果:转换前后对比代理组数量、节点数量、规则条数以及 TLS、Reality、传输层参数;任何字段缺失都应先回滚,而不是直接判断节点失效。
如果只是网页能打开、部分应用不能连接,优先检查 DNS、TUN 路由、应用分流、IPv6 和日志命中;如果节点测试成功但浏览器打不开,先检查浏览器是否使用系统代理,以及监听端口是否被其他程序占用。
常见问题
sing-box 一定比 Clash 或 Mihomo 快吗?
不能这样判断。速度和稳定性同时受节点线路、协议、服务器、DNS、规则数量、设备和测试时段影响。应使用同一设备、同一节点、同一协议和同一目标地址进行对比。
Clash Verge Rev 能直接使用 sing-box 配置吗?
不能把它当作通用转换器。Clash Verge Rev 项目说明其使用 mihomo 内核,sing-box 则有独立的 JSON 配置结构;迁移时通常需要更换支持 sing-box 的客户端,并逐项转换配置。
为什么同一个订阅能在 Mihomo 中导入,却不能在 sing-box 中导入?
订阅可能返回 Mihomo YAML、代理组或 provider 字段,也可能包含 sing-box 不识别的协议参数。先查看订阅返回内容,再核对节点协议、TLS、传输层和规则格式。
WireGuard 在 sing-box 里应该写 outbound 还是 endpoint?
应优先按照当前官方迁移文档和 endpoint 文档配置。旧 WireGuard outbound 已进入迁移路径,不能直接照搬旧教程中的字段。
普通用户是否需要迁移到 sing-box?
如果当前 Mihomo 客户端能稳定导入订阅、切换节点并满足系统代理需求,没有必要仅因“性能更快”的宣传就迁移。只有在需要复杂 DNS、路由、规则集、服务化运行或多端统一配置时,才值得评估迁移成本。
iOS 能不能直接使用桌面的配置文件?
不能默认认为可以。iOS 客户端、订阅格式、VPN 权限和可用字段可能不同,应先查看应用商店与项目页面支持的格式,再用一份脱敏配置测试。
常见问题
sing-box 一定比 Clash 或 Mihomo 快吗?
不能直接下结论。速度受设备、节点、协议、DNS、规则和测试时段影响,应在相同条件下复测。
Clash Verge Rev 能直接使用 sing-box 配置吗?
不能当作通用转换器。它使用 mihomo 内核,sing-box 有独立 JSON 配置结构,迁移需要对应客户端和逐项转换。
为什么订阅能在 Mihomo 中导入,却不能在 sing-box 中导入?
订阅可能返回 Mihomo YAML、代理组或 provider 字段,也可能包含 sing-box 不支持的协议参数。
WireGuard 在 sing-box 里应该写 outbound 还是 endpoint?
优先按照当前官方迁移文档和 endpoint 文档配置,旧 WireGuard outbound 写法不能直接照搬。
普通用户是否需要迁移到 sing-box?
当前 Mihomo 已能满足订阅、节点和系统代理需求时,不必仅因性能宣传迁移;复杂 DNS、路由和服务化需求再评估。
iOS 能直接使用桌面配置文件吗?
不能默认认为可以,应先确认具体应用支持的配置格式、VPN 权限和字段,再用脱敏配置测试。