机场学习站首推无忧链接官网 →
客户端教程

sing-box 配置:读懂 JSON 的五个顶层字段

先看懂骨架,再去查具体字段,比背配置有用得多。

更新 2026-10-02 · 难度:进阶 · 约 12 分钟

先看结论

sing-box 配置文件由几个顶层字段构成:log(日志)、dns(解析)、inbounds(入站,流量从哪进)、outbounds(出站,流量往哪出)、route(路由,什么流量走哪个出站)。

最小骨架示例

示例:骨架(占位符不可直接使用,字段需按版本核对)
{
  "log": { "level": "info" },
  "inbounds": [
    { "type": "mixed", "tag": "mixed-in", "listen": "127.0.0.1", "listen_port": 7890 }
  ],
  "outbounds": [
    {
      "type": "trojan",
      "tag": "proxy",
      "server": "<服务器地址>",
      "server_port": 443,
      "password": "<你的密码>",
      "tls": { "enabled": true, "server_name": "<伪装域名>" }
    },
    { "type": "direct", "tag": "direct" }
  ],
  "route": {
    "final": "proxy"
  }
}

各字段含义

inbounds
本地入口。mixed 提供 HTTP/SOCKS 混合端口;tun 是虚拟网卡入口。
outbounds
出口列表。每个节点是一个出站,direct 是直连。
route
路由规则与兜底出站(final)。可以引用规则集。
dns
解析服务器与策略,常与路由配合。

怎么扩展

  • 加 tun 入站:让整台设备流量经过 sing-box,需要权限。
  • 加规则:在 route 里写规则,把域名或 IP 指向 direct 或 proxy。
  • 多个节点:用 selector 或 urltest 类型的出站把它们组织起来。

route 里怎么写规则

route 部分有两个关键字段:rules 是一条条规则,final 是兜底出站。每条规则由"匹配条件"和"动作或出站"组成,匹配条件可以是域名、域名后缀、IP 段、规则集等。规则同样是按顺序匹配的,命中后就不再往下看,所以顺序依然重要。

示例:route 规则骨架(字段需按所用版本核对,规则集地址为占位)
{
  "route": {
    "rules": [
      { "ip_is_private": true, "outbound": "direct" },
      { "domain_suffix": ["example.com"], "outbound": "direct" }
    ],
    "final": "proxy"
  }
}

用 selector 与 urltest 管理多个节点

当有多个节点时,不要在规则里直接指向某一个,而是先把它们放进一个 selector(手动选择)或 urltest(自动测速)出站,规则指向这个组即可。这样要换节点,只需要在组里切换,不需要改规则。selector 适合你想自己挑选,urltest 适合让内核按延迟自动选,两者也可以嵌套使用。

tun 入站的几个关键字段

字段作用
type入站类型,tun 表示虚拟网卡
address为虚拟网卡分配的地址
auto_route自动设置系统路由,把流量导向虚拟网卡
stack网络栈实现方式

具体的字段名称与取值,请以所用版本的官方文档为准;不同版本之间可能有调整。

常见报错对照

报错或现象常见原因
启动即报字段未知字段已在新版本里被改名或弃用
提示找不到出站规则里引用的 outbound 名称与定义不一致
规则集加载失败地址不可达,或格式与声明不符
配置无法解析JSON 少了逗号、多了逗号或括号不匹配

从 Clash 配置迁移到 sing-box:思路对照

如果你熟悉 Clash 系的配置,转到 sing-box 时,可以用"对应关系"来理解:Clash 的 proxies 对应 sing-box 的 outbounds;proxy-groups 对应 selector 与 urltest 类型的出站;rules 对应 route 里的 rules;rule-providers 对应 rule_set;dns 与 tun 各自有对应的字段。理解了对应关系,迁移时你就不是"从零学一门新语言",而是"把同样的概念换一种写法"。

Clash 概念sing-box 概念
proxiesoutbounds(具体的节点)
proxy-groupsoutbounds 中的 selector / urltest
rulesroute.rules
rule-providersroute.rule_set
mixed-portinbounds 中的 mixed
tuninbounds 中的 tun

需要强调的是,两种配置的字段与行为并不完全等价,迁移后要逐项验证,而不是机械翻译。

关于「sing-box配置」的常见问题

JSON 里能写注释吗?

标准 JSON 不支持注释。想临时禁用某段,需要删掉或另存备份。

配置写完怎么验证?

先用 check 命令检查合法性,再运行观察日志。

JSON 配置很容易写错,有什么办法吗?

用编辑器的 JSON 校验功能,并配合内核自带的检查命令,两道检查能拦住大多数低级错误。

sing-box路由规则怎么写?

路由规则写在配置的 route 部分,按顺序匹配,可以按域名、IP 段、规则集或进程指定出站。写完用命令行的检查命令或客户端的校验功能验证,再重载配置。

继续学习

首推无忧链接官网去看看 →