本文详细介绍如何通过手动编译Linux内核开启BBR拥塞控制算法,提升网络传输效率。包含内核配置、模块编译及系统优化全流程,适用于主流Linux发行版。
一、BBR模块简介
BBR(Bottleneck Bandwidth and Round-trip propagation time)是Google开发的TCP拥塞控制算法,通过动态评估网络带宽和延迟显著提升传输性能。Linux内核4.9+版本已内置该模块,但需手动启用。
二、准备工作
1. 环境要求
检查当前内核版本
uname -r
安装编译依赖
sudo apt update && sudo apt install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev
2. 下载内核源码
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.93.tar.xz
tar -xvf linux-5.15.93.tar.xz
cd linux-5.15.93
三、内核编译配置
1. 复制现有配置
cp /boot/config-$(uname -r) .config
2. 启用BBR模块
make menuconfig
依次定位到:
Networking support → Networking options → TCP: advanced congestion control
勾选BBR
并设置为默认算法
3. 编译参数优化
根据CPU核心数设置并行编译
make -j$(nproc) bindeb-pkg
四、安装与配置
1. 安装新内核
sudo dpkg -i ../linux-image-.deb
sudo update-grub
2. 启用BBR算法
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
3. 验证生效
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr
五、性能调优建议
- 建议搭配
fq_codel
队列 discipline - 高延迟网络可调整
net.ipv4.tcp_notsent_lowat
参数 - 云服务器建议关闭ECN功能
常见问题解答
- Q: 编译过程报错如何处理?
- A: 检查依赖是否完整,建议使用发行版官方源安装开发包
- Q: 为什么BBR未生效?
- A: 确认内核版本≥4.9,且未启用其他拥塞控制算法
评论