BBR魔改版是什么:tsunami、暴力BBR怎么识别,值不值得装
搜BBR加速,经常看到"BBR魔改版""暴力BBR"这些名字,跟BBRplus放在一起,看着像是更强的版本。这篇不推荐也不吹,只把能从脚本源码里核对到的事实讲清楚:它们在系统里到底叫什么、怎么确认自己有没有装、为什么日常VPS没必要碰。
先说明依据:下面的内容来自 ylx2016/Linux-NetSpeed 的 tcpx.sh 源码。我没有在机器上装过魔改BBR,也没有读过 tsunami、nanqinlang 两个模块本身的源码,所以"它们的算法具体怎么改的"这部分不展开,没核对的地方都会注明。
魔改BBR在系统里叫什么
tcpx.sh 里有一段判断当前加速状态的代码,它读取 net.ipv4.tcp_congestion_control 的值,按下面的对应关系给出状态:
tcp_congestion_control 的值 |
脚本显示的状态 |
|---|---|
bbr |
BBR启动成功 |
bbr2 |
BBR2启动成功 |
tsunami |
BBR魔改版(要求 lsmod 里有 tcp_tsunami 模块,否则显示"启动失败") |
nanqinlang |
暴力BBR魔改版(要求 lsmod 里有 tcp_nanqinlang 模块,否则显示"启动失败") |
bbrplus(在BBRplus内核上) |
BBRplus启动成功 |
也就是说,所谓"BBR魔改版"就是内核里名叫 tsunami 的拥塞控制模块,"暴力BBR"就是名叫 nanqinlang 的模块。它们和 BBRplus 一样,都是第三方在BBR基础上改出来的,以模块形式加载;和内核自带的 bbr 是不同的算法名。
怎么确认自己用的是哪一种
不用跑任何脚本,三条命令就能看出来:
1 | sysctl net.ipv4.tcp_congestion_control |
- 第一条输出
bbr:用的是内核自带的BBR,不是魔改版。 - 输出
bbrplus:BBRplus,见BBR、BBR2、BBRplus、BBR3有什么区别。 - 输出
tsunami或nanqinlang:才是魔改版。 - 第二条列出的是当前内核"能用"的算法;某个算法没在列表里,就没法选它。
如果你是用别人的一键脚本装过东西,现在想知道机器到底跑的什么,看第一条命令的输出最直接。
现在的脚本还装魔改版吗
我读到的 tcpx.sh 当前菜单里,内核安装项只有自编BBR内核、BBRplus内核、BBRplus新版内核、锐速、官方内核、XanMod、Zen 这些,加速启用项是 BBR+FQ、BBR+FQ_PIE、BBR+CAKE、BBRplus+FQ、锐速等,没有看到 tsunami 或 nanqinlang 的安装入口;它们只出现在上面那段"状态识别"里,用来兼容以前装过魔改版的机器。
所以如果在别的文章里看到"选菜单里的魔改BBR",要留意那是旧版本脚本。比如常用VPS TCP加速脚本汇总里提到的 zeruns/tcp.sh,是把BBRplus、魔改版、暴力BBR放进同一个菜单的五合一脚本,用之前要先看清它当前版本的菜单。
日常VPS为什么不建议装
下面几点里,第一点来自脚本源码,后面是我的判断,没有实测:
- 依赖特定内核:脚本是先判断内核类型,再判断模块是否加载,模块没加载就直接报"启动失败"。换了内核、升级了内核而模块没跟着装,加速就失效,系统回退到默认算法。
- 收益说不清:BBR、BBR2、BBRplus、BBR3有什么区别里讲过,各版本差别没有宣传的那么大。主线内核自带的BBR、XanMod 的 BBR3 已经够用,没必要为了几个百分点的传闻去装来路更杂的模块。
- "暴力"意味着更激进:按名字和社区的说法,这类版本会更主动地占用带宽。我没有读过源码,不下结论,但在共享带宽的机器上,激进发包有可能引来对方机房的限速或被判定为滥用,这一点属于推测。
另外 Linux VPS 一键优化 TCP 网络性能与 BBR 加速脚本里也建议:生产环境优先用官方内核提供的BBR,兼容性和稳定性更有保障。
已经装了魔改版,怎么换回去
先确认当前算法,再切回内核自带的BBR(内核够新、tcp_available_congestion_control 里有 bbr 才行):
1 | sysctl net.ipv4.tcp_available_congestion_control |
确认列表里有 bbr 之后,把 /etc/sysctl.conf 里相关两行改成:
1 | net.core.default_qdisc=fq |
再执行 sysctl -p,用 sysctl net.ipv4.tcp_congestion_control 确认输出是 bbr。如果列表里没有 bbr,说明当前内核不带BBR模块,可参考已安装BBR加速内核但加速模块未加载的解决方法。想用更新的BBR3,看 XanMod内核搭配BBR3使用教程。
小结
- BBR魔改版 =
tsunami,暴力BBR =nanqinlang,都是第三方算法模块,和内核自带的bbr不是同一个东西。 - 想知道自己跑的是哪个,看
sysctl net.ipv4.tcp_congestion_control的输出。 - 日常VPS用内核自带BBR或XanMod的BBR3就行,不必专门去找魔改版。