前段时间Google发布了BBR的v3版本,想尝鲜的朋友可以试试~ 我在这里记录下安装步骤供参考。
系统我使用的是Debian12,首先安装编译所需的依赖包和一些常用的软件包:
apt -y update apt -y install build-essential libncurses-dev libssl-dev libelf-dev bison bc flex rsync debhelper dwarves git
获取源码:
git clone -b v3 https://github.com/google/bbr.git cd bbr/
复制系统默认的内核配置文件:
cp /boot/config-$(uname -r) .config
执行如下命令保留旧.config文件中的所有选项,并将新选项设置为推荐(即默认)值:
make olddefconfig
打开配置菜单:
make menuconfig
依次进入Networking support->Networking options->TCP: advanced congestion control->,把BBR TCP选项设置为编译成模块:
为节约编译时间和减少硬盘占用,建议关闭DEBUG功能,依次进入Kernel hacking->Compile-time checks and compiler options->Debug information (Disable debug information)->,按下图所示设置为Disable debug information:
编译并创建deb软件包:
make bindeb-pkg -j$(nproc)
编译完成后在上级目录安装新的内核并重启:
cd .. apt install ./linux-image-6.4.0+_6.4.0-g6e321d1c986a-1_amd64.deb apt install ./linux-headers-6.4.0+_6.4.0-g6e321d1c986a-1_amd64.deb systemctl reboot
查看tcp_bbr模块信息:
modinfo tcp_bbr
可以看到版本是3:
启用BBRv3:
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf sysctl -p
执行下面的命令检查BBR模块是否启动成功:
lsmod
如有类似回显说明正常:
666,效果咋样?
没有具体测试过。。
make: *** No rule to make target ‘olddefconfig’. Stop.
make olddefconfig执行后跳出错误make: *** No rule to make target ‘olddefconfig’. Stop.
试试:
cd bbr/
make distclean
cp config.gce .config
make olddefconfig
make menuconfig
编译时报错:No rule to make target ‘debian/certs/debian-uefi-certs.pem’,解决办法:https://www.youtube.com/watch?v=7G3UkugVhOw
debian12的原版内核.config里面默认没有启用这个功能了,你应该用的是debian11吧。
对,11
源自带内核升级都会挂掉的人,不敢玩内核
有vnc不怕,挂了在grub选择旧的内核引导就行,或者服务器有快照功能打个快照即可~
出现的报错
1.’debian/certs/debian-uefi-certs.pem’
编辑源码目录的 .config 文件
CONFIG_SYSTEM_TRUSTED_KEYS=”debian/certs/debian-uefi-certs.pem”# 找到
CONFIG_SYSTEM_TRUSTED_KEYS=”” # 改为空值
2.lz4编译时有个报错是需要安装这个包
apt install lz4
成品 我是用 debian10 先安装了cloud内核,在进行编译的时候,复制了cloud内核的配置文件,按理说这也应该算是
cloud BBR V3 内核吧😂
编译好的敢用的拿去,后果自负哈
https://mega.nz/folder/AIllHDpZ#JnVNSQ2-_wbwpHLJxN8VxQ