singbox-multipath:用于异质多路径的类MPTCP智能择优聚合L4转发器PoC

singbox-multipath:用于异质多路径的类MPTCP智能择优聚合L4转发器PoC

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

作者开发了 singbox-multipath 实验项目,通过聚合高端与普通线路的多路径节点实现单 TCP 流加速。新连接默认使用低延迟高端线路,流量超过阈值后无缝聚合普通线路以提升下载速度并分担流量;可选节省模式触发后仅使用普通线路。需客户端与服务端同时部署,服务端为唯一出口。项目仅为 PoC,无技术支持。

🔎

延伸解读

适用场景与限制

该方案高度针对“优质线路”与“高带宽一般线路”的组合。如果普通线路本身无法提供大带宽,聚合不仅无法加速,反而可能导致性能降级。因此,在部署前需评估普通线路的实际带宽能力,确保其能满足聚合后的流量需求。

部署拓扑与出口统一

需在客户端和服务端同时部署singbox-multipath,且服务端作为最终唯一出站,以保证统一出口。合理拓扑为:由普通线路机侧出口,leg0通过高端线路机L3/L4转发连接普通线路机上的节点,leg1直连普通线路机上的节点。此时leg0和leg1底层协议相同,但leg0路径更优。

安全注意事项

multipath节点本身无鉴权和二次加密,mp监听端口不应暴露在公网,否则有被滥用风险。部署时应确保mp端口仅在内网或受信任网络内可访问,避免未授权使用。

❓

Q&A

singbox-multipath 是什么?它主要解决什么问题?

singbox-multipath 是一个实验性 PoC 项目,基于开源 L4 正向代理程序开发,增加了 multipath 逻辑节点,实现类似 MPTCP 的单 TCP 流聚合能力。它主要解决传统线路性能两极分化的问题:高端线路延迟低但带宽小,普通线路带宽大但延迟高,通过智能择优聚合,让新连接默认走高端线路,流量超过阈值后无缝聚合普通线路,从而在保持低延迟的同时提升下载速度。

singbox-multipath 的择优聚合策略具体是如何工作的?

每个新连接默认使用高端线路(leg0),此时延迟表现与单独使用高端线路一致。当该流的下载量或速率超过一定阈值时,会无缝聚合普通线路(leg1),提高 TCP 单线程速度,并让普通线路承担多数流量。此外,还有 leg0 流量节省选项:启用后,触发条件时仅使用 leg1,leg0 仅用于触发前的小流量,以节省 leg0 流量。

使用 singbox-multipath 需要怎样的部署拓扑?

需要在客户端和服务端都使用 singbox-multipath,且服务端作为最终唯一出站,以得到统一出口。合理拓扑为:统一由普通线路机侧出口,leg0 为经过高端线路机 L3/L4 转发连接普通线路机上的节点,leg1 为直连普通线路机上的节点。此时 leg0 和 leg1 底层流量协议都是普通线路机上的同一个节点,只是 leg0 经过高端线路机端口转发,路径更优。

singbox-multipath 的聚合加速效果如何?有实测数据吗?

在一次 speedtest 单线程测速中,小口子的专线承担了 20MB/s 的速度,大口子的直连线路承担了 60MB/s 的速度,聚合成了 80MB/s 的单 TCP 流。这表明通过无缝聚合,链路延迟体验保持高端线路水平,但大文件下载能自动达到大带宽普通线路的速度,同时普通线路承担更多流量。

singbox-multipath 有哪些使用限制或风险?

使用场景高度针对“优质线路”+“高带宽一般线路”的组合。如果普通线路本身跑不到大带宽,就不会有聚合加速效果,甚至可能使性能降级。此外,multipath 节点本身无鉴权和二次加密,mp 端口不应当暴露在公网,否则有被滥用风险。项目仅为 PoC,无技术支持。

singbox-multipath 是否必须使用同一个目标节点?

不是必须的。只要 multipath 逻辑节点能通过各 leg 最终连接到服务端的 multipath 逻辑节点的 mp 监听端口即可。例如可通过 direct+wg0 出口作为 leg0,但要注意 multipath 节点本身无鉴权和二次加密,mp 端口不应当暴露在公网,否则有被滥用风险。

🏷️

标签

➡️

继续阅读