通用代理平台(Universal Proxy Platform)的设计哲学
在跨平台网络软件的演进史上,长年存在着严重的平台碎片化痛点:
- Windows 平台早期依赖 v2rayN 或旧版 Clash,现代则多迁移至 Clash Verge Rev 客户端 或 Mihomo Party 客户端;
- macOS 平台依赖 ClashX 或 Surge;
- iOS 平台主要使用 Shadowrocket 小火箭客户端 或 Quantumult X;
- Linux 软路由设备则依赖复杂的 iptables 脚本拼接。
不同平台的软件采用互不兼容的配置语法(有的用 INI,有的用 YAML,有的用自定义配置脚本),分流规则无法通用共享,核心升级滞后严重。
由 SagerNet 核心研发团队打造的 sing-box 从诞生之初,就确立了“通用代理平台(Universal Proxy Platform)”的宏大设计目标:
- 单一核心统一全平台生态:相同的 JSON 配置内核无缝跨越 Windows、macOS、Linux、Android、iOS 以及各类嵌入式 OpenWrt 路由器环境;
- 重构内存与系统调度模型:在底层彻底规避不必要的内存拷贝与高频对象分配,使单核千兆并发吞吐下的 RAM 内存常驻占用维持在 18MB 到 30MB 之间,较传统代理客户端降低了 70% 以上;
- 拥抱现代协议规范:率先原生支持 VLESS XTLS-Reality 协议、Hysteria 2、TUIC v5、ShadowTLS 以及 WireGuard,省去了多层反向代理工具链的臃肿拼凑,协议性能差异可参阅 Shadowsocks 与 VLESS 全面对比。
对于追求极致稳定性、热衷于脚本自动化部署的高级工程师与极客用户,sing-box 代表了目前网络基础设施客户端的先进设计水准。
【sing-box 通用路由链与组件交互架构】
[入站数据流量 (Inbounds)]
├── TUN 虚拟网卡 (三层全流量透明接管, mixed 协议栈)
├── Mixed 混合代理端口 (本地 127.0.0.1:2080 提供 HTTP/SOCKS5)
└── tproxy 透明代理 (Linux iptables / nftables 路由重定向)
│
▼
[独立 DNS 决策图 (DNS Rules)] ──► 执行 Fake-IP 分配或远端 DoH 递归解析
│
▼
[核心路由调度引擎 (Router)] ──► 加载预编译二进制 SRS 规则集 (极速查找)
│
├── 命中直连规则 ──► [direct 出站] (本地千兆光纤直连)
├── 命中广告黑名单 ─► [block 出站] (静默丢弃)
└── 命中海外服务 ──► [vless / urltest 出站] (走高速企业专线)
官方开源代码仓库与安全下载指引
sing-box 是严格意义上的开源项目,遵循 GPL-3.0 开源协议。所有二进制核心程序与跨平台图形客户端均由官方持续自动化构建与签名发布。
ProxyPick 严格提醒广大读者:严禁通过第三方网盘、修改版论坛安装未验证的二进制包,防止本地设备被植入木马。
- 官方 GitHub Releases 仓库:
https://github.com/SagerNet/sing-box/releases
各平台获取方式:
- Windows / Linux 命令行核心:在官方 Releases 页面直接下载
sing-box-x.x.x-windows-amd64.zip或对应 Linux tar.gz 包。解压后即可获得单一的绿色可执行文件sing-box.exe。 - macOS / iOS 官方图形客户端:建议直接在 Apple App Store 搜索
sing-box获取官方维护的图形客户端(支持图形化导入订阅与后台驻留)。 - Android 官方客户端:可在 Google Play 商店或 GitHub Releases 下载
SFA-x.x.x-universal.apk。
sing-box JSON 顶级配置结构全景拆解
与 Clash 普遍使用的 YAML 缩进文件不同,sing-box 采用结构严谨、利于自动化脚本生成与验证的 JSON 格式作为原生配置。
一个生产级的 config.json 文件由六大顶级对象构成:
{
"log": {},
"dns": {},
"inbounds": [],
"outbounds": [],
"route": {},
"experimental": {}
}
1. log:运行日志管理
控制核心向控制台或文件输出日志的详细等级。建议在日常稳定运行时配置为 info 或 warn 级别,排障时临时调整为 debug 或 trace:
"log": {
"level": "info",
"timestamp": true
}
2. dns:全独立的 DNS 路由图
这是 sing-box 最具技术含量的模块之一。它将 DNS 完全从普通数据流中解耦出来,形成了一个独立的路由网络,支持针对不同域名指定不同的上游解析器(DoH、DoT、Fake-IP)。关于这套机制防泄漏的原理,请参阅 DNS 污染、DNS 泄漏与 Fake-IP 模式解析。
3. inbounds:进站流量监听
定义系统流量如何进入 sing-box。通常配置一个三层 tun 虚拟网卡接口和一个本地混合代理端口 mixed(同时支持 HTTP 和 SOCKS5),两者在流量劫持层级的差异可参阅 TUN 虚拟网卡与系统代理 System Proxy 的底层区别。
4. outbounds:出站出口与策略组
定义流量如何流向外部世界。包括直连出站 direct、阻断出站 block、真实的代理节点(如 VLESS Reality 节点)、手动选择策略组 selector 以及自动健康测速策略组 urltest。当针对特定流媒体或 AI 业务配置出口时,配合纯净的 原生双 ISP 纯净节点 与 住宅静态 IP 原理解析 能够取得最佳的防风控效果。
5. route:路由决策与分流规则
定义数据包从进站到出站之间的匹配规则。sing-box 支持根据入站端口、进程名、目标域名规则集(Rule-Set)、目标 IP-CIDR 以及端口进行纳秒级的精准匹配。
颠覆传统的二进制规则集(.srs)技术实战
在早期代理软件中,分流规则通常是以成千上万行包含正则表达式的纯文本保存在本地。客户端在处理每一个新连接时,CPU 都需要逐行遍历这数万行文本进行正则回溯匹配,带来了大量的 CPU 开销。
sing-box 引入了全新的 Headless Rule-Set(无头二进制规则集) 技术规范(扩展名为 .srs):
- 离线预编译与高效空间划分:规则在打包发布阶段,就已经通过专门的编译器将数万个域名与 IP 地址段转换成了基数树(Radix Tree)与前缀布隆过滤器二进制数据结构。
- 极速微秒级匹配:客户端加载
.srs文件后,直接将预处理好的二叉树加载至 RAM 内存。匹配域名时不再进行逐字符正则比对,而是执行直接的内存指针位运算查找。匹配耗时从原本的 5 到 15 毫秒大幅压缩至小于 0.1 微秒,CPU 占用率在海量并发下几乎成一条直线。
远程规则集动态加载配置示例
在配置文件的 route 顶级对象中,通过 rule_set 字段异步引用社区高频维护的二进制规则集:
"route": {
"rule_set": [
{
"tag": "geosite-category-ads-all",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-category-ads-all.srs",
"download_detour": "direct"
},
{
"tag": "geosite-openai",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-openai.srs",
"download_detour": "select-out"
},
{
"tag": "geosite-cn",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs",
"download_detour": "direct"
},
{
"tag": "geoip-cn",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
"download_detour": "direct"
}
],
"rules": [
{
"rule_set": "geosite-category-ads-all",
"outbound": "block"
},
{
"rule_set": "geosite-openai",
"outbound": "ai-proxy"
},
{
"rule_set": ["geosite-cn", "geoip-cn"],
"outbound": "direct"
}
],
"final": "select-out",
"auto_detect_interface": true
}
生产级完整单文件配置实例(带 TUN 与 VLESS Reality)
以下提供一份经过严格网络工程验证的生产级 config.json 模板。该配置涵盖了 TUN 虚拟网卡全透明代理、Fake-IP 零泄漏 DNS、VLESS Reality 节点出站以及智能分流策略:
{
"log": {
"level": "info",
"timestamp": true
},
"dns": {
"servers": [
{
"tag": "dns-remote",
"address": "https://1.1.1.1/dns-query",
"detour": "select-out"
},
{
"tag": "dns-direct",
"address": "223.5.5.5",
"detour": "direct"
},
{
"tag": "dns-fakeip",
"address": "fakeip"
}
],
"rules": [
{
"outbound": "any",
"server": "dns-direct"
},
{
"rule_set": "geosite-cn",
"server": "dns-direct"
},
{
"query_type": ["A", "AAAA"],
"server": "dns-fakeip"
}
],
"fakeip": {
"enabled": true,
"inet4_range": "198.18.0.0/15"
}
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"interface_name": "singtun0",
"inet4_address": "172.19.0.1/30",
"auto_route": true,
"strict_route": true,
"stack": "mixed",
"sniff": true
},
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 2080
}
],
"outbounds": [
{
"type": "selector",
"tag": "select-out",
"outbounds": ["vless-reality-node", "direct"]
},
{
"type": "vless",
"tag": "vless-reality-node",
"server": "hk-01.transit.example.com",
"server_port": 443,
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"server_name": "www.apple.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "q1w2e3r4t5y6u7i8o9p0a1s2d3f4g5h6j7k8l9z0x1c=",
"short_id": "0123456789abcdef"
}
}
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"auto_detect_interface": true,
"final": "select-out"
}
}
运维实操与高频报错排障
在使用命令行管理 sing-box 核心时,掌握以下两条工程命令能够避免配置失误:
1. 语法检查命令(上线前必跑)
在启动服务前,执行语法自检,避免因为 JSON 括号缺失或字段错误导致核心崩溃:
sing-box check -c config.json
如果输出没有任何报错,说明语法规范完全合法。
2. Windows 下安装为系统后台服务运行
通过官方内置的系统服务管理器,可将 sing-box 静默托管在 Windows 后台:
# 以管理员权限安装为 Windows 系统服务
sing-box service install -c C:\sing-box\config.json
# 启动服务
sing-box service start
如果开启后发现整机断网,请检查是否与其他代理软件端口发生冲突,并参考我们的 TUN 模式开启后整机断网专项排查报告;如果节点延迟显示 -1ms 或无法连接,可参阅 节点测速全部超时排查指南 与 订阅链接拉取失败与更新报错排查指南。
总结与技术选型建议
sing-box 凭借其高度标准化的 JSON 规范、高效的内存资源管理以及颠覆性的二进制规则集机制,正在成为现代代理技术领域的标杆工具。
在实际选型中:
- 如果你偏好直观易用的图形化桌面交互,推荐阅读并使用 Clash Verge Rev 完整实操配置指南;
- 如果你追求极度纯净的系统环境、轻量级软路由部署或跨平台自动化运维,sing-box 是不可替代的利器;
- 预算有限的用户可优先在 2026 高性价比平价便宜机场排行榜 中挑选适合的入门节点;
- 无论使用何种优秀的客户端核心,网络稳定性的决定性因素依然是底层的物理专线链路。建议配合经过全链路压测的 IEPL 跨国内网专线 或 IPLC 物理专线架构(两者差异见 IEPL 与 IPLC 架构性能深度对比)使用,获取晚高峰 0 丢包的高品质传输。更多高品质专线品牌横评,可查阅 2026 最稳定专线机场综合排行。