sing-box详解
sing-box 详解(2026 年中)
网络工程 / 协议实现学习向文档。聚焦架构、配置模型、协议广度与生态定位。
1. 概述与定位
sing-box 由 SagerNet(nekohasekai)开发,定位是**“统一全能核心”**——一个二进制覆盖几乎所有主流代理协议,配置干净、实现现代(纯 Go、模块化)。
它的核心标签:
- 协议覆盖面最广:VLESS、VMess、Trojan、Shadowsocks(2022)、Hysteria2、TUIC、ShadowTLS、AnyTLS、WireGuard 全支持。
- DNS 与路由引擎强:内置 fakeip、geosite/geoip、规则路由,是”全家桶”式体验的关键。
- 设计哲学偏向”一个核心解决所有事”,而不是在单点上做到极致(抗封锁上弱于 Xray 的原生 Reality 首发优势,但跟进很快)。
2. 项目背景与生态
| 项目 | 说明 |
|---|---|
| 作者 | nekohasekai(SagerNet 作者) |
| 语言 | Go |
| 版本线 | v1.0(2024 稳定)→ 1.11/1.12(2025–2026 持续迭代) |
| 标志性特性 | 多协议统一、强 DNS、TUN、Clash API 兼容 |
常见 GUI 封装:
- iOS / macOS:
SingBox for iOS / macOS (SFI/SFA)(官方出品) - 跨平台:
NekoBox、Stash、Clash Verge(部分版本可切换核心) - 路由器:OpenWrt 插件、shell 脚本部署
- 命令行:单二进制直接跑,适合服务器 / VPS
3. 架构与核心组件
sing-box 同样由”入站 / 出站 / 路由”组成,但在概念上更模块化,强调**出站类型(outbound type)**的多样性:
Inbound(本地入口)
↓
Route(路由:按规则选 outbound)
↓
Outbound(类型极多:vless / trojan / ss / hysteria2 / tuic / wireguard / direct / dns / tor ...)
↓
DNS(独立引擎,支持 fakeip / 分流解析)
Experimental(TUN、Clash API、缓存等)
- Inbound:tun、mixed(socks+http)、socks、http、redirect、tproxy。
- Outbound:几乎覆盖所有协议 +
direct(直连)、dns、tor、ssh、block(阻断)。 - Route:支持
rules(基于 domain/ip/port/protocol/process 等)、rule_set(可加载 geosite/geoip 数据库)、final兜底路由。 - DNS:内置多上游、按域名分流、fakeip 模式、hosts。
- Experimental:TUN 增强、Clash API(供仪表盘读取延迟/流量)、缓存。
4. 支持的协议与传输
sing-box 的协议广度是其最大卖点:
代理协议(outbound type)
- Shadowsocks / Shadowsocks 2022
- VMess、VLESS(含 Reality 支持)
- Trojan
- Hysteria / Hysteria2
- TUIC(v5)
- ShadowTLS(v3)
- AnyTLS
- WireGuard(原生,可作为出站)
- SOCKS5、HTTP、Tor、SSH、Direct、Block、DNS
传输(transport)
- 对 VLESS/VMess/Trojan 提供 V2Ray 兼容传输(tcp+reality/tls、ws、grpc、h2、quic、http),保证与 Xray 生态互通。
- Hysteria2 / TUIC 自带基于 QUIC 的传输。
5. 配置模型(JSON)
sing-box 配置也是 JSON,但结构与 Xray 不同,强调 outbounds[].type:
{
"log": { "level": "info" },
"inbounds": [ /* tun / mixed / socks / http */ ],
"outbounds": [
{ "type": "vless", "server": "...", "flow": "xtls-rprx-vision", "tls": {...} },
{ "type": "hysteria2", "server": "...", ... },
{ "type": "direct" },
{ "type": "dns" }
],
"route": {
"rules": [ /* 分流规则 */ ],
"rule_set": [ /* geosite / geoip 数据库引用 */ ],
"final": "proxy"
},
"dns": { /* 多上游 + fakeip */ },
"experimental": { "clash_api": {...}, "tun": {...} }
}
学习要点:
outbounds[].type是协议切换的唯一开关,扩展协议只需加一个 outbound。route.rule_set让地理/分类数据库变成”可加载资源”,比手写规则更可维护。experimental.clash_api让 sing-box 能被 Clash 系仪表盘(如 yacd)读取状态,是它的”生态兼容”巧思。
6. 关键能力
- 协议全覆盖:一个核心同时跑 Reality + Hysteria2 + TUIC + WireGuard,无需多核心拼装。
- 强 DNS 引擎:fakeip、按域名分流解析、对抗 DNS 污染,是”干净分流”的基础。
- TUN 模式:系统级透明代理,支持全流量接管(含 UDP)。
- Clash API 兼容:可复用 Clash 生态的仪表盘。
- 单二进制:服务器/路由器部署极简,无外部依赖。
7. 典型使用形态
- VPS / 服务器:单二进制运行,做”全能网关”。
- 桌面/移动:SFI/SFA 官方客户端,或 NekoBox 切换核心。
- 全家桶:一个 sing-box 实例同时承载抗封锁(Reality)+ 速度(Hysteria2)+ 直连分流,配置文件即全部。
8. 横向对比(与 Xray / mihomo)
| 维度 | sing-box | Xray-core | mihomo |
|---|---|---|---|
| 协议广度 | 最广 | 中 | 广 |
| 抗封锁旗舰 | 跟进(支持 Reality) | 原生 Reality/Vision | 支持 |
| 配置格式 | JSON | JSON | YAML |
| 路由风格 | 规则路由 + 强 DNS | 规则路由 | 规则组 |
| DNS 能力 | 最强(fakeip/分流) | 强 | 强 |
| 部署简便度 | 单二进制极简 | 需配套 GUI/脚本 | 需配套 GUI |
9. 学习建议
- 想”一核心学遍所有协议”,sing-box 是最省事的入口——同一份配置里就能对比 VLESS / Hysteria2 / TUIC 的差异。
- 重点读
outbounds的 type 列表和route.rule_set,理解”协议即出站类型”的模块化思想。 - 配合官方
configuration文档逐个试type,是建立协议全景认知的最快路径。
相关笔记
本系列属于「代理协议与核心实现」知识簇: