BBR (Bottleneck Bandwidth and Round-trip propagation time) 是谷歌在 2016 年发布的一套拥塞控制算法,尤其适合在存在一定丢包率的弱网环境下使用。BBR 目前已迭代更新到 v3 版本,谷歌称 BBRv3 表现出色。
想尝鲜的朋友可以试试编译安装 BBR v3,在这里记录下安装编译过程,有需要可以参考一下。
「Debian 12 编译 Google TCP BBR v3:https://v2rayn.uuk.app/75」环境:DigitalOcean VPS + Debian12
首先安装编译所需依赖包和一些常用软件包:
apt -y update && apt -y install build-essential libncurses-dev libssl-dev libelf-dev bison bc flex rsync debhelper dwarves git screen
接着获取 BBR v3 源码:
「Debian 12 编译 Google TCP BBR v3:https://v2rayn.uuk.app/75」git clone -o google-bbr -b v3 https://github.com/google/bbr.git && cd bbr/
确保拉取成功,没有出现 fatal: fetch-pack: invalid index-pack output ... 类似错误
复制系统默认内核配置文件:
「Debian 12 编译 Google TCP BBR v3:https://v2rayn.uuk.app/75」cp /boot/config-$(uname -r) .config
执行如下命令保留旧 .config 文件中所有选项,并将新选项设置为推荐(即默认)值:
make olddefconfig
打开配置菜单(执行此命令 ssh 窗口不能太小,否则报错):
make menuconfig
依次进入 Networking support -> Networking options -> TCP: advanced congestion control,把 BBR TCP 选项设置为编译成模块:
「Debian 12 编译 Google TCP BBR v3:https://v2rayn.uuk.app/75」可以看到 BBR 选项有两种编译方式:M 是构建为模块,*是直接构建,这里 (空格) 选择构建到内核,使编译出来的内核默认开启 bbr v3
建议关闭DEBUG功能,可节约编译时间和减少硬盘占用,选择 Exit 返回,然后依次进入 Kernel hacking -> Compile-time checks and compiler options -> Debug information (Disable debug information),选择按空格设置为 Disable debug information:
然后按 Exit 一路返回保存退出:
编译前建议增加点 swap 以防内存不足,并且编译时间可能比较长,建议开 screen,下面开始编译并创建 deb 软件包:
screen -S bbrv3
make bindeb-pkg -j$(nproc)
2C2G 的 VPS 经过几个小时编译完成:
然后在上级目录安装新 bbr v3 内核并重启:
cd ..
sudo apt install ./linux-image-6.4.0+_6.4.0-g6e321d1c986a-1_amd64.deb
sudo apt install ./linux-headers-6.4.0+_6.4.0-g6e321d1c986a-1_amd64.deb
systemctl reboot
重启完成执行命令查看内核版本:
uname -mrs
可能返回版本信息:
Linux 6.4.0+ x86_64
查看 tcp_bbr 模块信息:
modinfo tcp_bbr
可以看到 bbr 版本是 3:
查看当前默认 TCP 拥塞控制算法:
sysctl net.ipv4.tcp_congestion_control
返回信息:
net.ipv4.tcp_congestion_control = bbr
至此 BBR v3 安装成功,因为是 builtin,无需另外配置即可生效?并且 lsmod | grep bbr 无返回信息。
若是选择模块编译,还需要执行下面命令配置启用:
启用 BBRv3:
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf sysctl -p
执行下面的命令检查 BBR 模块是否启动成功:
lsmod | grep bbr
如有类似回显说明正常:
tcp_bbr 16384 87
如果是自建节点,可以试试效果。
任何服务、机场均有跑路风险,请注意防范!备用节点参考:大哥云官网、万城专线官网、飞机云官网、搬瓦工JMS、极客云官网……
本文已于 2024-03-28 修改更新,您的宝贵建议请在文章下方评论区留言反馈,谢谢。
Comments:0