主题
sing-box 配置入门
sing-box 用 JSON 配置文件,灵活度最高,也最难上手。普通用户不需要它——日常使用 Clash Verge Rev 完全够。sing-box 的价值在两个场景:路由器/软路由部署,以及需要写复杂分流规则。
最后更新:2026-09-18
什么情况下才需要 sing-box
| 场景 | 该用 sing-box 吗 |
|---|---|
| 电脑手机日常上网 | 不需要,用 Clash Verge / Clash Meta |
| 想让全家设备都走代理 | 需要,路由器部署 |
| 软路由(OpenWrt、iKuai 等) | 需要 |
| 写复杂分流规则、按域名分流到不同节点 | 需要 |
| NAS 或小型服务器常驻 | 需要 |
sing-box 没有官方图形界面(移动端有第三方 GUI),主要通过配置文件和命令行使用。如果看到「JSON」两个字就头疼,那就用 Clash 系客户端。
配置文件结构
sing-box 的配置是一个 JSON 文件,主要分四块:
json
{
"log": { },
"inbounds": [ ],
"outbounds": [ ],
"route": { }
}各块的作用:
| 字段 | 作用 | 通俗解释 |
|---|---|---|
log | 日志设置 | 出问题时看哪里错了 |
inbounds | 入站 | 流量从哪进来(本机端口、TUN 网卡) |
outbounds | 出站 | 流量往哪出去(各个节点、直连、拒绝) |
route | 路由规则 | 什么流量走哪个出站 |
理解了这四块,配置文件就不神秘了:流量从 inbound 进来,经过 route 判断,从某个 outbound 出去。
inbounds 常见类型
mixed——同时支持 HTTP 和 SOCKS 代理,本机使用时最常用tun——虚拟网卡,接管全部流量,路由器部署用这个
outbounds 常见类型
- 各协议节点:
vless、trojan、hysteria2、shadowsocks等 direct——直连,不走代理block——拒绝,用来屏蔽广告域名selector——手动选择组urltest——自动选延迟最低的节点
订阅转换
机场给的通常是 Clash 或 V2Ray 格式的订阅,sing-box 读不了,需要转换。
方法一:机场自带转换 不少机场的订阅页面直接提供 sing-box 格式的链接,优先用这个,最省事。
方法二:订阅转换服务 有公开的订阅转换服务可以把 Clash 订阅转成 sing-box 配置。
安全提醒 用第三方订阅转换服务时,你的订阅链接会经过对方服务器。订阅链接等同于你的账号凭证,泄露可能导致账号被盗用。建议自建转换服务,或者只用机场官方提供的转换。
方法三:手动写 节点少的话直接手写 outbounds 最可控。机场通常会在节点详情里给出服务器地址、端口、UUID/密码、传输方式,按 sing-box 文档的字段对应填入即可。
常用规则写法
route.rules 是一个数组,按顺序匹配,命中即停。几个常用写法:
国内域名直连 用 geosite 规则集匹配中国大陆网站,出站指向 direct。
广告域名屏蔽 匹配广告规则集,出站指向 block。
特定域名走特定节点 比如把流媒体域名单独指向解锁节点,其余走通用节点。这是 sing-box 相比 Clash 更灵活的地方——可以做很细的域名到节点的映射。
规则顺序很重要:写在前面的先匹配。所以「屏蔽规则」要放在「直连规则」前面,否则可能被直连规则先命中。
路由器部署要点
在 OpenWrt 这类系统上部署时注意三点:
- 设备性能——sing-box 对 CPU 有要求,老旧路由器跑加密协议会跑不满带宽
- inbound 用 tun 模式——这样整个局域网的设备都能走代理,不用每台单独配置
- DNS 要单独配——路由器场景下 DNS 泄露是常见问题,需要在配置里明确指定代理 DNS
常见问题
配置文件报错怎么办? sing-box 启动时会输出具体的错误行号和字段名。先用 JSON 校验工具检查语法(少个逗号是最常见的错误),再对照官方文档核对字段名。
能和 Clash 共存吗? 可以,但端口不要冲突,且同时只能有一个接管系统代理。
移动端能用吗? 有第三方 GUI 客户端支持 sing-box 配置,但日常使用还是 Clash Meta 更方便。
日常使用请看 Clash Verge Rev 教程。想了解协议选择,看代理协议对比。