烧饼论坛 LZ.SB
登录

【实验性】【开源】singbox-multipath:让你的高端线路和普通线路聚合为一个节点,无需分流,低延迟 + 大流量 / 大带宽同时满足

20318
  • Wu23333
    UID 7616Lv.1 初来乍到 编辑于

    常玩亚太地区,现在高端线路(例如 gen2,专线)和普通线路(例如 skyline,aws)的差价太大了:
    高端线路流量贵好几倍,而且很多口子也不大,用它下载既贵,可能也不快,但好在全天延迟稳定;
    而普通的 “xx 快乐机” 尽管直连或者用 hy2 猛蹬还是能有不错的速度,但晚高峰延迟和丢包率飙升,下载可以,但上网体验并不爽。

    尽管可以进行分流,但很难覆盖到所有的稀奇古怪网站的大文件下载,而且域名规则往往不够精细,长期维护成本不低。

    因此我们提出了 singbox-multipath,一个实验性的 singbox 改版,其增加了 multipath 逻辑节点,实现了类似 mptcp 的单 tcp 流聚合能力。但和 mptcp 的直接聚合不同,我们设计了如下的择优策略:每个新连接默认都会使用高端线路(leg0),此时其延迟表现与单独使用高端线路一致,而当这个流的下载量或者速率超过一定阈值,那就会无缝聚合进来普通线路(leg1),这种聚合能提高 tcp 单线程速度,同时由于普通线路一般口子更大,还会让普通线路承担多数流量。

    通过 singbox-multipath 无缝聚合,可以使你的上网延迟体验依旧保持高端线路的水平,但大文件下载能自动达到大口子普通线路的速度,同时让普通线路承担更多流量。自动识别,无需任何手工分流

    截屏2026-08-27 20.50.28.webp

    如上图所示,在一次 speedtest 单线程测速中,小口子的专线承担了 20MB/s 的速度,而大口子的直连线路承担了 60MB/s 的速度,其被聚合成了 80MB/s 的单 tcp 流。

    这种方案需要在客户端和服务端都使用 singbox-multipath,同时服务端需要作为最终唯一出站,以得到统一的出口。因此合理的拓扑为:统一由普通线路鸡落地,leg0 为经过高端线路机转发连接普通线路鸡,leg1 为直连普通线路鸡
    (或者如果你买了 nobrand 家的专线 + 日本 vps 二合一 DUAL 产品,那就能一台机器直接搞定)

    请注意,本项目目前仅为自用实验性工作,主要是分享思路,没有太多技术支持,也不保证绝对的开箱即用,使用有一些门槛(需要你的服务端 + 客户端都是魔改版 singbox-multipath,并手搓部分配置),若有问题可能得多找找 gpt

    项目开源,共两部分:

    1. singbox-multipath 本体:https://github.com/WuSiYu/singbox-multipath
      可直接使用,配置文档见 README

    2. luci-app-homeproxy-multipath:https://github.com/WuSiYu/luci-app-homeproxy-multipath
      homeproxy 的改版(一个 openwrt singbox 透明代理配置客户端),适配了 sing-box 1.14 和 singbox-multipath,同时加入了直观的 multipath 状态页面

    limitations:

    1. 使用场景高度针对 “小口子优质线路”+“大口子一般线路” 的组合,但如果你的普通鸡本身跑不到大带宽,那就不会有下载加速效果。不过底层是支持任意协议的,例如 hy2,一般总能找到蹬得动的快乐机
    2. 目前的聚合策略为优质线路 + 一般线路按设定带宽比例使用,依然会在优质线路上跑流量,以最大化聚合带宽(但因为口子较小,因此只会跑总流量中的少数)。如果你希望极致节省优化线路流量,可以让 gpt 改一下代码,做成如下逻辑:大流量连接逐渐完全切换到一般线路,优化线路逐渐推出
  • 收藏 1支持 3反对打赏 1
1 人打赏,共 5 何意味 5

18 条回复

  • Bieyz
    UID 3000Lv.1 初来乍到
    #1

    绑定,能兼容通用客户端就好了

  • konjacjelly
    UID 3661Lv.1 初来乍到
    #2

    bd,佬太强了

  • 别介
    UID 3554Lv.3 初识社区
    #3

    牛逼

  • hahaQQQ
    UID 3733Lv.1 初来乍到
    #4

    bd 科技佬

  • Stork
    UID 1357Lv.1 初来乍到
    #5

    绑定

  • ac
    UID 4224Lv.1 初来乍到
    #6

    梦寐以求的方式

  • hpw
    UID 5469Lv.1 初来乍到
    #7

    牛啊

  • jokerlink
    UID 3542Lv.1 初来乍到
    #8

    bd,牛逼

  • 北极熊
    UID 5892Lv.3 初识社区
    #9

    bd 牛逼

  • 何意味
    UID 3092Lv.2 新手上路
    #10

    🐮,不愧是 NB 科研担当

  • 飘云
    UID 2633Lv.1 初来乍到
    #11

    绑定。。牛逼了。

  • David
    UID 2002Lv.1 初来乍到
    #12

    支持大佬

  • silence0817
    UID 2678Lv.1 初来乍到
    #13

    这种使用情况对于大文件来说是有提升的 但对于中小文件 / api 来说短板在快乐机线路的稳定性上 如果不够稳定有可能会发生负优化

  • Wu23333
    UID 7616Lv.1 初来乍到 编辑于
    #14

    @silence0817
    这种考虑了的,普通线路断掉的话上层连接不会断掉,会通过优质线路继续通信并尝试重连普通线路;同时当检测到普通线路内容丢失(超时)的话,也会通过优质线路重传,不会有内容丢失;
    另外也可以调参数,可以只设置一个较高的速率阈值激活,不设置按传输量激活,这样中小文件 / api 就彻底只会走优质线路

  • anarkh35
    UID 2705Lv.3 初识社区
    #15

    支持

  • kingwang
    UID 7443Lv.2 新手上路
    #16

    666

  • Wu23333
    UID 7616Lv.1 初来乍到
    #17

    dd

  • jitpack
    UID 5966Lv.1 初来乍到
    #18

    bd,佬太强了

发表回复