Ubuntu 22.04 开启 BBR 加速只需修改 sysctl 配置,适用于跨境高延迟网络场景,风险在于部分 VPS 架构不支持内核模块加载。
先说结论:BBR 是 Linux 内核自带的拥塞控制算法,Ubuntu 22.04 默认内核已支持,无需额外安装脚本。
- 适合:KVM 架构 VPS、跨境高延迟 TCP 业务
- 先准备:确认内核版本大于 4.9、拥有 root 权限
- 验收:检查 sysctl 参数是否为 bbr
命令速用版
直接执行以下命令可临时开启 BBR,重启后失效,适合快速测试效果。
sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl -w net.core.default_qdisc=fq若需永久生效,需写入配置文件,详见分步处理章节。
为什么会这样
BBR 通过估算带宽和往返时间来控制发送速率,而非依赖丢包判断拥塞。
传统 TCP 算法在跨境高丢包场景下会误判拥塞并降低发送速度,BBR 能更充分利用可用带宽。Ubuntu 22.04 默认搭载 Linux 5.15 内核,已内置 BBR 模块,无需编译内核即可启用。
分步处理
按顺序执行以下操作,确保配置永久生效且可回滚。
1. 确认内核支持
执行命令检查内核版本,低于 4.9 无法使用 BBR。
uname -rUbuntu 22.04 通常显示 5.15.x,若显示低于 4.9 需联系服务商更换内核。
2. 修改配置文件
编辑/etc/sysctl.conf 文件,添加或修改以下两行配置。
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr使用 sed 命令可直接追加,避免手动编辑错误。
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf3. 应用配置
执行 sysctl -p 使配置立即生效,无需重启服务器。
sysctl -p怎么验证是否生效
通过 sysctl 命令查看当前生效的拥塞控制算法。
sysctl net.ipv4.tcp_congestion_control输出结果包含 bbr 即表示成功,例如 net.ipv4.tcp_congestion_control = bbr。
也可使用 ss 命令查看现有连接的 congestion 状态。
ss -tan | head -n 5部分客户端连接信息中会显示 bbr 字样,表明该连接正在使用 BBR 算法。
常见坑
部分 VPS 服务商使用 OpenVZ 等容器架构,不支持修改内核参数。
若执行 sysctl -p 报错 permission denied,说明当前架构不支持,需更换 KVM 架构实例。
已有连接不会立即切换算法,需新建连接才能体现效果。
部分服务商在网络层限制 QoS,开启 BBR 后吞吐量无明显提升属于正常现象。
常见问题
开启 BBR 能降低 Ping 值吗
不能,BBR 主要提升吞吐量,不改变路由路径。
Ping 值取决于物理距离和路由节点,BBR 仅优化数据传输效率。
BBR 对 UDP 协议有效吗
无效,BBR 仅针对 TCP 协议生效。
UDP 业务需通过其他内核参数调优,如调整缓冲区大小。
配置后需要重启服务器吗
不需要,执行 sysctl -p 即可立即生效。
重启后配置会自动加载,因为已写入 sysctl.conf 文件。