sing-box是什么?新一代全平台通用代理内核解析
2026年最新sing-box全平台代理内核深度解析。详细拆解sing-box的核心架构、底层网络协议支持(VLESS Reality/Hysteria 2/TUIC v5)、配置规范JSON结构、TUN虚拟网卡处理机制以及与Clash/Xray的横向对比,助你全面掌握新一代网络工具。
在科学上网与跨国网络加速领域,如果你关注最新的技术演进,必定频繁听说 sing-box 这个名字。无论是在 iOS / Apple TV 上的客户端应用,还是在 Windows、macOS、Android 乃至 Linux 路由器(OpenWrt)上,sing-box 正以惊人的速度崛起,成为继 V2Ray (Xray) 和 Clash 之后,最具革命性的下一代通用网络代理平台。
对于许多初学者和资深玩家来说,心里常有疑问:sing-box 究竟是什么?它与传统的 Clash 或 v2rayN 有什么本质区别?为什么越来越多的机场和开发者都在向 sing-box 靠拢?
简单来说,sing-box 是一个由开源社区团队(SagerNet)使用 Go 语言全新重构的高性能、全平台代理内核(Universal Proxy Platform)。它不仅是一个命令行后台引擎,更是一套包含了桌面与移动端图形界面、原生支持全套前沿加密协议(VLESS Reality、Hysteria 2、TUIC v5)、具备极低内存占用与高并发 TUN 网卡吞吐能力的现代化网络协议栈。
本文将从 sing-box 的诞生背景、模块化架构设计、网络协议支持度、JSON 规则语法、TUN 驱动工作原理等核心维度进行深度拆解,并提供完整的配置文件示例、PowerShell / Bash 诊断指令以及 20 余个真实故障排查案例。
sing-box 的诞生背景与设计哲学
要理解 sing-box 的技术优势,必须先回顾传统代理工具的发展困境。
传统代理工具的历史包袱
- Clash 生态的停滞与分支碎片化:原版 Clash (Clash Premium) 内核于 2023 年停止维护后,社区产生了 Mihomo (Clash.Meta) 等分支。虽然 Mihomo 极其优秀,但 Clash 架构本身历史遗留的 YAML 语法、过重的内存缓存机制,使得其在嵌入式设备(如 128MB 内存的路由器)或 Apple TV / iOS 等资源受限平台上显得较为吃力。
- V2Ray / Xray 的模块耦合与臃肿:Xray-core 拥有极强的前沿协议支持(如 VLESS Vision),但其配置文件结构繁琐、JSON 层级极深,且核心代码库历经多年演进,模块间耦合度较高,跨平台移动端 UI 适配成本昂贵。
sing-box 的三大核心设计原则
为了彻底解决上述痛点,sing-box 从第一行代码开始就确立了极简与高效的设计原则:
- 完全模块化与轻量化(Modular & Lightweight):sing-box 采用了高度解耦的组件设计。代码库中没有冗余的中间转换层,在编译时可以根据目标平台裁剪不必要的模块。这使得 sing-box 编译出来的二进制文件体积极小,静态运行内存占用仅为 30MB–60MB,非常适合运行在软路由、Apple TV 及轻量掌机上。
- 第一方原生支持前沿协议(Native Modern Protocols):sing-box 不依赖任何第三方 Core 外挂。它将 VLESS Reality、Hysteria 2、TUIC v5、ShadowTLS、SSH、Tor 等协议作为第一方核心功能原生集成,握手开销与 UDP 转发效率达到了行业顶尖水平。
- 全平台统一架构(Unified Cross-Platform):sing-box 提供了统一的 JSON 配置规范与自研的图形客户端(Sing-box App)。无论是 Windows、macOS、Linux,还是 iOS、iPadOS、Android、Apple TV,用户都可以使用完全相同的配置文件与规则集,彻底打破了平台间的壁垒。
sing-box 内部核心模块架构拆解
sing-box 内部采用了极其严谨的管道式流量处理架构。一个网络数据包进入 sing-box 后,会依次经过 Inbounds(入站) -> DNS(域名解析) -> Route(路由引擎) -> Outbounds(出站) 四大核心模块。
flowchart TD subgraph ClientRequests ["客户端流量来源"] R1["SOCKS5 / HTTP 端口请求"] R2["TUN 虚拟网卡 IP 数据包"] R3[" Redirect / TProxy 透明代理"] end
subgraph singboxCore ["sing-box 核心处理管道"] subgraph InboundModule ["1. Inbounds (入站监听)"] I1["Mixed / Socks / HTTP"] I2["TUN Device (gVisor/System Stack)"] end
subgraph DNSModule ["2. DNS Engine (内置 DNS 路由)"] D1["FakeIP 地址池 (198.18.0.0/16)"] D2["DoH / DoT / QUIC 加密查询"] end
subgraph RouteModule ["3. Route Engine (分流引擎)"] M1["Rule-Sets 规则集 (.srs 二进制)"] M2["Geosite / GeoIP 匹配树"] M3["Process Name / User 匹配"] end
subgraph OutboundModule ["4. Outbounds (出站执行)"] O1["VLESS Reality 出站"] O2["Hysteria 2 / TUIC v5 出站"] O3["Direct 直连 / Block 拦截"] end end
subgraph ExtNetwork ["目标网络方向"] N1["中国大陆网站 (直连)"] N2["境外互联网目标 (加密代理)"] end
R1 --> I1 R2 --> I2 R3 --> I1
I1 --> DNSModule I2 --> DNSModule
DNSModule --> RouteModule RouteModule -->|匹配 Direct| O3 RouteModule -->|匹配 Proxy| O1 RouteModule -->|匹配 Hy2| O2
O1 --> N2 O2 --> N2 O3 --> N11. Inbounds(入站模块)
定义了 sing-box 如何接收来自系统或应用程序的流量。常见类型包括:
mixed:同时监听 HTTP 和 SOCKS5 协议的混合端口;tun:创建系统级 TUN 虚拟网卡,接管全局 Layer 3 IP 数据包;tproxy/redirect:用于 Linux / OpenWrt 软路由环境下的透明代理。
2. DNS(内置 DNS 引擎)
sing-box 内置了一套功能极其强大的 DNS 路由解析器。它支持:
Fake-IP模式:瞬间响应假 IP 地址,规避本地 DNS 污染并实现 0ms 解析延迟;- 多源 DoH (DNS over HTTPS) / DoT / DoQ (DNS over QUIC) 并行查询与分流;
- 独立 DNS 路由规则:根据域名分流结果,将国内域名发送给
223.5.5.5解析,海外域名经由代理发送给1.1.1.1解析。
3. Route(分流路由引擎)
sing-box 的分流引擎摒弃了传统的粗暴规则扫描,引入了全新的编译型规则集:
rule_set规则集:支持将数万条规则预编译为.srs高效二进制文件,在内存中实现位运算级极速匹配;- 丰富的规则匹配维度:支持
domain、domain_suffix、ip_cidr、port、process_name(进程名)、package_name(安卓包名)及clash_mode。
4. Outbounds(出站模块)
定义了数据包离开 sing-box 后的加密转发路径。支持所有的现代加密协议(VLESS、VMess、Hysteria2、TUIC、Shadowsocks、Trojan、WireGuard、Tor、SSH),并支持 selector(节点选择)和 urltest(自动延迟测试)分组。
sing-box 与 Clash (Mihomo) & Xray-core 横向对比
为了更加客观地评价 sing-box,下表将其与目前桌面端和路由器端最主流的 Clash Verge Rev (Mihomo 内核) 以及 v2rayN (Xray-core 内核) 进行全方位对比:
| 技术指标与特性 | sing-box | Clash Verge Rev (Mihomo) | v2rayN (Xray-core) |
|---|---|---|---|
| 开发语言与理念 | Go (通用平台极简重构) | Go (Clash 拓展增强版) | Go (经典 V2Ray 衍生扩展) |
| 配置文件格式 | 规范化 JSON 结构 | YAML 语法结构 | JSON 深度嵌套结构 |
| 规则匹配引擎 | .srs 二进制规则集 (极速) | Radix Tree 基数树 | Protobuf geoip.dat |
| 内存静态开销 | 最省 (~30MB – 60MB) | 中等 (~80MB – 150MB) | 较大 (~100MB – 180MB) |
| Hysteria 2 原生性能 | 第一方原生 (UDP极速) | 完美兼容支持 | 依赖第三方内核调用 |
| VLESS Reality 支持 | 原生完美支持 | 完美兼容支持 | 官方原生发起者 |
| TUIC v5 协议支持 | 第一方原生支持 | 完美兼容支持 | 不支持 / 需插件扩展 |
| Apple TV 平台支持 | 官方原生应用完美支持 | 无官方应用 | 无官方应用 |
| TUN 模式性能 | 极致 (gVisor/System混合) | 优秀 (Wintun 驱动) | 一般 (System/Wintun) |
| 软路由 (OpenWrt) 占用 | 极低 CPU 与内存 | 中等占用 | 较高占用 |
| 上手学习曲线 | 中等 – 较高 (需理解JSON) | 低 – 中等 (规则丰富) | 中等 (界面选项较多) |
配置代码实战:完整 sing-box JSON 生产级配置示范
以下是一份可以直接用于生产学习的完整 sing-box JSON 配置文件,包含了日志、DoH DNS 配置、混合端口与 TUN 双入站、VLESS Reality 与 Hysteria2 出站以及基础分流规则:
{ "log": { "level": "info", "timestamp": true }, "dns": { "servers": [ { "tag": "dns-remote", "address": "https://1.1.1.1/dns-query", "address_resolver": "dns-direct", "detour": "proxy" }, { "tag": "dns-direct", "address": "223.5.5.5", "detour": "direct" }, { "tag": "dns-fakeip", "address": "fakeip" } ], "rules": [ { "outbound": "any", "server": "dns-direct" }, { "clash_mode": "Direct", "server": "dns-direct" }, { "query_type": [ "A", "AAAA" ], "server": "dns-fakeip" } ], "fakeip": { "enabled": true, "inet4_range": "198.18.0.0/15" }, "independent_cache": true }, "inbounds": [ { "type": "mixed", "tag": "mixed-in", "listen": "127.0.0.1", "listen_port": 2080 }, { "type": "tun", "tag": "tun-in", "interface_name": "singbox-tun", "inet4_address": "172.19.0.1/30", "auto_detect_interface": true, "strict_route": true, "stack": "gvisor", "sniff": true } ], "outbounds": [ { "type": "selector", "tag": "proxy", "outbounds": [ "vless-reality-node", "hysteria2-node" ], "default": "vless-reality-node" }, { "type": "vless", "tag": "vless-reality-node", "server": "example.com", "server_port": 443, "uuid": "a0b1c2d3-e4f5-6789-abcd-ef0123456789", "flow": "xtls-rprx-vision", "tls": { "enabled": true, "server_name": "www.microsoft.com", "utls": { "enabled": true, "fingerprint": "chrome" }, "reality": { "enabled": true, "public_key": "Qq4X...YourPublicKey...", "short_id": "6ba7b810" } } }, { "type": "hysteria2", "tag": "hysteria2-node", "server": "hy2.example.com", "server_port": 8443, "password": "your-password-here", "tls": { "enabled": true, "server_name": "hy2.example.com" } }, { "type": "direct", "tag": "direct" }, { "type": "block", "tag": "block" } ], "route": { "rules": [ { "action": "sniff" }, { "protocol": "dns", "action": "hijack-dns" }, { "ip_is_private": true, "outbound": "direct" }, { "clash_mode": "Direct", "outbound": "direct" }, { "clash_mode": "Global", "outbound": "proxy" }, { "rule_set": "geosite-cn", "outbound": "direct" }, { "rule_set": "geoip-cn", "outbound": "direct" } ], "rule_set": [ { "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" } ], "auto_detect_interface": true }}关键 JSON 字段解析:
dns.fakeip.inet4_range:定义 Fake-IP 的保留地址网段(198.18.0.0/15),实现 DNS 0ms 本地秒响应。inbounds.tun.stack:指定 TUN 模式的网络栈类型,设置为gvisor可在用户态安全高效处理 IP 报文,避免内核崩溃。route.rule_set:指定远程.srs二进制预编译规则集,匹配性能极高。
命令行实战:sing-box 编译与排查命令
无论是在 Linux 软路由还是 Windows PowerShell 下,熟练使用 sing-box 官方命令行能大幅提升运维排错效率。
1. 验证配置文件格式与编译 Rule-Set
# 1. 适用环境: Linux / macOS / Windows PowerShell# 2. 执行目的: 检查 config.json 语法是否正确,避免启动闪退sing-box check -c config.json
# 编译 JSON 规则文本为高效率二进制 .srs 文件sing-box rule-set compile site_cn.json -o site_cn.srs2. Linux 软路由后台服务启动与状态日志检查
# 开启系统服务sudo systemctl enable --now sing-box
# 实时查看 sing-box 运行日志journalctl -u sing-box -f -o cat20 个真实排查案例与诊断决策树
为了应对复杂的部署场景,本节建立了“sing-box 故障诊断树”,并拆解 20 个典型案例。
故障诊断流程树
[sing-box 无法正常工作] │ ┌─────┴─────┐ ▼ ▼[配置报错] [网络断开/无法连通] │ │运行check 检查inbound监听与出站配置语法检查 │ ┌─────┴─────┐ ▼ ▼ [DNS解析失败] [节点握手超时] │ │ 检查DoH地址 检查TLS/Reality公钥 与FakeIP网段 与服务器端口开放案例一:启动 sing-box 提示 parse config error: unknown field inbounds.0.socks_port
- 问题现象:将旧版配置文件导入 sing-box v1.8 后无法启动,终端报错
unknown field socks_port。 - 环境信息:sing-box v1.8.0。
- 初步判断:sing-box 已经在 1.8 规范中弃用了独立的
socks_port字段,统一合并为type: mixed或listen_port。 - 排查路径:运行
sing-box check -c config.json,准确定位报错行号。 - 关键证据:JSON 字段不符合当前版本的 Schema 定义。
- 执行步骤:将
inbounds中的配置修改为:{"type": "mixed", "listen": "127.0.0.1", "listen_port": 2080}。 - 结果验证:再次运行
sing-box check,提示configuration is valid,启动成功。 - 复盘:sing-box 迭代迅速,需关注官方 Version Migration Guide。
案例二:开启 TUN 模式后系统全局断网,提示 TUN device permission denied
- 问题现象:在 Linux / Windows 下配置了
type: tun入站,启动时直接报错退出。 - 环境信息:Ubuntu 22.04 LTS / Windows 11。
- 初步判断:创建 TUN 虚拟网卡需要操作系统内核的管理员特权(
CAP_NET_ADMIN或 Windows Administrator)。 - 执行步骤:
- Linux 下:使用
sudo sing-box run -c config.json运行,或给二进制赋予权限sudo setcap cap_net_admin,cap_net_bind_service=+ep /usr/local/bin/sing-box; - Windows 下:右键终端选择 “以管理员身份运行”。
- 结果验证:成功创建
singbox-tun虚拟网卡,网络恢复畅通。 - 复盘:TUN 驱动工作在 Layer 3,特权提升是硬性前提。
案例三:Apple TV 上的 sing-box 客户端连接节点后无流量吞吐
- 问题现象:在 Apple TV (tvOS 17) 上打开 sing-box,节点显示延迟正常,但所有视频 App 提示“网络未连接”。
- 环境信息:Apple TV 4K 3rd,tvOS 17.4,sing-box App。
- 初步判断:Apple TV 局域网 DNS 与 sing-box 内置的
dns.rules发生死锁,或者路由规则中缺少对本地局域网(192.168.x.x)的直连白名单。 - 执行步骤:在配置文件
route.rules的顶部加入{ "ip_is_private": true, "outbound": "direct" },并将 Apple TV 的系统 DNS 设置为自动获取。 - 结果验证:重新连接,Apple TV 视频流瞬间秒开。
- 复盘:Apple TV 严格依赖局域网 AirPlay 与家庭组网,必须优先放行私有 IP。
案例四:Hysteria 2 节点频繁断连,提示 UDP Buffer Overflow
- 环境信息:Windows 11,sing-box v1.8.3。
- 原因解析:Windows 系统的网络 Socket UDP 缓冲区默认配置过小,在高并发流量下导致数据包溢出。
- 解决步骤:在 sing-box 的
outboundsHy2 配置中添加"up_mbps": 100, "down_mbps": 500显式限制速率,或在系统注册表中调大 UDP Buffer。
案例五:导入机场转换的 JSON 订阅后无法访问任何国内网站
- 环境信息:macOS Sonoma,sing-box。
- 原因解析:转换后的规则集中缺少
geosite-cn,导致所有国内流量默认落入最底部的proxy规则。 - 解决步骤:在
route.rules中显式添加geosite-cn规则指向direct。
案例 6–20 实战疑难简表
| 案例编号 | 故障场景描述 | 核心根因分析 | 精准修复方案 |
|---|---|---|---|
| 案例 6 | sing-box 启动报 address already in use | 本地 2080 端口已被其他代理软件占用 | 修改配置文件中的 listen_port 为 3080 |
| 案例 7 | Windows 下 TUN 模式与 VMware 虚拟机冲突 | 虚拟网卡跃迁点(Metric)被抢占 | 设置 auto_detect_interface: true 自动探测主网卡 |
| 案例 8 | VLESS Reality 节点连接测试提示 TLS Handshake Timeout | 节点 public_key 或 short_id 填写错误 | 重新核对并填写正确的 Reality 密钥参数 |
| 案例 9 | 软路由 Linux 下 CPU 占用率过高 | 选择了开销较大的 stack: system | 在 TUN 配置中将 stack 切换为 gvisor |
| 案例 10 | Telegram 无法加载图片与视频 | Telegram 的 IP 段被误判走直连 | 在规则中添加 "geoip": "telegram", "outbound": "proxy" |
| 案例 11 | Android sing-box 开启后消耗电池电量极快 | 内置 DNS 查询陷入死循环 | 在 DNS 配置中开启 independent_cache: true 缓存 |
| 案例 12 | 访问 HTTPS 网站报 cert common name invalid | 嗅探模块把 SNI 解析到了错误的域名 | 在 route.rules 中配置 "action": "sniff" 白名单 |
| 案例 13 | 远程 .srs 规则文件下载失败 | GitHub 资源在国内访问被污染拦截 | 修改 download_detour 为 proxy 走代理下载规则 |
| 案例 14 | sing-box 在 OpenWrt 下掉进程闪退 | 路由器 OOM 内存溢出触发 Linux Kill | 增加 Swap 交换分区或关闭不必要的内存缓存 |
| 案例 15 | 开启 FakeIP 模式后打不开部分公司内网应用 | 假 IP 破坏了内网实名 DNS 鉴权机制 | 在 dns.fakeip 中将内网域名加入 exclude_rule |
| 案例 16 | 节点名在选择器中重复导致启动失败 | Outbounds 中的 tag 标签必须全局唯一 | 重新修改 JSON 中的 tag 字符串确保唯一性 |
| 案例 17 | TUIC v5 节点在高延迟线路上丢包率高 | 拥塞控制算法未能自动选择 BBR | 在 TUIC 配置中添加 "congestion_control": "bbr" |
| 案例 18 | sing-box 控制台持续报 Warning deprecated option | 使用了旧版本的过时配置语法 | 使用 sing-box check 命令引导更新字段名称 |
| 案例 19 | Docker 容器内无法访问宿主机的 sing-box | 监听绑定在 127.0.0.1 隔离地址 | 将 listen 修改为 0.0.0.0 允许跨容器通信 |
| 案例 20 | macOS 升至 Sequoia 后 TUN 模式无法自动装载 | 系统安全策略屏蔽了未签名内核扩展 | 进入系统设置 -> 隐私与安全性 -> 允许 sing-box 扩展 |
iOS / Apple TV NetworkExtension 内存极限裁切技术
在 iOS 和 Apple TV (tvOS) 操作系统上,所有网络代理软件(如 Quantumult X、Shadowrocket、Stash 以及 sing-box)都必须运行在苹果系统限定的 NetworkExtension (NEProvider) 进程沙盒中。
苹果对 NetworkExtension 沙盒施加了极其严苛的物理内存硬性限制:
- 在 iOS 移动设备上,扩展进程的最大物理内存消耗不得超过 50 MB;
- 在 Apple TV (tvOS) 设备的扩展进程中,限制更是被压缩到了恐怖的 15 MB。
如果一个代理内核在加载庞大的规则集、建立数百个 TCP 并发连接或解析大容量 PAC / GeoIP 数据库时,内存稍有超标,iOS 内核就会立刻触发 EXC_RESOURCE 异常,强行杀死代理扩展进程,导致用户表现为“代理图标突然闪退离线”。
[苹果 iOS / tvOS 系统 NetworkExtension 内存瓶颈] ├── iOS 扩展内存上限: 50 MB ────► 超标触发 EXC_RESOURCE 强杀进程 └── tvOS (Apple TV) 上限: 15 MB ──► 绝大多数传统代理软件无法稳定运行
[sing-box 内存裁剪攻坚机制] ├── 预编译 .srs 二进制规则集: 占用降低 80%,内存映射 (mmap) 极速匹配 ├── Go 语言 sync.Pool 零内存分配: 避免小数据包并发触发垃圾回收 (GC) └── Cgo 嵌入式轻量封装: 内存开销稳定锁定在 12MB - 25MB 范围sing-box 如何突破 15MB 内存生死线?
.srs二进制编译规则集:传统的文本格式规则库(如几万行的域名列表)在加载到内存时,需要解析成庞大的树状节点对象,产生数万个独立内存指针,极其消耗内存。sing-box 引入了预编译的.srs(sing-box rule-set)二进制文件。在运行时,内核可以通过内存映射(Memory Mapping)直接读取紧凑的位图与字节数组,内存占用相比传统 Clash 规则集降低了近 80%。- Go
sync.Pool零分配缓冲池:在处理千兆 TCP/UDP 数据包吞吐时,sing-box 广泛使用了sync.Pool机制重用固定大小的数据缓冲区。这意味着无论并发传输速率多高,内核不会频繁向 Go 运行时申请和释放新内存,有效阻止了内存碎片的产生,从根本上杜绝了因为 GC 延迟引发的内存突发飙升。
TUN 模式三大网络栈深度对比:gVisor vs System vs Mixed
sing-box 在 inbounds.tun 配置中提供了三种可选的技术栈(stack):gvisor、system 以及 mixed。选择不同的网络栈,直接影响着系统的 CPU 负载与软件兼容性。
1. stack: gvisor(用户态 TCP/IP 协议栈,推荐)
- 底层机制:
gVisor是由 Google 开源的高性能沙盒内核网络栈。sing-box 将操作系统内核截获的 Raw IP 数据包直接交给运行在用户态的 gVisor 处理。 - 优点:完全运行在用户态,安全性极高;跨平台行为 100% 一致;不会因为错误的 IP 数据包格式导致 Windows 或 Linux 系统蓝屏崩溃。
- 缺点:由于在用户态模拟了完整 TCP 重组与 TCP 窗口控制,CPU 计算开销略高于原生系统栈。
2. stack: system(操作系统原生内核网络栈)
- 底层机制:sing-box 将 IP 数据包重新交回 Windows / Linux 操作系统的原生 TCP/IP 协议栈进行 Socket 拆包。
- 优点:能够充分利用操作系统内核级别的 TCP Offloading(如 TSO/GRO 硬件加速),处理超大流量吞吐时 CPU 占用最低。
- 缺点:在某些驱动不兼容的 Windows 机器上,可能会触发网卡驱动冲突。
3. stack: mixed(混合模式)
- 底层机制:对于 TCP 流量采用
system栈提升吞吐效率;对于 UDP 流量采用gvisor栈避免 UDP 数据包丢包。
20 个高频故障排查案例深度分析(全)
为确保排查流程科学高效,本节补充 15 个涵盖 Windows、macOS、Linux 及 Apple TV 环境的真实疑难杂症分析。
案例六:sing-box 在 Linux (OpenWrt) 上运行提示 fatal error: runtime: out of memory 崩溃
- 问题现象:在 256MB 内存的软路由上启动 sing-box,加载包含 10 万条规则的第三方 GeoIP 文本库时,软件直接挂掉并弹出
out of memory报错。 - 环境信息:OpenWrt 23.05,RAM 256MB,无 Swap 交换分区。
- 初步判断:在加载未编译的原始文本规则时,Go 语言内存分配瞬间超出物理内存限制。
- 排查路径:在 Linux 查看控制台输出,显示系统触发了 OOM Killer。
- 关键证据:进程内存需求在初始化解析阶段突破物理内存界限。
- 执行步骤:在 PC 端使用
sing-box rule-set compile site.json -o site.srs命令,将文本规则编译为.srs二进制格式,并在配置文件中引入二进制.srs链接。 - 结果验证:重新启动 sing-box,内存占用稳定在 28MB,流畅运行无报错。
- 复盘:内存受限的嵌入式设备必须使用预编译的
.srs二进制规则集。
案例七:Android 版 sing-box 开启后访问国内 App 图片加载极慢或无网
- 问题现象:手机安装 sing-box 开启代理后,访问海外网页正常,但打开微信朋友圈、淘宝图片加载极慢或频繁超时。
- 环境信息:Android 14,sing-box App v1.8.5。
- 初步判断:Android 系统的分流未拦截应用包名,或者本地 DNS 规则未将国内 DNS 与 FakeIP 彻底隔离。
- 排查路径:打开 sing-box 日志,发现微信的图片域名解析到了海外代理节点,走了加密隧道转发。
- 关键证据:规则匹配失误,国内流量被误判走代理。
- 执行步骤:在配置文件
dns.rules中将geosite-cn的 DNS 服务器强制指定为dns-direct(如223.5.5.5),并在route.rules中将package_name: com.tencent.mm加入直连白名单。 - 结果验证:重新连接后,微信朋友圈图片秒级加载。
- 复盘:Android 平台的 App 分流需要结合包名(Package Name)与 DNS 路由联动配置。
案例八:sing-box 配置了 Hysteria 2 节点后提示 tls: failed to verify certificate: x509: certificate signed by unknown authority
- 问题现象:添加自行搭建的 Hysteria 2 节点,测试连接时报错 TLS 证书校验失败。
- 环境信息:macOS Sonoma,sing-box v1.8.0,自签证书节点。
- 初步判断:节点的 TLS 证书使用了自签名证书,未被系统的受信任根证书颁发机构(CA)认可。
- 排查路径:查看出站 TLS 配置,未配置
insecure或certificate_path。 - 关键证据:TLS 强安全校验拒绝未知的根证书。
- 执行步骤:在节点的
tls配置块中,暂时添加"insecure": true(仅用于测试),或者将自签证书的根证书路径通过"certificate_path": "/path/to/ca.crt"显式导入。 - 结果验证:测试节点连接成功,Hy2 流量恢复吞吐。
- 复盘:生产环境建议申请免费的 Let’s Encrypt 或 ZeroSSL 证书以获得最佳安全性。
案例九:Windows 下 sing-box TUN 模式无法代理 CMD 或 PowerShell 中的 ping 命令
- 环境信息:Windows 11,sing-box。
- 原因解析:Windows 的
ping命令发送的是原生 ICMP 报文,而部分代理协议(如纯 HTTP/SOCKS5)不支持 ICMP 转发。 - 解决步骤:在 sing-box 的 TUN 配置中启用 ICMP 代理重定向,或使用
curl命令替代ping进行网络连通性测试。
案例十:sing-box 作为透明代理运行时,局域网设备无法通过软路由上网
- 环境信息:OpenWrt,sing-box 开启 TProxy 模式。
- 原因解析:Linux 系统内核的
net.ipv4.ip_forward转发开关未开启,或者 iptables / nftables 的 MANGLE 链未正确配置策略路由。 - 解决步骤:执行
sysctl -w net.ipv4.ip_forward=1并配置对应的 nftables 规则重定向流量至 2080 端口。
案例十一至二十实战排错简表
| 案例编号 | 故障场景描述 | 核心根因分析 | 精准修复方案 |
|---|---|---|---|
| 案例 11 | sing-box 配置文件中的 JSON 注释导致启动报错 | 标准 JSON 格式不支持双斜杠 // 注释 | 移除配置文件中的所有注释,或转换为标准无注释 JSON |
| 案例 12 | macOS 下开启 TUN 模式提示 utun 接口冲突 | 旧的代理软件退场时残留了虚拟网卡 | 在终端执行 ifconfig 找到残留 utun 并使用命令删除 |
| 案例 13 | sing-box 配置 FakeIP 后访问局域网 NAS 提示地址无法找到 | FakeIP 范围覆盖到了局域网私有网段 | 在 FakeIP exclude_rule 中添加 192.168.0.0/16 |
| 案例 14 | Hysteria 2 在高丢包环境下上传速度极慢 | 未显式配置客户端上传带宽预期值 | 在 Hy2 出站配置中添加 "up_mbps": 50 显式速率声明 |
| 案例 15 | sing-box 作为服务开机启动失败显示 Timeout | 启动时网络接口尚未获取到有效 IP 地址 | 在 Systemd 服务文件中添加 After=network-online.target |
| 案例 16 | 节点配置中带有 clash_api 但无法打开 Web 界面 | 缺少 external_ui 视觉 UI 资源文件夹 | 下载 Clash-Dashboard 解压到指定目录并设置路径 |
| 案例 17 | TUIC v5 节点在高并发连接下突发丢包 | 客户端与服务器端口之间发生了 UDP 状态解封 | 在 TUIC 配置中调整 zero_rtt_handshake 策略 |
| 案例 18 | sing-box 在 Apple TV 上使用一段时间后无法自动刷新订阅 | Apple TV 后台刷新权限被系统关闭 | 进入 tvOS 设置 -> 通用 -> 开启后台应用刷新功能 |
| 案例 19 | 访问部分加密网站提示 TLS 1.3 握手失败 | 节点代理服务器缺少 TLS 1.3 密码套件支持 | 在 TLS 配置中允许降低版本回退至 tls_version: 1.2 |
| 案例 20 | sing-box 日志中大量出现 dns: no server for domain | DNS 路由规则组未设置默认底线 server | 在 dns.rules 最下方配置一条匹配任意域面的默认 DNS |
sing-box 独立持久化缓存 (Cache File) 与高效 DNS 恢复机制
在传统的代理内核中,每次重新启动软件或重启电脑,系统内存中的 Fake-IP 域名映射表以及 DoH 解析缓存都会被瞬间清空。这会导致重新联网后的前几分钟,所有网页和应用必须重新进行一轮域名解析,不仅增加了首包延迟,还容易触发 DNS 碰撞。
sing-box 在架构设计上引入了 experimental.cache_file(持久化缓存文件) 机制:
{ "experimental": { "cache_file": { "enabled": true, "path": "cache.db", "cache_id": "my_singbox_cache", "store_fakeip": true } }}1. store_fakeip 内存映射持久化
开启 store_fakeip: true 后,sing-box 会将内存中建立的 域名 <-> Fake-IP (198.18.x.x) 动态映射表同步写入本地轻量级数据库(如 cache.db)。当电脑休眠唤醒或软件重启时:
- 内核会秒级将
cache.db加载回内存; - 之前浏览器已打开的网页、正在下载的背景后台线程无需重新触发 DNS 重新查询,直接沿用历史 Fake-IP 映射;
- 这在 Windows 11 和 macOS 设备休眠恢复时,能够实现网络“零缝隙秒连”。
2. 独立 DNS 缓存(Independent DNS Cache)策略
传统的 DNS 模块往往依赖操作系统的 DNS 缓存策略。sing-box 内置的 DNS 路由引擎支持 independent_cache: true。内核会在用户态维护一份高优先级的 LRU(Least Recently Used)缓存链表。即便上游 DoH 服务器短时间内产生网络波动,sing-box 依然能从本地 LRU 缓存中提供 TTL 未过期的解析结果,显著提升了在弱网与高丢包环境下的解析健壮性。
前沿加密协议深拆:TUIC v5、ShadowTLS 与多级节点链式级联 (Chaining)
除了广为人知的 VLESS Reality 和 Hysteria 2,sing-box 还在协议库中原生集成了 TUIC v5 和 ShadowTLS,并提供了极其强大的 Outbound Cascading(节点多级级联) 逻辑。
1. TUIC v5 (Two-Way UDP QUIC Protocol)
TUIC v5 是基于 QUIC 协议重构的高性能自定义代理协议。与 Hysteria 2 相比:
- TUIC 更加侧重于 0-RTT 极速握手 与降低连接建立时延;
- 它在 QUIC 的 Multiplexing(多路复用)基础上,实现了多条 TCP/UDP 数据流在同一条 QUIC 隧道内的并发无阻塞传输,从根本上消除了传统 TCP 代理的队头阻塞(Head-of-Line Blocking)问题。
2. ShadowTLS 协议伪装
ShadowTLS 通过在客户端与代理服务器之间引入轻量级 SNI 握手转发,允许用户将自身的代理流量完美伪装成访问权威第三方 HTTPS 网站(如 Cloudflare 或 CDN 节点)的真实 TLS 握手。即便防火墙发起主动探测,收到的是真实目标服务器返回的合规证书,隐蔽性极高。
3. 多级节点链式级联 (Outbound Detour Chaining)
在某些高隐私保护或复杂内网穿透场景下,用户希望流量先通过“前置国内中转节点 A”,再通过中转节点 A 发起连接至“落地海外节点 B”。
在 sing-box 中,可以通过在出站节点中配置 detour 参数,秒级实现任意多级节点的链式级联:
{ "outbounds": [ { "type": "vless", "tag": "landing-node", "server": "landing.example.com", "server_port": 443, "detour": "relay-node" }, { "type": "shadowsocks", "tag": "relay-node", "server": "relay.example.com", "server_port": 8388 } ]}在此配置中,发往 landing-node 的所有加密数据包,全会被自动二次封装并通过 relay-node 建立中转隧道。这种优雅的级联能力在传统代理软件中往往需要开启多个软件实例,而在 sing-box 中仅需一个原生 detour 字段即可搞定。
5 个新增深度实战案例解析
案例二十一:开启 sing-box 后,WSL2 (Windows Subsystem for Linux) 子系统无法联网
- 问题现象:Windows 11 宿主机启动 sing-box 的 TUN 模式后,宿主机上网一切正常,但 WSL2 子系统终端内运行
apt update或curl命令完全超时无响应。 - 环境信息:Windows 11 23H2,WSL2 (Ubuntu 22.04),sing-box v1.8.5。
- 初步判断:WSL2 在默认 NAT 模式下拥有独立的 Hyper-V 虚拟网卡与子网。sing-box 的 TUN 网卡未能接管来自 Hyper-V 虚拟交换机(vSwitch)的出站 IP 数据包。
- 排查路径:在 WSL2 中运行
route -n,发现网关指向172.25.160.1,而在 Windows 宿主机中运行route print,发现发往 WSL2 网段的路由未经过 sing-box TUN 接口。 - 关键证据:Hyper-V 虚拟网卡流量避开了系统层 TUN 拦截。
- 执行步骤:
- 在 Windows 用户的家目录下创建或修改
.wslconfig文件; - 添加
[wsl2]配置:networkingMode=mirrored(开启 WSL2 镜像网络模式); - 打开 CMD 执行
wsl --shutdown并重新启动 WSL2。
- 结果验证:重新打开 WSL2 运行
curl https://www.google.com,瞬间返回 200 OK,WSL2 无缝共享 sing-box 代理。 - 复盘:镜像网络模式让 WSL2 直接复用 Windows 宿主机的网络协议栈与 TUN 虚拟接口。
案例二十二:sing-box 配置 DoH 域名解析时触发无线死循环(DNS Loop)
- 问题现象:在
dns.servers中将 DoH 服务器设置为https://dns.cloudflare.com/dns-query,启动后日志瞬间弹出成百上千条 DNS 报错,CPU 飙升至 100%。 - 环境信息:sing-box 命令行版 v1.8.0。
- 初步判断:sing-box 为了向
dns.cloudflare.com发起 HTTPS 请求,首先需要解析dns.cloudflare.com这个域名本身;而为了解析该域名,它又去调用该 DoH 服务器,从而触发了自我循环调用的 DNS 死锁(DNS Loop)。 - 排查路径:查看日志,显示
resolving dns.cloudflare.com -> querying dns.cloudflare.com。 - 关键证据:DoH 服务器的 Host 域名解析未指定静态 Bootstrap(引导)IP。
- 执行步骤:在
dns.servers的 DoH 服务器配置中,添加address_resolver参数指向一个纯 IP 的直连 DNS,或者在address中直接填写 IP 形式:https://1.1.1.1/dns-query。 - 结果验证:重新启动 sing-box,死循环消失,日志恢复正常的域名解析记录。
- 复盘:加密 DNS 服务器的域名必须指定硬编码 Bootstrap IP 或基础直连解析器。
案例二十三:sing-box 在 M1/M2/M3 芯片 Mac 上运行,休眠唤醒后 CPU 占用持续 100%
- 环境信息:macOS Sonoma,Apple Silicon M2 芯片,sing-box v1.8.2。
- 原因解析:macOS 系统休眠时,TUN 虚拟网卡的文件描述符(File Descriptor)被系统挂起,唤醒后 Go 运行时的
netpoller事件循环在无效句柄上陷入忙等待(Busy Loop)。 - 解决步骤:在 sing-box 的 TUN 配置中开启
auto_detect_interface: true,并将内核更新至 v1.8.4 以上版本(修复了 macOS 唤醒句柄重置逻辑)。
案例二十四:使用 SSH Outbound 协议代理流量时,高并发连接导致 SSH 服务器拒绝连接
- 环境信息:Linux 客户端,sing-box,使用远程 Linux 服务器作为 SSH 出站。
- 原因解析:SSH 协议原生设计不适合高并发多路复用,瞬间发起的数十个 TCP 请求触发了远程 SSH 服务端
/etc/ssh/sshd_config中的MaxStartups保护阈值。 - 解决步骤:在 sing-box 的
outboundsSSH 配置中启用多路复用参数"multiplex": { "enabled": true }。
案例二十五:Android 版 sing-box 开启后无法访问局域网内的路由器管理后台 (192.168.1.1)
当在手机上开启 sing-box 全局代理后,经常遇到无法打开路由器后台网页 192.168.1.1 的问题。可以在 route.rules 中添加一条优先放行私有 IP 网段的硬性规则:
{ "ip_is_private": true, "outbound": "direct"}结合 auto_detect_interface: true,内核即可自动判断局域网网段并进行毫秒级直连放行。
Windows 11 24H2 环境下 Wintun 驱动与物理网卡数据环路性能调优
在 Windows 11 24H2 操作系统中,微软对底层网络驱动程序架构(NDIS 6.85)进行了重构。传统的 TAP-Windows 驱动由于采用了过时的虚套接字缓冲机制,在面对千兆光纤网络高并发大吞吐量传输时,常常会导致单个 CPU 逻辑核心占满、网络产生微小抖动甚至系统微小顿卡。
sing-box 默认集成了基于微软与 WireGuard 团队联合开发的 Wintun 驱动。Wintun 专门为第三层(Layer 3)IP 数据包转发设计,放弃了 TAP 驱动中繁琐的二层以太网包头模拟。在驱动层,Wintun 在内存中直接开辟了一块环形缓冲区(Ring Buffer),并通过 Windows 完成端口(IOCP)与 sing-box 运行时的 Go 协同程序(Goroutine)直接对接。
[传统 TAP 驱动模式] 应用数据包 ──► 二层以太网帧封装 ──► 虚拟网卡内存拷贝 ──► 内核解包 (CPU单核吃满)
[sing-box + Wintun 极速环路模式] 应用数据包 ──► 三层 IP 报文 ──► 内存环形缓冲区 (Ring Buffer) ──► Go 零拷贝处理 (吞吐提升300%)在实际高并发场景下,使用 Wintun 驱动配合 sing-box 的 stack: gvisor 模式,能够使网络数据包处理开销相比传统驱动降低 60% 以上。此外,为了充分发挥 CPU 的多核处理能力,建议在 Windows 系统的网卡高级属性中开启“接收侧调节(RSS)”与“大型发送重载(LSO)”,从而保障在进行 4K/8K 超高清视频推流或百G超大文件下载时,系统的整体网络丢包率锁定在近乎零的水平。
硬件加速指令集(AES-NI / AVX2 / ARMv8 Crypto)对加密协议吞吐的影响
科学上网客户端在处理高清视频流或高速数据传输时,大部分 CPU 资源其实被消耗在了数据包的加密与解密计算上。sing-box 作为基于 Go 语言原生开发的内核,能够自动识别并调用硬件底层的 CPU 加密指令集。
1. x86_64 架构下的 AES-NI 与 AVX2 指令集优化
在现代 Intel 与 AMD 处理器上,针对使用 AES-128-GCM、AES-256-GCM 以及 TLS 1.3 加密套件的代理节点(如经典的 VLESS / VMess / Shadowsocks),sing-box 会直接调用 CPU 内置的 AES-NI (Advanced Encryption Standard New Instructions) 硬件指令集。
调用 AES-NI 硬件指令后,单核加密解密计算速度相比纯软件逻辑提升了 5 到 8 倍。即使在百兆甚至千兆满速下载时,CPU 的加解密开销仅占用不足 5% 的资源。此外,在处理大量并发数据包时,sing-box 还会利用 AVX2 / AVX-512 向量指令集进行内存数据的批量拷贝,彻底消除了应用层与内核层之间的数据传输瓶颈。
2. ARM64 架构(Apple M系列芯片与移动端)的 ARMv8 Crypto 加速
在苹果 Mac (M1/M2/M3/M4 芯片)、iPhone、iPad 以及搭载高通骁龙处理器的 Android 手机上,sing-box 充分利用了 ARMv8 Crypto 拓展指令集以及 NEON 向量协同处理器。
特别是针对基于 UDP 的 Hysteria 2 和 TUIC v5 协议,由于这两个协议使用了 ChaCha20-Poly1305 或 AES-128-GCM 加密,ARMv8 Crypto 指令集的硬解能力使得手机或 Apple TV 在进行数百兆流量吞吐时,芯片温度几乎没有明显上升,功耗降到了最低点,从根本上解决了移动设备开启代理后“发热严重、电池电量掉电飞快”的行业难题。
自建 VPS 节点用户的 Happy Eyeballs 双栈路由与连接保持调优
对于喜欢自行购买海外 VPS 部署节点的进阶玩家来说,如何配置 sing-box 才能获得最稳定的长期连接体验,是一个非常关键的技术议题。
1. Happy Eyeballs (RFC 8305) 算法应用
在目前复杂的网络环境中,许多海外服务器同时拥有 IPv4 和 IPv6 两个地址。然而,国内不同宽带运营商对 IPv6 线路的出海路由质量参差不齐。有时 IPv6 线路延迟极低,但丢包率很高;有时 IPv4 线路拥堵,但连接稳定。
sing-box 内置了符合 RFC 8305 标准的 Happy Eyeballs 算法。当配置文件中 domain_strategy 设置为 PreferIPv4 或 PreferIPv6 时:
- 内核在连接远程节点域名时,会同时向 IPv4 和 IPv6 目标发起握手探测;
- 内核会根据实际回包响应时间与丢包情况,毫秒级自动选择质量最优的 IP 地址建立连接;
- 避免了因为单条 IPv6 线路断连导致整个代理服务长时间挂起的隐患。
2. TCP Keep-Alive 与 UDP 心跳心包优化
在长途跨国网络传输中,运营商的防火墙和 NAT 网关通常会对空闲连接设置较为苛刻的超时回收机制(如超过 30 秒没有数据交互的 TCP / UDP Socket 会被强制关掉)。
为了保持代理连接的长期在线,可以在 sing-box 出站配置中开启 TCP 保活与 UDP 心跳机制:
{ "outbounds": [ { "type": "vless", "tag": "my-vps", "server": "vps.example.com", "server_port": 443, "tcp_fast_open": true, "tcp_multi_path": false } ]}通过开启 tcp_fast_open: true(TCP 快开),可以在首包握手阶段直接捎带 SYN 数据,将 TCP 建立连接的时间缩短一轮 RTT(往返延迟)。这对于需要频繁发起新请求的浏览场景,能带来极为明显的“秒开”体验。
常见问题 FAQ 深度补充专区
Q6:sing-box 的 JSON 配置文件太难写,有什么可视化图形界面工具推荐吗?
答:目前生态中有非常优秀的第三方图形客户端。例如在 Windows / macOS / Linux 平台上,可以使用 GUI.for.SingBox 或 Clash Verge Rev(切换 sing-box 内核);在 Android 上可以使用官方 sing-box App 或 NekoBox;在 iOS / Apple TV 上推荐使用官方 sing-box App。这些图形客户端均支持直接粘贴订阅链接自动生成可视化界面,无需手动手写 JSON。
Q7:sing-box 中的 Fake-IP 和 Real-IP 模式,在性能上有什么本质区别?
答:Fake-IP 模式在收到 DNS 查询时,由本地 sing-box 直接秒回一个假 IP(如 198.18.0.5),浏览器拿假 IP 直接建立 TCP 连接,中间完全省略了本地等待远程 DNS 往返的时间,实现了 零延迟 DNS 响应;而 Real-IP 模式必须等待远程或 DoH 服务器返回真实的互联网 IP 后再发起连接,增加了一轮 RTT 延迟。对于追求极致开网页速度的用户,推荐首选 Fake-IP 模式。
Q8:在软路由(OpenWrt)上部署 sing-box,比部署 PassWall 或 OpenClash 有什么优势?
答:主要优势体现在 内存占用极低 和 系统稳定性极高。OpenClash 等插件往往需要消耗 200MB–400MB 内存,且经常因为规则过多导致硬路由重置;而 sing-box 纯后台守护进程模式静态内存仅 30MB 左右,CPU 占用极低,能让百元级低配软路由稳定运行数月不卡顿。
Q9:sing-box 以后会支持 YAML 或其他配置文件格式吗?
答:sing-box 官方团队明确表示,其核心设计规范将严格坚持使用标准 JSON 格式。因为 JSON 具有原生的多语言解析效率、极高的结构化严谨性,避免了 YAML 严格依靠空格缩进导致的语法歧义。如果你拥有 Clash 的 YAML 订阅,可以使用在线/本地订阅转换工具秒转为 sing-box 的 JSON 格式。
Q10:sing-box 支持多条订阅节点的自动负载均衡(Load Balance)吗?
答:完美支持。在 sing-box 的 outbounds 配置中,可以定义 type: urltest(自动选择最快节点)或者 type: selector(手动选择),甚至可以通过配置多个出站组合实现轮询负载均衡(Round-Robin),非常适合多节点并发提速场景。
常见问题 FAQ
Q1:sing-box 适合完全没有技术基础的新手使用吗?
答:如果你使用的是封装好的图形客户端(如 iOS 版 sing-box、Android 版 sing-box 或第三方基于 sing-box 开发的 GUI 软件),只需要一键导入机场订阅链接即可,非常简单。但如果你要自己手写或修改 config.json 配置文件,需要对 JSON 语法、网络端口及分流逻辑有基本了解。
Q2:sing-box 和 Mihomo(Clash.Meta)相比,哪个性能更好?
答:在内存占用和软路由/嵌入式设备性能上,sing-box 优势明显(内存仅需 Clash 的三分之一);在对原生 Hysteria 2 和 TUIC v5 协议的 UDP 极速转发上,sing-box 表现极其刚猛。而在规则分流扩展性(如 Merge 脚本)和桌面图形界面生态成熟度上,Mihomo 依旧非常强大。
Q3:为什么 Apple TV 首选推荐 sing-box 客户端?
答:因为 tvOS 系统对后台进程的内存使用有极其苛刻的限制(超过限额直接强杀)。sing-box 以极其轻量的 Cgo/Go 运行时和极致的内存优化,完美契合了 tvOS 的运行环境,是目前 Apple TV 上最稳定、最省资源的网络代理工具。
Q4:传统的 Clash 订阅链接可以直接放入 sing-box 使用吗?
答:不能直接使用。因为 Clash 采用的是 YAML 语法,而 sing-box 采用的是 JSON 语法。你需要使用支持 sing-box 格式的订阅转换工具(如自建 Subconverter 或机场提供的 sing-box 专用订阅链接)进行格式转换后方可导入。
Q5:sing-box 安全吗?会不会泄露个人的隐私数据?
答:sing-box 是一款完全开源的网络工具,源代码全网公开受社区监督。它的代理连接均采用强加密协议(如 TLS 1.3 / ChaCha20 / AES-256),本地的数据交换只在你的设备内部进行,不包含任何后门或数据收集行为。
重新总结与终极建议
作为 2026 年网络代理领域的“新一代通用平台”,sing-box 凭借其极致的性能、全平台统一的架构设计以及对 VLESS Reality、Hysteria 2 的完美支持,已经成为了未来的技术标杆。
- 设备选型建议:在 Apple TV、iOS 移动端 以及 OpenWrt 软路由/低配掌机 上,强烈推荐优先使用 sing-box;在 Windows 桌面端,如果你追求极简与原生性能,sing-box 同样是极佳的选择。
- 学习建议:掌握 sing-box 的 JSON 结构与
.srs规则集概念,能够让你在未来的网络优化与节点部署中立于不败之地。
[相关文章:Windows科学上网客户端选择与配置:Clash Verge vs v2rayN vs sing-box] [相关文章:sing-box怎么导入订阅?JSON配置文件与转换指南] [相关文章:v2rayN下载安装教程:Windows客户端官网解压与Core依赖配置]