什么时候用 sing-box
sing-box 是一套跨平台的通用代理内核(Windows、macOS、Linux、iOS、Android 都有对应客户端),协议覆盖很广,包括较新的 Hysteria2、TUIC 等。它灵活、统一,但配置偏进阶。
一句话取舍:新手先用 Clash Verge; 需要新协议、或想在多设备用同一套配置时,再考虑 sing-box。
工作原理简述
理解 sing-box 的结构,配置就不再是天书。它的核心是三段式数据流:入站 → 路由 → 出站。
- 入站负责把流量接进来,桌面端常见 TUN 虚拟网卡接管全局,或本地代理端口。
- 路由是大脑,按规则决定每条流量走哪个出站:广告丢黑洞、国内网站直连、其余走机场节点。
- 出站是流量往哪儿发。每个机场节点是一个出站,另有直连、阻断,以及手动选择、自动测速择优这类分组。
所以你在客户端里“选节点”,本质是改手动分组指向哪个真实节点;“自动测速”是定期探测挑延迟最低的那个。理解这套模型,订阅生成的配置就一目了然。
一、准备工作
- 按你的系统下载对应的 sing-box 客户端(桌面有 GUI,手机有对应 App)。
- 确认机场是否提供 sing-box 订阅 或可用的通用订阅;只有 Clash 订阅时可能需要订阅转换。
- 记下客户端版本号。sing-box 配置格式在不同大版本间有过不兼容改动,新版内核读旧配置可能报错,尽量让内核版本与机场订阅面向的版本对齐。
二、导入订阅
不同客户端界面不一,但思路一致:
- 复制机场提供的 sing-box / 通用订阅链接。
- 在客户端的「配置 / Profiles」里新增,粘贴链接并保存、更新。
- 拉取成功后,出站(outbound)列表会出现机场节点。
若导入后没有节点,多为链接不兼容或过期,可对照订阅失效与连不上的排查。
三、选择出站与规则
- 在出站里选延迟较低的节点(或用自动选择/urltest 分组)。
- 规则(route)决定哪些流量走代理、哪些直连;机场订阅通常自带一套规则。
- 开启系统代理 / TUN 模式后即可全局生效。
四、配置示例:看懂订阅生成了什么
即便你不手写配置,也值得看懂结构。下面是一段示意性的精简 JSON(真实订阅会复杂得多,节点信息以机场为准):
{
"outbounds": [
{ "type": "selector", "tag": "PROXY", "outbounds": ["auto"] },
{ "type": "urltest", "tag": "auto", "outbounds": ["节点A", "节点B"] }
],
"route": {
"rules": [ { "geoip": ["cn"], "outbound": "direct" } ],
"final": "PROXY"
}
}
读法:route.rules 从上往下匹配,命中就按对应出站走;都没命中就落到 final。想让某个流媒体走固定节点,就是加一条把它的域名指向具体出站,思路见流媒体解锁原理。改动优先在客户端的“覆写/自定义规则”里做,否则一更新就被覆盖。
五、不同平台的差异
同一套内核,各端体验并不完全一致:
- Windows / macOS 桌面:功能最全,TUN 模式接管全局。macOS 首次开 TUN 需授予网络扩展权限。
- iOS:走系统 NetworkExtension,内存有硬性上限,节点/规则过多可能被系统回收,配置宜精简。
- Android:以 VpnService 接管流量,注意关闭省电限制,否则息屏易断连。
- Linux:多以命令行运行,适合做旁路由/软路由,靠 systemd 常驻。
六、协议是它的强项
sing-box 对多协议兼容度高,如果机场给的是 Hysteria2、TUIC 等较新协议,它往往能直接支持。各协议的差异见代理协议科普,其中 TUIC 与 REALITY 伪装有单独展开。
完整故障排查
按“症状 → 可能原因 → 处理”对照:
- 导入后没有节点:链接过期或格式不对。换 sing-box 专用订阅或先转换;仍不行见订阅失效排查。
- 保存时 JSON 报错:多为手工改坏了括号/逗号,优先用订阅而非手写。
- 能连上但网页打不开:先怀疑 DNS 污染,也可能是规则把该域名错判为直连。
- 节点全红、延迟极高:本地网络、内核版本或节点侧问题,按节点全红排查定位。
- 握手失败 / 重置:见连接被重置。
安全注意事项
- 订阅链接等于身份凭证,含节点与鉴权信息,不要外发或粘到不明网站。
- TUN / 系统扩展权限很高,只从官方渠道获取客户端,避免“修改版”。
- 更新内核修复安全问题,但更新前留意配置格式是否兼容。
常见问题
- 配置报错:JSON 配置对格式敏感,优先用机场提供的订阅而非手写。
- 部分网站打不开:多为 DNS 问题,见 DNS 污染的判断与解决。
- 偏好简单:那就回到 Clash Verge 或 v2rayN。