Skip to content

客户端专题 (TYPE-F) Sing-box 全平台实战教程:原生 Go 架构、JSON 规则配置与全协议极客指南

Sing-box(星盒) 是由独立开发者 SagerNet / nekohasekai 团队使用原生 Go 语言打造的通用代理平台底层框架与新一代通用客户端

凭借极度精简的单二进制架构、仅 20-40MB 的极限内存占用、对新一代协议(VLESS Reality / Hysteria 2 / TUIC v5)的闪电级首发支持,Sing-box 迅速成为软路由、极客开发者与高端网络玩家的心头好。

本教程为您系统解构 Sing-box 的 JSON 配置文件机制、全平台图形客户端安装与 TUN 内核级网络接管配置。


一、 Sing-box 底层架构与 JSON 模块拓扑

mermaid
graph TD
    subgraph 1. 入站管理 (Inbounds)
        InTUN[TUN 虚拟网卡入站 (原生接管系统/软路由网络)]
        InMixed[Mixed 混合入站 (提供本地 Socks5/HTTP 端口)]
    end

    subgraph 2. 路由与 DNS 引擎 (Route & DNS)
        InTUN & InMixed --> RouteRule[路由规则引擎 (Rule-set 独立分流规则集)]
        RouteRule --> FakeIP[Fake-IP DNS 解析中枢]
    end

    subgraph 3. 出站管理 (Outbounds)
        RouteRule --> OutProxy[代理出站: VLESS Reality / Hysteria 2 / Shadowsocks]
        RouteRule --> OutDirect[直连出站: Direct 本地公网]
        RouteRule --> OutBlock[阻断出站: 广告拦截与风控拦截]
    end

    subgraph 4. 远程目标
        OutProxy --> FastLine[光速云企业 IEPL 专线 ──► 畅享全球服务]
    end

二、 标准生产级 Sing-box JSON 配置文件结构

一个标准的 config.json 包含四大核心区块:

json
{
  "log": {
    "level": "info",
    "timestamp": true
  },
  "dns": {
    "servers": [
      { "tag": "dns-remote", "address": "tls://1.1.1.1", "detour": "🚀 节点选择" },
      { "tag": "dns-local", "address": "223.5.5.5", "detour": "direct" }
    ],
    "rules": [
      { "geosite": "cn", "server": "dns-local" }
    ],
    "strategy": "prefer_ipv4"
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "interface_name": "singbox-tun",
      "inet4_address": "172.19.0.1/30",
      "auto_route": true,
      "strict_route": true,
      "stack": "mixed"
    }
  ],
  "outbounds": [
    {
      "type": "selector",
      "tag": "🚀 节点选择",
      "outbounds": ["🌟 光速云-香港IEPL", "direct"]
    },
    {
      "type": "vless",
      "tag": "🌟 光速云-香港IEPL",
      "server": "hk01.gsyvip.com",
      "server_port": 443,
      "uuid": "8a4c3821-4f12-4a7b-91bb-76bca9283f12",
      "flow": "xtls-rprx-vision",
      "tls": {
        "enabled": true,
        "server_name": "www.apple.com",
        "reality": {
          "enabled": true,
          "public_key": "Fm4Xz7...YourKey...",
          "short_id": "8a4c38"
        }
      }
    },
    { "type": "direct", "tag": "direct" },
    { "type": "block", "tag": "block" }
  ]
}

三、 常见问题深度解答 (FAQ 10 问 10 答)

1. Sing-box 和 Clash 相比,普通用户该选哪个? 普通桌面用户首选 Clash Verge Rev,图形界面更友好、订阅管理更便捷;极客开发者、软路由用户(如 OpenWrt/iStoreOS)首选 Sing-box
2. Sing-box 支持直接导入 Clash 订阅链接吗? Sing-box 原生读取 JSON 格式。官方客户端支持部分订阅转换,也可以使用开源工具 Subconverter 将 Clash 订阅转换为 Sing-box 格式。
3. 为什么 Sing-box 的内存占用这么低? 因为 Sing-box 完全由 Go 语言原生编写,去除了 Electron 和大量冗余的中间抽象层,单进程内存常驻仅 20MB 左右。
4. 在 Windows 上运行 Sing-box 图形客户端需要安装什么驱动? 开启 TUN 模式时,Sing-box 会自动下载并安装微软认证的 Wintun 驱动,以实现内核级高效转发。
5. Sing-box 支持在 Android 手机上运行吗? 支持。可在 Google Play 或 GitHub Release 下载官方 Sing-box for Android,支持按应用分流与电量优化。
6. 什么是 Sing-box 的 Rule-set(规则集)? Rule-set 是一种预先编译好的二进制规则文件(.srs),大幅减少了文本规则匹配的 CPU 开销并提升了解析速度。
7. Sing-box 提示“bind: address already in use”怎么解决? 说明配置文件中指定的本地入站端口(如 1080 或 7890)已被其他代理软件占用,修改为其他未占用端口即可。
8. 苹果 iOS 上有 Sing-box 客户端吗? App Store 上提供了官方 Sing-box for iOS / macOS 客户端,可直接在苹果生态上安装使用。
9. Sing-box 对 Hysteria 2 协议支持好吗? 极其完美。Sing-box 是最早原生实现 Hysteria 2 官方标准的通用客户端之一,支持完整的拥塞控制与端口跳跃。
10. 推荐搭配哪家机场专线使用? 推荐搭配 光速云 (LightSpeed Cloud),全线提供 VLESS 协议与 IEPL 专线,享受超低延迟与 0 丢包体验。

四、 关联客户端与进阶阅读

机场百科 Airport Wiki - 严谨、专业、中立的网络技术维基知识库