ProxyPick Logo

sing-box 1.10+ 新一代通用内核配置与路由规则全景实战

王晨 王晨 (开源代理客户端架构师)
· · E-E-A-T 审核认证
🛡️
官方安全认证保证: 本站不存储、不中转任何第三方可执行安装包文件。所有下载建议均直接指向官方开源代码仓库 GitHub Releases 页面或 Apple 官方 App Store。

通用代理平台(Universal Proxy Platform)的设计哲学

在跨平台网络软件的演进史上,长年存在着严重的平台碎片化痛点:

不同平台的软件采用互不兼容的配置语法(有的用 INI,有的用 YAML,有的用自定义配置脚本),分流规则无法通用共享,核心升级滞后严重。

由 SagerNet 核心研发团队打造的 sing-box 从诞生之初,就确立了“通用代理平台(Universal Proxy Platform)”的宏大设计目标:

  1. 单一核心统一全平台生态:相同的 JSON 配置内核无缝跨越 Windows、macOS、Linux、Android、iOS 以及各类嵌入式 OpenWrt 路由器环境;
  2. 重构内存与系统调度模型:在底层彻底规避不必要的内存拷贝与高频对象分配,使单核千兆并发吞吐下的 RAM 内存常驻占用维持在 18MB 到 30MB 之间,较传统代理客户端降低了 70% 以上;
  3. 拥抱现代协议规范:率先原生支持 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 严格提醒广大读者:严禁通过第三方网盘、修改版论坛安装未验证的二进制包,防止本地设备被植入木马。

各平台获取方式:


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):

远程规则集动态加载配置示例

在配置文件的 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 规范、高效的内存资源管理以及颠覆性的二进制规则集机制,正在成为现代代理技术领域的标杆工具。

在实际选型中:

🎯 2026 跨国网络选型与决策通道

读完原理与排障,如何挑选适合自己的低延迟可靠服务?

基于实验室在北上广三网千兆宽带环境下的 24 小时连续 MTR 压测与真实丢包率监控,为您筛选出不同使用场景下的可靠网络底座:

🌐 全站技术专栏与排障全景知识网格

本文责任编辑与审核专家

王晨
王晨 开源代理客户端架构师 最后核实:2026-08-12

多年开源代理协议内核(sing-box/Mihomo/Xray)追踪者,资深 Clash Verge/Shadowrocket 分流规则架构师,累计解决上千例网络排障案例。

擅长领域: 客户端配置 分流规则 TUN 模式
LinkedIn 认证档案

推荐延伸阅读