服务器设置和教程 · 14 7 月, 2025

於 Linux 系統啟用 BBR 擁塞控制演算法以優化網路傳輸效能

在追求高效能網路服務的應用場景中,例如部署於香港 VPS香港雲端伺服器 上的服務,啟用 Google 開發的 BBR (Bottleneck Bandwidth and Round-trip propagation time) TCP 擁塞控制演算法,能顯著提升網路吞吐量並降低傳輸延遲。本指南提供完整的 BBR 啟用流程。

必要條件與核心版本確認

BBR 演算法要求 Linux 核心版本需 ≥ 4.9。請執行以下指令確認當前核心版本:

bash
uname -r

若版本低於 4.9,則需進行核心升級。

步驟 1:升級 Linux 核心 (若需要)

  • Debian / Ubuntu 系統:

    bash
    sudo apt update
    sudo apt install --install-recommends linux-generic-hwe-22.04 # 範例適用於 Ubuntu 22.04 LTS,請依實際版本調整
  • CentOS / RHEL 系統:

    bash
    sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-5.el7.elrepo.noarch.rpm # 依發行版選用正確的 elrepo-release 套件
    sudo yum --enablerepo=elrepo-kernel install kernel-ml -y

步驟 2:啟用 BBR 演算法

  1. 修改系統參數設定檔:
    使用文字編輯器(如 nano)開啟 /etc/sysctl.conf

    bash
    sudo nano /etc/sysctl.conf

    在檔案末尾新增以下兩行參數設定:

    text
    net.core.default_qdisc = fq
    net.ipv4.tcp_congestion_control = bbr

    儲存並關閉檔案。

  2. 載入並套用新設定:
    執行以下指令使修改立即生效:

    bash
    sudo sysctl -p

步驟 3:驗證 BBR 啟用狀態

執行以下指令確認 BBR 已成功設定為預設擁塞控制演算法,且核心模組已載入:

bash
# 檢查當前使用的 TCP 擁塞控制演算法
sysctl net.ipv4.tcp_congestion_control

# 檢查 bbr 核心模組是否已載入
lsmod | grep bbr

預期輸出 net.ipv4.tcp_congestion_control = bbr 且 lsmod 指令應列出 tcp_bbr 模組。

步驟 4:進階網路參數調優 (可選)

為進一步提升網路效能,可考慮在 /etc/sysctl.conf 中追加以下參數:

text
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864

修改後同樣需執行 sudo sysctl -p 套用設定。

重要注意事項

  1. 系統重啟建議: 若進行了核心升級,強烈建議在升級完成後重新啟動系統 (sudo reboot),以確保新核心及 BBR 模組正確載入。

  2. 虛擬化架構限制: BBR 需要核心層級的 TCP 堆疊控制權。因此,在 OpenVZ 這類共用核心 (Container-based) 的虛擬化架構下無法正常運作。在選購香港 VPS 香港雲端伺服器 時,若需使用 BBR,請確認供應商提供的是 KVM、Xen 或 VMware 等完整虛擬化 (Hardware Virtualization) 環境。

  3. 效能測試工具: 啟用 BBR 後,可使用 speedtest-cli 或 iperf3 等工具進行網路速度測試,以驗證效能提升效果。

常見問題排除 (Q&A)

問題現象解決方案
執行 sudo sysctl -p 報錯檢查設定檔路徑是否正確,可明確指定路徑:sudo sysctl -p /etc/sysctl.conf
BBR 未生效1. 再次確認核心版本 ≥ 4.9 (uname -r)。
2. 執行 `lsmod
grep bbr確認tcp_bbr` 模組已載入。