搜索 K
Appearance
先说结论,省得你读完 4000 字才发现方向不对。
该换 sing-box 的人:
暂时别换的人:
新手 90% 卡在第一天的三个原因,先记住:
decode config: unknown field,八成是这个原因,不是客户端坏了。2080,跟 Clash 的 7890 不一样),浏览器没配代理,你以为"连不上",其实代理进程活得好好的。.srs 二进制规则集,首次启动要在线拉取。网络环境差 → 拉取失败 → 路由规则空转 → 所有流量直连,表现为"完全没效果"。理解这张图,90% 的配置报错你能自己定位:
应用请求
↓
[inbound] tun / mixed(2080) / socks / http / redirect
↓
[sniff] 从 TLS SNI、HTTP Host 里嗅探真实域名
↓
[dns] 按 dns.rules 决定:本地解析 or 代理解析
↓
[route] rules 匹配 → rule_set(.srs) / geoip / process_name / domain_keyword
↓
[outbound] direct / proxy(vless-reality / hysteria2 / ss2022 / trojan) / block
↓
[experimental] clash_api(9090) 暴露给面板做延迟测试与流量统计inbound 决定"流量怎么进内核"。 TUN 是最粗暴也最彻底的方式:内核虚拟一块网卡,接管系统路由表。系统代理则是被动的——只有"懂得看代理设置"的程序(浏览器、curl)才会走。
route 是 sing-box 的灵魂。 Mihomo 用一套 rules 加上大量 GEOIP 简写;sing-box 把规则集抽象成独立对象 rule_set,支持远程 .srs、本地 .json、内联三种来源。好处是可以只加载你需要的规则集(比如只加载 geosite-openai + geosite-netflix),内存占用从几百 MB 降到几十 MB;代价是首次拉取依赖网络。
dns 是最容易被忽视、也最容易泄漏的地方。 正确姿势是分段:国内域名走运营商 DNS 直连解析(快、准),境外域名走代理解析(防污染),并且 strategy 明确设定,避免 IPv6 走漏。
关于底层链路,客户端只是最后 1 公里。 你本地配置再完美,也救不了传输层。2026 年主流方案分三档:
2% 以上,QoS 一旦触发限速,单线程直接掉到 1-3 Mbps。±3ms 以内。这是"晚高峰不炸"的唯一工程解。协议层面,2026 年值得用的只有几个:VLESS + Reality(不需要自有域名和证书,握手直接借用真实站点的 TLS 特征,抗主动探测)、Hysteria2(基于 QUIC,高丢包场景反杀 TCP,但走 UDP,遇到运营商 UDP QoS 会翻车)、Shadowsocks 2022(2022-blake3-aes-128-gcm,抗重放,加密开销低)、Trojan。内核侧再叠加 BBRv3 拥塞控制(已进入较新 Linux 主线),能把 3% 丢包下的吞吐拉回来一大截。
别再用"哪个好看"选客户端。下面这张表按工程指标排:
| 客户端 | 覆盖平台 | 内核形态 | TUN 模式 | 订阅格式兼容 | 规则集可视化 | DNS 策略可调 | 延迟/测速 | 上手难度 |
|---|---|---|---|---|---|---|---|---|
| sing-box 官方 GUI(SFA/SFI/SFM/Win) | 全平台 | 同版本官方内核 | 支持,默认关 | 原生 sing-box / 部分 URL | 弱(JSON 为主) | 强(直改 JSON) | 内置 URLTest | 中高 |
| Karing | 全平台 | sing-box 内核 | 支持 | Clash / sing-box / 通用订阅 | 中 | 中 | 内置 | 低 |
| Hiddify Next | 全平台 | sing-box + Xray 双内核 | 支持 | 通用订阅免转换 | 中 | 中 | 内置 | 低 |
| NekoBox for Android | Android | sing-box 内核 | 支持 | 多格式 | 弱 | 中 | 内置 | 中 |
| Clash Verge Rev / Mihomo Party | 桌面 | Mihomo 内核 | 支持 | 原生 Clash YAML | 强 | 强 | 内置 | 低 |
| sing-box CLI(裸内核) | Linux/路由器 | 官方内核 | 手动 | 仅 JSON | 无 | 极强 | 无 | 高 |
| OpenWrt(Nikki / PassWall2 等) | 路由器 | sing-box/Mihomo | 支持 | 视插件 | 视插件 | 强 | 视插件 | 高 |
选型口诀:
一个常被忽略的点:官方 GUI 的版本与内核版本是绑定的。你从第三方渠道下载的"汉化增强版",很可能内核停留在半年前,缺少新协议支持(比如 endpoint 模型改造后的 WireGuard / Hysteria2 写法差异),遇到新订阅直接报配置错误。
机场后台订阅链接通常有三个后缀:/sub/clash、/sub/v2ray、/sub/singbox。优先选最后一个,复制完整 URL 粘贴到客户端"添加订阅"。
导入后必做两件事:
rule_set 是否下载成功;https://www.gstatic.com/generate_204,国内直连节点会失败属正常)。路线 A(推荐):找机场客服要 sing-box 订阅。 现在主流机场都在跑 subconverter 或自建下发服务,多说一句话的成本,比你自己折腾低。
路线 B:自建订阅转换。 本地 Docker 起一个 subconverter,把 Clash YAML 转成 sing-box JSON。注意两点:一是只在自己的机器上跑,公共转换站等于把你的订阅链接交给第三方;二是转换后检查分流规则是否被丢掉,很多公共转换模板会把 rule_set 简化成全局代理。
路线 C:换客户端。 Karing、Hiddify Next 这类内置多格式解析器的客户端,可以直接吃 Clash YAML 并在内部转换。代价是你能调的参数变少了。
process_name 走某个出口);最小可用结构就是五段:log / dns / inbounds / outbounds / route。改之前先跑 sing-box check -c config.json,比在 GUI 里点半天报错快十倍。
data 文件夹;~/Library/Application Support/下对应 bundle 目录;.json;/etc/sing-box/config.json + procd 服务管理。改配置的黄金纪律:先备份,再改,check 通过再 restart。 一条语法错误就能让内核对所有流量静默直连。
TUN 还是系统代理? 追求彻底就用 TUN,但务必开 auto_route,并按需开 strict_route(防止局域网/多网卡绕行)。纯浏览器场景用系��代理就够,资源占用低得多。
MTU 别乱调。 TUN 默认 9000,遇到某些 UDP 应用(尤其游戏、VoIP)分片异常时,降到 1500 或 1420 能解决大部分"能连但语音卡"的问题。注意:调小 MTU 会牺牲一点吞吐。
DNS 策略四条铁律:
strategy,避免 IPv6 走漏(多数机场没有 IPv6 出口);多路复用(multiplex)要分链路看。 在 IEPL 这类低丢包专线上,yamux 复用能显著降低握手开销、提升小文件并发;但在高丢包公网中转上,一个 stream 卡住会拖累整条连接,反而更慢。判断方法:开与不开各跑一次单线程下载,看方差。
UDP 与 QUIC。 如果机场节点不支持 UDP,务必在路由里 block 掉 QUIC(UDP 443),强制浏览器回落到 TCP,否则 YouTube/Google 会反复重试导致"网页转圈"。这个坑 90% 的人以为是节点问题。
排障的核心原则:先分层,再定位。 顺序永远是——本机代理端口活着吗 → DNS 通不通 → 到节点端口通不通 → 到目标站通不通 → 是不是分流规则把它直连了。
**