在 Ubuntu 22.04 上启用 BBR 加速只需修改内核参数,无需更换内核。该操作适用于所有基于 KVM 架构的云服务器,主要风险在于部分虚拟化环境可能不支持修改内核参数。
先说结论:Ubuntu 22.04 默认内核支持 BBR,直接修改 sysctl 配置即可生效。
- 适合:高延迟或存在丢包的网络环境
- 先准备:确认拥有 root 权限且虚拟化支持内核参数调整
- 验收:使用 sysctl 命令查看当前拥塞控制算法
命令速用版
如果确认服务器架构支持,可直接执行以下命令启用 BBR 并持久化配置。
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p为什么会这样
BBR 是 Linux 内核内置的拥塞控制算法,不需要额外安装软件。Ubuntu 22.04 默认搭载 Linux 5.15 内核,该版本已原生集成 BBR 模块。启用后内核会主动探测带宽和往返时间,从而在高延迟网络中维持较高的吞吐量。
分步处理
按顺序执行以下步骤,确保配置正确且可回滚。
1. 确认内核版本
执行命令 uname -r。Ubuntu 22.04 通常显示 5.15 及以上版本。如果版本过低,可能不支持 BBR,需联系服务商升级内核。
2. 备份配置文件
修改前备份 sysctl 配置,防止配置错误导致网络异常。cp /etc/sysctl.conf /etc/sysctl.conf.bak
3. 写入配置
将 BBR 相关参数写入配置文件。使用文本编辑器或 echo 命令追加内容到 /etc/sysctl.conf 末尾。
4. 应用配置
执行 sysctl -p 使配置立即生效。如果命令报错,检查配置文件语法是否正确。
怎么验证是否生效
执行以下命令检查当前 TCP 拥塞控制算法。
sysctl net.ipv4.tcp_congestion_control如果输出结果包含 bbr,说明启用成功。此外,使用 ss -i 查看具体连接状态,确认 cong_alg 字段显示为 bbr。
常见坑
部分低成本 VPS 使用 OpenVZ 等虚拟化技术,可能禁止用户修改内核参数。如果在执行 sysctl -p 时提示 Permission denied 或 Read-only file system,说明当前环境不支持,需更换为 KVM 架构实例。另外,某些云服务商的安全组或防火墙策略可能干扰 TCP 选项,导致 BBR 效果不明显。
常见问题
启用 BBR 需要重启服务器吗?
不需要。执行 sysctl -p 后配置立即生效,无需重启系统。
BBR 能提升多少网速?
公开资料中没有看到可靠的量化数据。实际效果取决于网络链路质量、带宽大小和对端服务器性能。
如何回滚到默认设置?
恢复备份的配置文件并执行 sysctl -p,或将 congestion_control 参数改回 cubic 后重新加载。
参考来源
- Ubuntu Wiki, JammyJellyfish/ReleaseNotes, https://wiki.ubuntu.com/JammyJellyfish/ReleaseNotes
- The Linux Kernel Documentation, BBR Congestion Control, https://www.kernel.org/doc/html/latest/networking/bbr.html