多路复用 Mux是什么意思?
一句话结论
多路复用是把多个请求合并到同一条底层连接里传输的机制,目的是少建连接、少握手。
在 VMess、sing-box 等节点设置里会看到 mux 或 multiplex 开关。两端都要支持才能用,开启后效果因线路而异,也可能引入新问题,不宜盲目打开。
Mux 是 multiplexing(多路复用)的简写。设置页里一个不起眼的开关,背后是一个很通用的网络思路:一条路,走很多辆车。
它是什么
浏览一个网页会产生很多请求:网页本体、脚本、图片、字体。如果每个请求都单独建一条到节点的连接,每次都要经历握手,开销叠加。多路复用的做法是只维持一条(或少数几条)到节点的长连接,把许多请求拆成带编号的小段,在同一条连接里交错传输,对端再按编号还原。
这个思路在不同层次都有:HTTP/2 在应用层这么做,QUIC 在传输层这么做,代理协议里也有自己的实现,比如 VMess 配套的 Mux 机制,以及 sing-box 里叫 multiplex 的设置,详见官方文档。
它在配置里长什么样
| 位置 | 常见说法 |
|---|---|
| VMess 相关客户端 | mux 开关与并发数 |
| sing-box 节点 | multiplex 选项,含协议与并发等子项 |
| 节点提供方说明 | 是否需要客户端同步开启 |
最关键的一点:两端必须配套。节点端没启用而客户端单方面打开,通常会连不上,具体以所用内核的文档为准。
它有什么得与失
| 方面 | 可能的好处 | 可能的代价 |
|---|---|---|
| 握手次数 | 减少重复建连 | 连接断开时一批请求同时受影响 |
| 短连接较多的访问 | 更省 | 长时间的大流量下未必有额外收益 |
| 与其他机制叠加 | 视组合而定 | 和某些流控、传输方式存在限制 |
| 排查难度 | 无 | 多个请求挤在一条连接里,日志不好定位 |
QUIC 系协议本身已经自带流的复用,没有必要再多叠一层,这类细节读各协议页,如Hysteria2 协议。
常见误解
“开 Mux 一定更快。” 没有任何数据支持这个“一定”,梯子岛也没有自己的对比测试。效果取决于线路、访问内容与实现。
“Mux 是一种加密。” 不是。它只管怎么装车,不管车厢锁不锁。
“默认开着更好。” 遇到视频卡顿、大文件传输异常时,可以反过来先关闭它做对照。
怎么做对照排查
- 记录当前设置,再只改 Mux 这一项,其他保持不变。
- 用同一个站点、同一个时间段反复对比,不要凭一次感觉判断。
- 同时留意与传输方式的组合是否在文档允许范围内。
- 结果不稳定时,恢复原设置并做记录,再向节点提供方求证。
下一步
想把传输方式弄清楚,读传输方式有哪些;想看 VMess 的整体设计,读 VMess 协议。