BBR 是 Google 開發的 TCP 擁塞控制演算法,在跨境、長距離或有丟包的線路上,通常能明顯提升下載速度和穩定性。本文介紹如何在 Linux 開啟 BBR 加速,適用於 Debian、Ubuntu、CentOS Stream、Rocky Linux、AlmaLinux 等 KVM 架構的 VPS 與獨立伺服器。我們只給出透明的手動方法,不推薦使用來路不明的“一鍵指令碼”。
BBR 需要 Linux 核心 4.9 或更高版本。先檢視核心與系統版本:
uname -r
cat /etc/os-release
Debian 10+、Ubuntu 18.04+、Rocky/AlmaLinux 8+ 的預設核心都已支援 BBR。如果是 CentOS 7(核心 3.10),系統已停止維護,建議在客戶中心重灌為較新的系統,而不是強行升級核心。
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
如果可用列表中沒有 bbr,可嘗試手動載入模組:
modprobe tcp_bbr
sysctl net.ipv4.tcp_available_congestion_control
將配置寫入 /etc/sysctl.d/ 下的獨立檔案,便於以後管理和回滾。default_qdisc 設為 fq,擁塞控制設為 bbr:
echo "net.core.default_qdisc=fq" | tee /etc/sysctl.d/99-bbr.conf
echo "net.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.d/99-bbr.conf
sysctl --system
該配置在重啟後依然有效,Debian/Ubuntu 與 CentOS/Rocky/AlmaLinux 命令完全相同。
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr
第一條輸出 bbr、第二條輸出 fq 即表示開啟成功。lsmod 中出現 tcp_bbr 表示模組已載入;如果核心把 BBR 直接編譯進核心,lsmod 可能沒有輸出,但只要 sysctl 顯示 bbr 即為正常。
可以在開啟前後分別下載同一個大檔案或使用 iperf3 對比速度。若需要恢復預設的 cubic 演算法:
rm -f /etc/sysctl.d/99-bbr.conf
sysctl -w net.ipv4.tcp_congestion_control=cubic
sysctl -w net.core.default_qdisc=fq_codel
容器與宿主機共享核心,無法自行載入核心模組或修改擁塞控制。KVM 架構 VPS 和獨立伺服器可以正常開啟。
BBR 在高延遲、輕微丟包的線路上效果最明顯;若瓶頸在本地寬頻、客戶端或頻寬上限,提升會很有限。可用 mtr 排查線路丟包。
非官方修改版需要替換核心,穩定性無保障,生產環境建議使用發行版核心自帶的原版 BBR。
如仍無法解決,可提交工單聯絡 IMIDC 7×24 技術支援,請附上 uname -r 與 sysctl 輸出。