1. 查看当前状态
用 root 登录服务器(见《用 SSH 登录 VPS》),运行:
sysctl net.ipv4.tcp_congestion_control
sysctl net.ipv4.tcp_available_congestion_control
如果第一行已经是 bbr,说明 BBR 已经开着,不用再做什么。
2. 开启 BBR
cat > /etc/sysctl.d/99-bbr.conf <<'EOF'
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
EOF
sysctl --system
我们提供的所有系统(Ubuntu 26.04、Ubuntu 24.04、Ubuntu 22.04、Debian 13、Debian 12、AlmaLinux 9、Rocky Linux 9)内核都自带 BBR,上面的命令都适用。不需要重启,重启后设置仍然有效。
3. 确认已生效
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
显示 bbr 和 fq 就是开好了。之后新建的连接都会用 BBR;长期运行的程序(比如代理服务)重启一下,它的连接才会用上。
4. BBR 影响什么
- BBR 控制服务器发送 TCP 数据的方式,影响的是从服务器下载的速度。UDP 流量不受影响。
- 套餐的端口速率是整台服务器的上限,上下行相同。单个 TCP 连接常常跑不到上限,多个连接一起会更接近。测速时可以换几个测速点,并用多线程下载工具,例如
aria2c -x 8 -s 8 URL。
不要用会替换内核或系统镜像的“一键脚本”。在客户区更换 IP 时,新地址是通过 cloud-init 写进系统的;换了内核或镜像的系统,新地址可能写不进去。
5. 关闭 BBR
rm /etc/sysctl.d/99-bbr.conf
reboot
重启后恢复系统默认设置。重装系统后也是默认设置,需要的话重装后再执行一次第 2 步。