Skip to content

并发与吞吐的极致:深度揭秘 Sing-box 的 Mux (多路复用) 优化

毛佳国

很多使用 Sing-box 连接海外 VPS 的朋友会遇到一个奇怪的现象: 使用网页测速(Speedtest),下载能跑到 500Mbps 满速。但实际每天刷 X (Twitter) 或者打开含有几十张高清缩略图的流媒体网页时,图片却是一张一张像蜗牛一样蹦出来的。

这其中最核心的原因,不是你的机场带宽不够,而是跨国长距离传输中的 TCP 握手延迟损耗,以及缺乏有效的并发连接管理。

这时候,Sing-box 内置的超级法宝:Mux (多路复用) 机制就必须登场了。

什么是多路复用 (Multiplexing)?

想象一下你要在跨国的高速公路上运送 50 个小包裹(这就好比你打开一个包含 50 张图片的网页,浏览器发起了 50 个请求)。

这就极大地节约了建立多条 TCP 跨国连接的巨大延迟耗时!

Sing-box 中支持的 Mux 协议与开启方法

在底层代理协议中,Hysteria2 与 TUIC 默认自带了原生的极强 QUIC 多路复用。所以如果你的节点是这俩协议,你不需要也不应该画蛇添足去开启额外的 Mux。

而咱们最常用的老大哥协议:VLESS (基于 TCP/TLS / WS 等传输) 原生并不是复用的。Sing-box 集成了好几个非常优秀的第三方复用流模块:

  1. smux (推荐):最广泛使用,稳定省资源。
  2. yamux:功能强大但稍微占内存。
  3. h2mux:基于 HTTP/2 的底层多路复用。

在客户端配置开启 Mux (以 VLESS+smux 为例)

在你本地电脑或手机的 outbounds (出站节点) 中,找到你的 vless 节点,在里面加上专属的 multiplex 模块即可:

"outbounds": [
  {
    "type": "vless",
    "tag": "VLESS-Fast-Proxy",
    "server": "server.com",
    "server_port": 443,
    "uuid": "xxxxx...",
    "multiplex": {
      "enabled": true,            // 开启终极加速开关!
      "protocol": "smux",         // 使用主流方案
      "max_connections": 4,       // 同时最多保持底层真实双通道卡车的数量(4-6 较佳)
      "min_streams": 4,           // 每个卡车跑多满再开下一辆
      "max_streams": 0            // 单通道路由无上限
    }
  }
]

注意:启用 Mux 最关键的前提是——服务端的内核必须同时支持并兼容此 Mux 解码。如果你使用的依然是原生的老旧 V2Ray/Xray-core 作为服务端,它们非常完美地原生支持 smux 解码。

Vision 流控的互斥问题

在进阶玩家最核心的配置:VLESS + XTLS-Reality + Vision 流控 这个铁三角里。有一个非常让人遗憾的技术局限:

由于 Vision (xtls-rprx-vision) 属于一种基于裸数据直接缝合转发以对抗特征扫描的高级机制,它在底层设计上与 Multiplex (多路复用打包) 是绝对冲突且互斥的!

换句话说:如果你在 flow 里写了 xtls-rprx-vision,你就必须关掉或者去掉 multiplex 模块。强行开启不仅不会加速,软件还会直接在启动时由于冲突报错 Crash 崩溃。

最佳实践与建议总结

到底要不要开启 Mux,请严格遵循以下实战规则:

  1. 如果你在用 VLESS + WebSocket + Cloudflare CDN 拯救被墙 IP(见我们往期的 CDN 教程),请务必开启 Mux。因为经过 CDN 的高延迟跳板后,不打包复用你的网页会加载得如同拨号上网般缓慢。
  2. 如果你在使用 Hysteria2 / TUIC V5 协议,忘掉 Mux,它们内核自带的 QUIC 并发调度比你额外加的这层套娃牛逼一百倍。
  3. 如果你在追求极致隐蔽并且使用了大名鼎鼎的 VLESS-Vision (流控)严禁开启 Mux。老老实实依靠你的节点硬直连低延迟来冲刺速率。
上一篇
拒绝 IPv6 泄露:配置 Sing-box 的 IPv4/IPv6 双栈网络路由与底层防漏策略
下一篇
完美解锁流媒体与 AI:通过 Sing-box 内置 WireGuard 接入 Cloudflare WARP