BBRplus内核版本不支持怎么办:找对维护中的分支

装BBRplus的时候,经常会遇到脚本运行到装内核这一步卡住,报"内核版本不支持",或者干脆下载失败、找不到对应的内核包。很多人第一反应是自己系统版本太新了,BBRplus这个东西已经过时用不了了,其实不完全是这样,问题更多出在用的脚本指向了哪个项目,跟"BBRplus本身能不能用"是两回事。这篇跟站内另外两篇容易搞混的文章区别一下:如果你是纠结BBR系列该选哪个版本,看BBR、BBR2、BBRplus、BBR3有什么区别;如果报错是"headers未匹配"、提示某个下载链接直接404,看安装BBR时内核headers未匹配的原因和解决方法;这篇专门讲"内核版本号对不上、找不到匹配内核"这一类报错。

为什么会遇到内核版本不支持

BBRplus最早是网友在dog250对BBR做的修正代码基础上编译打包出来的,最早的版本(也是流传最广、被各种教程转载最多的版本)只支持4.14版本内核,后来陆续加到支持4.14/4.19/5.4几个固定版本,再往后加了5.9。这个项目后来被官方标注为archived(存档,不再更新),也就是说,如果你现在用的一键脚本、或者照抄的某篇教程里的安装命令,指向的还是这个最早的老项目,那你系统上跑着的内核版本(现在主流发行版默认内核基本都在6.x左右)铁定对不上,报错是必然的,不是你操作有问题。

很多流传已久的教程、甚至一些一键脚本合集,因为年代久远没有及时更新指向的仓库地址,用户跑起来自然会撞上这个问题。

关键:换成还在持续维护的分支

原始项目虽然停更了,但有开发者一直在维护后续的编译版本,持续跟进新内核。目前比较活跃的是UJX6N维护的bbrplus-6.x_stable这个仓库,专门编译适配6.x系列内核的BBRplus版本,Release记录显示已经更新到支持6.7.9版本内核,而且明确标注了适配的系统范围:CentOS 7/Stream-8、Rocky/AlmaLinux 8、Debian 11以上、Ubuntu 20以上。

也就是说,遇到"内核版本不支持"这个报错,第一步不是放弃BBRplus,而是先去确认一下你用的脚本/教程,指向的是哪个仓库——如果是老的cx9208原始仓库,换成UJX6N维护的这个分支,大概率就能解决。

具体怎么排查和处理

先确认自己当前的系统版本和内核版本:

1
2
cat /etc/os-release
uname -r

把这两个信息记下来,对照UJX6N仓库Release页面里每个版本标注的"适配系统"说明(每个Release下面都会写清楚支持哪些发行版和版本号),找到匹配你系统的那个Release版本。

UJX6N的Release包里区分了几类包:

  • Required:基础必需包,云服务器一般装这个就够了
  • Optional:可选包,不确定用途的话不用装
  • Source:源码包,只有想自己编译内核才需要,普通安装用不上

正常情况下只需要下载对应版本的Required包,按Release页面里给出的安装命令执行就行,具体的包名和下载链接每次发布都会变,建议直接去仓库的Releases页面找最新的、并且明确标注支持你内核版本的那一条,不要死记某个固定链接(固定链接过一段时间大概率会失效,这也是很多教程写的命令过时报错的原因之一)。

如果确实找不到匹配你内核版本的Release,说明这个内核版本目前还没人编译对应版本,这种情况下有两个选择:一是把系统内核降级/切换到UJX6N已经支持的某个具体版本(比如Debian可以手动装一个稍旧一点、但在支持列表里的内核版本);二是放弃BBRplus,改用不需要单独编译内核的方案,比如原版BBR(Linux 4.9以上内核直接支持,不需要额外装内核)或者XanMod内核自带的BBR3,参考XanMod内核搭配BBR3使用教程,这两个方案对内核版本的要求都宽松很多,不会遇到"版本号对不上"这类问题。

装完之后的验证

不管最终用的是哪个版本、哪个分支,装完重启后验证方法都一样:

1
uname -r

确认显示的内核版本号是不是刚才装的那个(版本号里通常会带"bbrplus"字样),确认切换成功。再检查模块有没有正常加载:

1
lsmod | grep bbr

看到tcp_bbrplus这类模块名,说明已经启用成功。如果这两步都正常,但用起来感觉速度提升不明显,不是这篇要讲的问题范围了,可以参考为什么开了BBR网速却感觉一点没提升排查。

小结

BBRplus内核版本不支持这个报错,本质上是用的教程/脚本太旧,指向的项目已经停止维护,不是这个方案本身过时淘汰了。先查清楚自己的系统和内核版本,去还在持续更新的分支(比如UJX6N维护的这个)里找匹配的Release,大概率能解决。实在找不到匹配版本,再考虑换成对内核版本要求更宽松的BBR原版或者BBR3,不用非BBRplus不可。