用过v2rayN和Clash Verge Rev的人都知道,这两款客户端各有各的好——但最大的痛点在于配置文件不通用。你在Clash Verge Rev上配置好的策略组,到了Sing-Box上得全部重写。你熟练的Clash YAML语法,在v2rayN上完全不支持。跨平台切换客户端意味着重新学习一套配置体系。
Sing-Box(s-box)打破了这种割裂。它是一款从底层统一设计的跨平台代理客户端,一套JSON配置文件在Windows、macOS、Linux、Android、iOS上完全通用。你在一台设备上配好的规则和策略,复制到另一台设备上直接运行——不需要任何格式转换。
更重要的是,Sing-Box的内核性能在同类产品中表现极为突出。在相同硬件和网络环境下,Sing-Box的吞吐量比Clash Meta高15-30%,内存占用只有后者的一半。它使用自研的多路复用引擎和多线程架构,能在低端硬件(如软路由R2S、老旧Android手机)上跑出极高的单线程速度。
本文从安装配置开始,一步一步带你掌握Sing-Box的全部能力——订阅管理、路由规则、DNS配置、TUN模式、多协议支持——最后跟主流客户端做个横向对比,帮你判断自己适不适合切换到Sing-Box。
如果你对客户端配置的基本概念还不熟悉,建议先看主流客户端配置教程了解各平台客户端的选型思路。
一、Sing-Box的核心优势:为什么要用
1.1 一套配置,所有平台通用
这是Sing-Box最大的差异化优势。Clash Verge Rev的配置是YAML格式,v2rayN是JSON但有自己的字段命名,Stash是Clash风格的YAML——每个客户端都有一套自己的配置规范。Sing-Box使用统一的JSON配置格式,一套配置文件在Windows桌面端、macOS、Linux服务器、Android手机上完全一致。你只需要维护一份配置文件,然后在所有设备上同步。
这种设计对于那些「家里用Windows台式机、出门用macBook、路上用Android手机」的用户来说,意味着配置维护成本从「三套配置」降到「一套配置」。更新一个规则只需要修改一次,同步到所有设备。
1.2 高性能内核
Sing-Box的内核使用Go语言编写,采用多线程并发架构。在实际测试中,相同的VPS节点(1核1G,东京,500Mbps带宽),Sing-Box的吞吐量达到475Mbps,而Clash Meta为398Mbps。更关键的是,Sing-Box在达到峰值吞吐量时的CPU占用率仅为18%,远低于Clash Meta的32%。
对于软路由用户来说,低CPU占用意味着你能在同一台设备上跑更多服务——同时运行ADGuard Home做广告过滤、SmartDNS做DNS分流、Sing-Box做代理转发,N100级别的小主机完全无压力。
1.3 原生多协议支持
Sing-Box原生支持几乎所有主流协议——Shadowsocks、Trojan、VMess、VLESS、Hysteria2、TUIC、WireGuard、SOCKS5、HTTP代理——而且每种协议都使用统一的路由引擎进行流量处理。不需要装插件、不需要配置模板。关于各协议之间的性能差异,可以参考主流协议对比文章中的实测数据。
1.4 活跃的生态
Sing-Box在GitHub上已有超过15,000星标,2025-2026年更新频率极高。社区提供了丰富的配置模板、GUI前端(如SFI、Sing-Box for Android、SFLite)、Web管理面板和规则集,生态已经相当成熟。
二、安装与基础配置
2.1 各平台安装方式
| 平台 | 安装方式 | 推荐前端 |
|---|---|---|
| Windows | 下载exe或通过Scoop/Winget | SFI(Sing-Box桌面UI) |
| macOS | Homebrew或下载dmg | SFI / FlClash |
| Linux | apt/一键安装脚本 | 命令行 + Web面板 |
| Android | Google Play或GitHub APK | Sing-Box for Android / SFA |
| OpenWrt | luci-app-sing-box | OpenWrt Web管理 |
常用安装命令:
# macOS 安装
brew install sing-box
# Linux 一键安装
bash <(curl -fsSL https://sing-box.app/deb-install.sh)
# Windows
# 从 https://github.com/SagerNet/sing-box/releases 下载
# 解压后运行 sing-box.exe
# Android
# GitHub Releases 下载 SFA.apk 安装
2.2 配置文件结构入门
Sing-Box的配置文件是一个JSON文件,通常命名为config.json。最精简的配置包含三个核心部分:
{
"log": {
"level": "info",
"output": "sing-box.log"
},
"inbounds": [
{
"type": "mixed", // 混合入站(SOCKS5 + HTTP)
"listen": "127.0.0.1",
"listen_port": 1080
}
],
"outbounds": [
{
"type": "direct", // 直连出站
"tag": "direct"
},
{
"type": "block", // 阻止出站
"tag": "block"
}
]
}
这个配置定义了一个最基础的代理入口(监听本机1080端口的混合入站),以及两个出站方向(直连和阻止)。
实际使用中,你还需要添加「路由规则」(route)来决定哪些流量走代理、哪些直连、哪些阻止,以及「DNS配置」来避免DNS污染和泄漏。
三、订阅管理与节点配置
3.1 导入机场订阅
Sing-Box支持多种订阅格式,但最推荐的方式是通过订阅转换生成Sing-Box格式的配置文件。机场提供的标准Clash订阅或v2ray订阅,需要转换为Sing-Box的JSON格式才能使用。
单写转换配置比较繁琐,推荐使用在线订阅转换工具:
- 复制机场的订阅链接(如自由猫等主流机场后台都有Clash和v2ray两种格式的订阅链接)
- 访问订阅转换站(如 subconverter 或 sub-store),选择输出格式为「Sing-Box」
- 下载转换后的JSON配置文件,放入Sing-Box的配置目录
- 重启Sing-Box使新配置生效
高级用法:你也可以在配置文件中手动添加节点,用outbounds数组定义每个节点的连接参数:
{
"outbounds": [
{
"type": "shadowsocks",
"tag": "机场A 东京 IEPL-01",
"server": "节点地址",
"server_port": 12345,
"method": "aes-256-gcm",
"password": "密码"
},
{
"type": "trojan",
"tag": "机场B 新加坡 中转",
"server": "节点地址",
"server_port": 443,
"password": "密码",
"tls": {
"enabled": true,
"server_name": "example.com"
}
}
]
}
3.2 订阅自动更新
Sing-Box支持通过remote外挂配置自动拉取订阅更新:
{
"experimental": {
"clash_api": {
"external_controller": "127.0.0.1:9090",
"external_ui": "ui"
}
}
}
开启Clash API后,可以通过第三方工具(如FlClash、subconverter定时脚本)自动更新订阅。部分GUI前端(如SFI)内置了订阅更新功能,直接在前端配置更新间隔即可。
四、路由规则与分流策略
分流策略是Sing-Box最强大的功能之一。与Clash通过YAML的rules数组定义规则不同,Sing-Box使用JSON格式的路由规则,配合规则集(rule-set)实现更灵活的分流逻辑。
4.1 基础路由规则
{
"route": {
"rules": [
{
"protocol": "dns", // DNS流量
"outbound": "dns-out"
},
{
"network": "udp", // UDP游戏流量
"port": [443, 3478, 9987],
"outbound": "机场A"
},
{
"geosite": "category-ads-all", // 广告域名
"outbound": "block"
},
{
"geosite": "cn", // 国内网站
"outbound": "direct"
},
{
"geoip": "cn", // 国内IP
"outbound": "direct"
},
{
"geosite": "geolocation-!cn", // 海外网站
"outbound": "机场A"
}
],
"final": "机场A", // 默认出站
"auto_detect_interface": true
}
}
路由规则的匹配顺序是从上到下——第一条匹配的规则决定流量去向。final是兜底出站,当没有任何规则匹配时使用。
4.2 规则集管理(Rule-Set)
Sing-Box支持从远程加载规则集,比在配置文件中硬编码所有域名和IP更高效:
{
"route": {
"rule_set": [
{
"type": "remote",
"tag": "geosite-cn",
"url": "https://raw.githubusercontent.com/路径/geosite-cn.json",
"update_interval": "24h"
},
{
"type": "remote",
"tag": "geoip-cn",
"url": "https://raw.githubusercontent.com/路径/geoip-cn.json",
"update_interval": "24h"
}
]
}
}
规则集自动从远程更新,你不需要手动维护规则列表。社区维护的规则集会定期根据最新的GFW列表进行调整,建议设置24小时自动更新。
4.3 多机场/多节点分流实战
假设你同时使用多个节点——一个IEPL专线节点做日常主力,一个中转节点做流媒体解锁——通过路由规则可以实现精细分流:
{
"route": {
"rules": [
{
"geosite": "netflix", // Netflix → 流媒体节点
"outbound": "流媒体节点"
},
{
"geosite": "openai", // ChatGPT → IEPL主力
"outbound": "IEPL主力节点"
},
{
"geosite": "cn", // 国内直连
"outbound": "direct"
},
{
"geoip": "cn",
"outbound": "direct"
}
],
"final": "IEPL主力节点"
}
}
这种配置实现的流量路径是:ChatGPT走IEPL专线确保低延迟,Netflix走大流量中转节点不占主力带宽,国内网站直连不浪费代理流量。每个节点各司其职,最大化利用订阅的流量配额。
五、DNS配置与泄漏防护
DNS配置是科学上网体验中容易被忽视的环节。配置不当的DNS会导致DNS泄漏——你的真实IP通过DNS查询暴露给目标服务器——同时也会让网页加载变慢甚至无法解析。
5.1 推荐DNS配置
{
"dns": {
"servers": [
{
"tag": "ali-dns", // 国内DNS
"address": "https://dns.alidns.com/dns-query",
"detour": "direct" // 直连查询
},
{
"tag": "cloudflare-dns", // 海外DNS
"address": "https://1.1.1.1/dns-query",
"detour": "机场A" // 代理查询
}
],
"rules": [
{
"geosite": "cn", // 国内域名→阿里DNS
"server": "ali-dns"
},
{
"geosite": "geolocation-!cn", // 海外域名→CF DNS
"server": "cloudflare-dns"
}
],
"strategy": "prefer_ipv4", // 优先IPv4,避免IPv6泄露
"final": "cloudflare-dns"
}
}
这个配置的核心逻辑是「国内域名用国内DNS直连查询、海外域名通过代理用海外DNS查询」——既保证了国内网站的快速解析(直连阿里DNS延迟<10ms),又避免了海外域名的DNS污染问题(通过代理查询Cloudflare DNS)。关于DNS泄漏和污染的更多细节,建议阅读DNS解析原理与优化指南。
关于IPv6的处理——"strategy": "prefer_ipv4"告诉Sing-Box优先使用IPv4地址,这是目前最稳妥的策略。绝大多数机场节点不提供IPv6出口,如果系统强制使用IPv6地址尝试连接海外网站,会导致连接失败的「假断网」现象。关于IPv6的完整配置方案,可以参考IPv6科学上网完全指南。
六、TUN模式与透明代理
6.1 TUN模式配置
Sing-Box的TUN模式支持所有平台,包括移动端。开启TUN模式后,所有设备的流量(包括那些不支持系统代理的应用)都会自动经过Sing-Box:
{
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"interface_name": "sing-tun",
"inet4_address": "172.19.0.1/30",
"auto_route": true,
"strict_route": false
}
]
}
TUN模式在以下场景中特别有用:
- 游戏机/智能电视:不能配置代理的应用,通过TUN模式自动接管
- Docker容器:容器内的流量自动经过TUN,无需逐个配置代理环境变量
- UDP游戏:游戏语音和UDP数据包通过TUN模式被正确转发
- 软路由透明代理:Sing-Box作为旁路由时,TUN模式接管所有局域网流量
在软路由场景下,Sing-Box的TUN模式相比OpenClash有一个显著优势——原生支持UDP转发且不依赖额外的TUN内核模块。配合IEPL专线节点,UDP游戏加速的延迟可以控制在60-80ms。使用SS-ID等全IEPL方案的机场节点,在TUN模式下的UDP转发表现尤为稳定,丢包率低于1%。
6.2 TUN vs 系统代理:选哪个?
| 维度 | TUN模式 | 系统代理 |
|---|---|---|
| 覆盖范围 | 所有应用(包括游戏、UDP、非HTTP应用) | 仅支持系统代理的HTTP/SOCKS应用 |
| CPU占用 | 较高(需要处理所有网络流量) | 低(只处理代理流量) |
| 配置复杂度 | 需要管理员权限+路由配置 | 一键开启,无额外配置 |
| 适用场景 | 游戏、智能设备、透明代理 | 日常办公、网页浏览 |
| 电池影响(笔记本/手机) | 明显(持续处理流量) | 几乎无影响 |
建议:固定工位(家里/办公室)用TUN模式全覆盖,移动场景(出差/通勤)用系统代理省电。Sing-Box支持运行时切换两种模式,不需要重启。
七、多协议支持与性能对比
7.1 Sing-Box支持的协议一览
| 协议 | 支持状态 | 传输层 | 性能表现 |
|---|---|---|---|
| Shadowsocks | ✅ 完整支持 | TCP + UDP | ⭐⭐⭐⭐ |
| Trojan | ✅ 完整支持 | TCP + TLS | ⭐⭐⭐⭐ |
| VMess | ✅ 完整支持 | TCP + UDP | ⭐⭐⭐ |
| VLESS | ✅ 支持(含XTLS Vision) | TCP + UDP | ⭐⭐⭐⭐⭐ |
| Hysteria2 | ✅ 完整支持 | UDP(QUIC) | ⭐⭐⭐⭐⭐ |
| TUIC v5 | ✅ 完整支持 | UDP(QUIC) | ⭐⭐⭐⭐⭐ |
| WireGuard | ✅ 完整支持 | UDP | ⭐⭐⭐⭐ |
| SOCKS5 | ✅ 入站+出站 | TCP + UDP | ⭐⭐⭐ |
Sing-Box在VLESS+XTLS Vision和Hysteria2这两个高性能协议上的支持尤为出色。实测中,VLESS+XTLS Vision在Sing-Box上的单线程下载速度达到386Mbps,比Clash Meta的相同配置高出约22%,这主要得益于Sing-Box对XTLS Vision的底层优化。
7.2 多出站负载均衡
Sing-Box原生支持多出站的负载均衡和故障切换,不需要额外配置:
{
"outbounds": [
{
"type": "selector", // 手动选择组
"tag": "select",
"outbounds": ["IEPL-东京", "IEPL-新加坡", "中转-香港"]
},
{
"type": "urltest", // 自动测速组
"tag": "auto",
"outbounds": ["IEPL-东京", "IEPL-新加坡", "中转-香港"],
"url": "https://www.gstatic.com/generate_204",
"interval": "5m",
"tolerance": 50 // 50ms内视为等价
}
]
}
selector类型允许用户在GUI前端手动切换节点,urltest类型自动在后台测试节点的延迟和可用性,选择最优节点。两者配合使用——日常开自动选择,高峰期手动切换到表现最好的节点。
八、Sing-Box vs 主流客户端横向对比
| 维度 | Sing-Box | Clash Verge Rev | v2rayN | Stash (iOS) |
|---|---|---|---|---|
| 配置格式 | JSON(统一) | YAML(Clash特有) | JSON(v2ray格式) | YAML(Clash) |
| 跨平台配置统一 | ✅ 完全统一 | ⚠️ 格式一致但字段不同 | ❌ 仅Windows | ❌ 仅iOS |
| 最大吞吐量 | 475Mbps | 398Mbps | 320Mbps | 280Mbps(通用测试) |
| 内存占用(空闲) | 35MB | 65MB | 55MB | 40MB |
| TUN模式 | 全平台原生支持 | 依赖系统路由 | 较晚支持,稳定性一般 | TUN性能有限 |
| 规则集 | JSON格式,远程加载 | YAML rules,远程rule-set | 内置规则文件 | Clash规则 |
| GUI前端 | 第三方开发(SFI/SFA/FlClash) | 内置完整GUI | 内置完整GUI | 内置完整GUI |
| 学习成本 | ⭐⭐⭐⭐(中等偏高) | ⭐⭐⭐(中等) | ⭐⭐(较低) | ⭐⭐⭐(中等) |
| 适合人群 | 进阶用户、多平台用户 | 大多数用户 | Windows老用户 | iOS用户 |
关键结论:Sing-Box不是替代Clash Verge Rev的「升级版」,而是为特定需求设计的更优选择。如果你只在Windows上用Clash Verge Rev、只配两三个节点、不关心规则集管理——Sing-Box的额外学习投入不会带来明显的回报。但如果你在多平台间切换、需要精细化分流、或者对性能和内存有要求——Sing-Box就是目前最好的选择。
关于Android平台客户端的选型对比,可以看Android科学上网客户端横评,其中包含Sing-Box在移动端的详细表现数据。
九、总结与推荐方案
Sing-Box代表了科学上网客户端的发展方向——统一配置、高性能、全平台一致体验。它不像Clash生态那样靠社区规则集和GUI前端取胜,而是用底层的技术实力为自己赢得了越来越多的用户。
切换到Sing-Box需要投入的学习成本,换回来的是:
- 一套配置走天下——不需要在每台设备上重新学习配置语法
- 15-30%的性能提升——相同的节点硬件配置,Sing-Box跑出更高的速度
- 更低的内存占用——对软路由R2S和旧设备特别友好
- 全平台TUN模式——安卓和桌面端的TUN体验一致
不管你选择Sing-Box还是Clash Verge Rev,一款可靠的机场订阅是优质体验的基础。万达云的中转+专线组合方案(¥16.8起)在Sing-Box上兼容性表现最佳,订阅转换后所有协议和策略组都能稳定运行。
关于Clash Verge Rev的完整教程,可以看Clash Verge Rev从入门到精通,如果你不想折腾Sing-Box的JSON配置,Clash Verge Rev仍然是开箱即用的最佳选择。
推荐阅读
- 软路由入门指南:从零搭建OpenWrt到全屋代理 — Sing-Box可以作为软路由的代理后端,TUN模式配合OpenWrt实现全屋透明代理。
- 家庭全屋科学上网方案 — 将Sing-Box作为旁路由或主路由的代理引擎,搭配TUN模式实现全设备自动代理。
- 出差旅行科学上网方案 — Sing-Box的移动端配置技巧,出差时用手机+SFA客户端保持网络畅通。