sing-box 与 Clash Verge Rev 区别对比:先分清内核与客户端
简答:如果你已有 Clash YAML 订阅、主要在 Windows/macOS/Linux 使用,Clash Verge Rev 通常更容易上手;如果你需要 Android、iOS 或更原生的 JSON 配置、规则集和多平台能力,应优先了解 sing-box 官方客户端。两者没有脱离设备、配置和节点条件的绝对性能排名。
定义:sing-box 是代理平台与配置体系,Clash Verge Rev 是基于 Mihomo 内核的桌面图形客户端,二者不属于同一层级的产品。
先看结论:两者到底差在哪里?
最容易混淆的一点是:sing-box 既可以指代理内核,也可以指官方图形客户端;Clash Verge Rev 则主要是一个桌面 GUI。Clash Verge Rev 的项目隐私说明明确写出,它是面向 Windows、macOS 和 Linux 的图形客户端,并使用 Mihomo(Clash.Meta)内核执行代理和 DNS 处理,详见Clash Verge Rev 官方隐私说明。
sing-box 官方则同时维护命令行工具和图形客户端。官方客户端列表显示:Android 使用 sing-box for Android,iOS、macOS 和 Apple tvOS 使用 sing-box for Apple platforms,Windows 和 Linux 使用 sing-box for Desktop,详见sing-box 官方图形客户端列表。
| 比较项 | Clash Verge Rev | sing-box |
|---|---|---|
| 定位 | 桌面图形客户端 | 代理平台、内核及官方多平台客户端 |
| 实际内核 | Mihomo | sing-box |
| 主要配置格式 | Mihomo 使用 YAML | 原生使用 JSON,可配合 JSON Schema |
| 官方桌面平台 | Windows、macOS、Linux | Windows、Linux,另有 Apple 与 Android 官方客户端 |
| 适合人群 | 已有 Clash YAML、重视桌面 GUI 的用户 | 需要多端、原生 JSON、细粒度路由或命令行管理的用户 |
| 性能结论 | 不能只看客户端名称;应在相同设备、网络、节点和测试地址下实测 |
上表中的配置格式可由官方文档核对:Mihomo 使用 YAML,且 YAML 对缩进和大小写敏感;sing-box 使用 JSON 配置,并支持通过 JSON Schema 为编辑器提供补全和校验,分别见Mihomo 配置语法与sing-box JSON Schema。
内核、客户端和订阅:不要把三件事混为一谈
1. Clash Verge Rev 与 Mihomo 的关系
Clash Verge Rev 负责图形界面、配置管理和系统交互,Mihomo 负责具体的代理连接、DNS、规则匹配和 TUN 等核心能力。因此,看到某个 Mihomo 配置字段能否使用时,不能只看 Clash Verge Rev 的界面名称,还要确认当前运行的内核是否支持该字段。
2. sing-box 官方客户端与第三方 GUI
官方客户端列表只列出项目维护的 Android、Apple、Desktop 客户端。某个第三方 GUI 即使声称使用 sing-box,也不应自动视为官方客户端;导入方式、界面功能和字段支持需要以该项目自己的文档为准。本文比较的是 sing-box 原生配置体系和官方客户端方向,不把所有第三方 GUI 统一归入 sing-box。
3. 订阅能否直接导入?
不能只看“订阅链接”四个字。Clash Verge Rev 更适合直接处理 Clash/Mihomo YAML 配置;sing-box 原生配置是 JSON,远程配置如果不是 sing-box 格式,可能需要客户端支持转换、服务端提供对应格式,或手动迁移节点和规则。导入前先确认订阅返回内容:如果打开后是 YAML,通常应先按 Clash/Mihomo 方式处理;如果是 JSON,再检查是否包含 sing-box 所需的 inbounds、outbounds、route 等结构。sing-box 官方配置结构可参考sing-box 配置文件说明。
协议与规则:支持范围相近,但写法不是一套
在常见协议层面,两套内核都覆盖不少主流类型。sing-box 官方出站文档列出了 Shadowsocks、Trojan、VLESS、TUIC、Hysteria2 等出站类型;Mihomo 官方入站文档也列出了 Shadowsocks、VLESS、Trojan、TUIC、Hysteria2 等类型,分别见sing-box 出站配置和Mihomo 入站配置。
但“都支持”不等于“配置可以互换”。同一个 VLESS、Reality、Hysteria 2 或 TUIC 节点,在两种配置中的字段名称、嵌套结构、TLS 写法和传输参数可能不同。Mihomo 的 Reality 配置使用其自身的 reality-opts 结构;sing-box 则按自己的 outbound、TLS 和 transport 结构组织。迁移时应以节点实际协议和官方字段为准,不要只把 YAML 后缀改成 JSON。
| 需求 | 更适合的方向 | 原因 |
|---|---|---|
| 已有 Clash YAML 订阅 | Clash Verge Rev | 减少格式转换和规则迁移 |
| 已有 sing-box JSON 配置 | sing-box | 可直接使用原生字段,并用 check 命令检查 |
| 需要 Clash 规则组和现有 YAML 生态 | Clash Verge Rev/Mihomo | 继续沿用原有策略组、代理组和 YAML 规则 |
| 需要 sing-box Rule Set | sing-box | 官方路由文档原生提供 rule_set 配置 |
| 只拿到 VLESS/Trojan/SS 节点链接 | 先看客户端的解析支持 | 节点链接格式不代表完整订阅格式 |
sing-box 的路由体系包含 rules、rule_set 和 final 等字段,详见sing-box Route 官方文档。因此,Clash 的 YAML 规则、代理组和 sing-box 的 Rule Set 不能简单按字段名称一一替换。
TUN、系统代理与 DNS:选择时真正影响体验的部分
系统代理通常只影响遵循系统代理设置的应用;TUN 则通过虚拟网卡接管更广泛的系统流量。Mihomo 官方文档说明,顶层 tun 配置可用于自动路由、DNS 劫持和按应用路由;sing-box 也将 TUN 作为入站类型,并在桌面客户端中提供 TUN 透明代理能力,分别见Mihomo 入站配置和sing-box for Desktop 官方说明。
实际选择时可以按以下顺序判断:
- 只需要浏览器或少量应用走代理:先使用系统代理或 HTTP/SOCKS 入站,排查成本较低。
- 需要覆盖不遵循系统代理的应用:再考虑 TUN,并确认当前系统允许客户端创建虚拟网卡。
- 启用 TUN 后无法联网:先关闭 TUN,确认系统代理是否正常,再检查 DNS 劫持、自动路由和 IPv6 设置。
- 两个客户端同时运行:只保留一个程序接管系统代理或 TUN,避免端口和路由冲突。
不要根据“某个客户端一定更快”做决定。速度会受到节点协议、网络、MTU、DNS、路由规则、设备负载和测试地址影响。若要自测,应固定同一设备、同一网络、同一节点和同一测试地址,分别记录直连基线、系统代理结果和 TUN 结果,再比较中位数;不要把一次测速结果写成通用排名。
按场景选择:四步做出决定
第一步:看你手里的配置。如果主要是 Clash YAML,优先尝试 Clash Verge Rev;如果已经是 sing-box JSON,优先使用 sing-box。先备份原文件,不要直接覆盖远程订阅内容。
第二步:看设备数量。只在 Windows、macOS 或 Linux 桌面使用,两个方向都可以;同时需要 Android、iPhone 或 Apple 设备时,sing-box 官方客户端覆盖范围更完整,但仍要确认对应平台的功能和配置方式。
第三步:看你是否需要细粒度配置。只想导入订阅、切换策略组、开启系统代理,Clash Verge Rev 的桌面 GUI 通常更直观。需要命令行检查、JSON Schema、Rule Set、复杂路由或统一配置目录时,sing-box 更适合按配置文件管理。
第四步:看迁移成本。已有规则组、代理组、覆写和 Clash YAML 的用户,切换到 sing-box 需要重新核对字段;已有 sing-box JSON、脚本和 Rule Set 的用户,反向切换也需要转换。没有必要为了“换内核”而迁移一个已经正常工作的配置。
| 你的情况 | 建议 |
|---|---|
| 新手,只用一台电脑,已有 Clash YAML | 先选 Clash Verge Rev |
| 新手,但需要手机和电脑多端 | 优先了解 sing-box 官方客户端是否覆盖你的平台 |
| 已有大量 Clash 规则和策略组 | 继续使用 Mihomo 体系,降低迁移成本 |
| 需要 JSON 配置、命令行和 Rule Set | 优先使用 sing-box |
| 软路由或 Linux 服务化运行 | 比较核心配置和系统服务方式,不要只比较 GUI |
导入后怎么确认没有选错?
- 确认配置格式:Clash/Mihomo 文件重点检查 YAML 缩进、代理组引用和规则字段;sing-box 文件重点检查 JSON 语法、标签引用和必填字段。
- 确认核心检查:sing-box 可使用
sing-box check检查配置,再使用sing-box format格式化;相关命令见sing-box 官方配置文档。 - 确认连接状态:先测试一个明确可访问的地址,再测试 DNS、网页和需要 UDP 的应用,不要只看客户端显示“已启动”。
- 确认路由:检查当前模式、策略组、规则命中和最终出口;若只有部分网站异常,优先查看规则和 DNS,而不是立即更换客户端。
- 确认迁移结果:逐项核对节点名称、TLS、Reality、传输层、UDP、TUN 和 DNS。任何未识别字段都应回到对应内核文档核验。
如果只是订阅导入失败,先判断返回内容到底是 Clash YAML、sing-box JSON,还是单个节点链接;如果是连接失败,再区分配置解析错误、节点认证错误、DNS 错误和 TUN 权限问题。这样比直接在两个客户端之间来回切换更容易定位原因。
常见问题
sing-box 是不是 Clash Verge Rev 的另一个界面?
不是。Clash Verge Rev 使用 Mihomo 内核;sing-box 是另一套代理平台和配置体系。即使两者都能处理部分相同协议,配置字段、规则模型和客户端实现仍可能不同。
Clash Verge Rev 能不能直接导入 sing-box JSON?
不能仅凭文件后缀判断。Clash Verge Rev 面向 Mihomo 配置,sing-box JSON 需要符合 sing-box 的配置结构。若没有明确的转换支持,应按节点、出站、DNS、路由和规则逐项迁移,不要直接把 JSON 改名为 YAML。
sing-box 一定比 Clash Verge Rev 更快吗?
没有足够条件得出通用结论。速度取决于设备、系统、节点、协议、网络、DNS、路由和测试地址。应在相同条件下多次测试,并与本机直连基线比较。
VLESS Reality、Hysteria 2 和 TUIC 两边都能用吗?
官方文档显示,两套体系都列出了多种相关协议,但具体传输、TLS、Reality、认证和 UDP 字段并不相同。能否使用要看当前核心版本、节点参数和配置格式,不能只根据协议名称判断。
只在电脑上使用,应该怎么选?
如果你已有 Clash YAML、需要桌面 GUI 和策略组管理,先从 Clash Verge Rev 开始;如果你已有 sing-box JSON,或希望统一使用 JSON、命令行和 Rule Set,则优先使用 sing-box。两者都能满足基础桌面代理需求时,优先选择迁移成本更低的一套。
常见问题
sing-box 是不是 Clash Verge Rev 的另一个界面?
不是。Clash Verge Rev 使用 Mihomo 内核,sing-box 是另一套代理平台和配置体系。两者即使支持部分相同协议,配置字段和规则模型也不相同。
Clash Verge Rev 能不能直接导入 sing-box JSON?
不能仅凭文件后缀判断。Clash Verge Rev 面向 Mihomo 配置,sing-box JSON 必须符合 sing-box 配置结构,必要时应逐项迁移节点、DNS、路由和规则。
sing-box 一定比 Clash Verge Rev 更快吗?
不能得出通用结论。应固定设备、网络、节点和测试地址,多次测试并与本机直连基线比较。
VLESS Reality、Hysteria 2 和 TUIC 两边都能用吗?
两套体系的官方文档都列出了多种相关协议,但具体字段、TLS、认证和传输写法不同,能否使用要以当前核心和节点参数为准。
只在电脑上使用应该怎么选?
已有 Clash YAML 且重视桌面 GUI,可先选 Clash Verge Rev;已有 sing-box JSON,或需要 JSON、命令行和 Rule Set,可优先选 sing-box。