幫助中心

伺服器、網路和帳戶的分步教程。

網路與 IP

Linux VPS 開啟 TCP BBR 擁塞控制教程(Debian、Ubuntu、CentOS、Rocky Linux)

Linux VPS 開啟 TCP BBR 擁塞控制教程(Debian、Ubuntu、CentOS、Rocky Linux)

TCP BBR 是 Google 開發的擁塞控制演算法,自 Linux 核心 4.9 起內建。在高延遲的長距離線路上,例如從 JUSTG 約翰內斯堡或莫斯科機房的伺服器傳送資料到亞洲使用者,預設的 CUBIC 演算法只要遇到少量丟包就會大幅降速;BBR 則會估算路徑的實際頻寬與往返時間,通常能讓網站、下載、API 與檔案傳輸的 TCP 傳輸速度明顯提升。本文說明如何在 Debian、Ubuntu、CentOS、Rocky Linux 與 AlmaLinux 上用 sysctl 原生開啟 TCP BBR,並驗證是否生效。

為什麼 TCP BBR 能改善長距離線路

CUBIC 這類基於丟包的演算法,會把每一次丟包視為擁塞並降低傳送速率。在延遲 150-300 毫秒的跨洲線路上,每次降速後要很久才能恢復,因此單個連線往往跑不滿伺服器的頻寬。BBR 會對瓶頸頻寬與最小往返時間建立模型,並據此控制傳送資料包的節奏。它只改變伺服器端的傳送方式,訪客端不需要安裝任何東西。

步驟 1:檢查核心版本與虛擬化型別

以 root(或具有 sudo 許可權的使用者)登入 VPS,確認核心版本。BBR 需要 4.9 以上的核心;Debian 11/12、Ubuntu 20.04/22.04/24.04、Rocky Linux 8/9、AlmaLinux 8/9 等當前版本都符合。

uname -r
systemd-detect-virt

若 systemd-detect-virt 顯示 kvm、xen 或 vmware,代表你可以自行控制核心,可以繼續操作。OpenVZ 或 LXC 容器使用的是宿主機核心,無法在容器內開啟 BBR。

步驟 2:確認系統支援 BBR 模組

列出核心可用的擁塞控制演算法;如果列表中沒有 bbr,先載入模組:

sysctl net.ipv4.tcp_available_congestion_control
modprobe tcp_bbr
sysctl net.ipv4.tcp_available_congestion_control

常見的輸出為 net.ipv4.tcp_available_congestion_control = reno cubic bbr。如果 modprobe 提示找不到模組,表示核心太舊,請參考步驟 6。

步驟 3:用 sysctl 開啟 TCP BBR

BBR 搭配 fq(Fair Queue)佇列排程效果最好。建議建立獨立的配置檔案,重啟後仍會生效,日後也方便移除。Debian/Ubuntu 與 CentOS/Rocky/AlmaLinux 命令完全相同:

printf 'net.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr\n' | sudo tee /etc/sysctl.d/99-bbr.conf
sudo sysctl --system

設定會立即應用到新的連線,不需要重啟;已經建立的連線要重新連線後才會改用 BBR。

步驟 4:驗證 BBR 是否已啟用

執行以下命令檢查:

sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr

正常應看到 net.ipv4.tcp_congestion_control = bbr 與 net.core.default_qdisc = fq。lsmod 通常會出現含有 tcp_bbr 的一行;但部分核心把 BBR 直接編譯進核心而非模組,只要 sysctl 顯示 bbr,lsmod 沒有輸出也屬正常。想檢視實際連線是否使用 BBR,可執行 ss -ti,在輸出中尋找 bbr。

步驟 5:測試實際效果

建議從距離伺服器較遠的客戶端比較開啟前後的速度,例如用亞洲的電腦測試約翰內斯堡的伺服器。可使用 iperf3:

# Debian / Ubuntu
apt install -y iperf3
# CentOS / Rocky / AlmaLinux
dnf install -y iperf3

# 在伺服器上
iperf3 -s
# 在客戶端(請換成你的伺服器 IP)
iperf3 -c 203.0.113.10 -t 30 -R

測試期間才在防火牆開放 TCP 5201 連接埠,測完記得關閉。結果會受時段與客戶端網路影響,建議多測幾次再比較。

若要改回預設演算法:刪除 /etc/sysctl.d/99-bbr.conf,再執行 sysctl -w net.ipv4.tcp_congestion_control=cubic 與 sysctl --system。

步驟 6:非常舊的核心(舊方法)

CentOS 6/7(核心 2.6/3.10)或 Debian 8 等舊系統沒有內建 BBR。過去社群常用 Teddysun 製作的一鍵指令碼,它會安裝較新的主線核心並同時開啟 BBR,且從不支援 OpenVZ。現在我們只把這種做法視為舊方法:在已停止維護的發行版上更換核心,可能導致 VPS 無法開機,也收不到安全更新。較安全的方式是先備份資料,再從客戶中心把 VPS 重灌為當前的作業系統版本,然後按照步驟 1-4 操作。

更換核心前務必先備份。如果更換核心後 VPS 無法開機,可能需要重新安裝作業系統。

常見問題

OpenVZ 可以開啟 TCP BBR 嗎?

不行。OpenVZ 等容器平臺與宿主機共用核心,無法在虛擬機器內部修改擁塞控制。JUSTG 雲伺服器採用全虛擬化,可以正常按照步驟 1-4 設定。

BBR 能加快 UDP 流量嗎?

不能。BBR 隻影響伺服器發出的 TCP 連線,UDP 服務以及伺服器接收的流量不會改變。

客戶端也要開啟 BBR 嗎?

不需要。只要在傳送端開啟即可;對網站或下載伺服器來說,傳送端就是你的 VPS。

如果按照本文操作後仍無法解決,請提交工單,JUSTG 技術支援團隊會協助你處理。

這篇文章有幫助嗎?
幫助中心
網路與 IP VPS 網速測試:用 iperf3、Speedtest CLI 與 curl 測試伺服器頻寬與延遲 完整的 VPS 網速測試要回答兩個問題:伺服器能收發多少頻寬,以及資料包在伺服器與使用者之間傳輸要多久。本文說明如何在執行 Debian/Ubuntu 或 CentOS/Rocky/AlmaLinux 的 JUSTG 雲伺服器或獨立伺服器上,使用 iperf3… 網路與 IP Linux 新增 IP 地址教程:在 Ubuntu、Debian、CentOS 與 Rocky Linux 綁定額外 IPv4 若您的 JUSTG 雲伺服器已新增額外 IP,或您為 JUSTG 獨立伺服器申請了 /24 IP 段,必須先在 Linux 新增 IP 地址,該 IP 才能響應流量。本文說明如何用 ip addr add 臨時綁定額外 IPv4、如何在 Ubuntu 用… 網路與 IP 什麼是原生 IP?如何查詢伺服器 IP 的歸屬地 原生 IP 是指註冊在伺服器實際所在國家網路名下的 IP 地址,因此 whois 記錄和 IP 地理位置資料庫顯示的都是這個國家。用 whois 加一次地理位置查詢,一分鐘就能查清任意伺服器 IP 的歸屬地,方法見下文。JUSTG 東京和首爾雲伺服器均配備日本、韓國原生… 網路與 IP 如何檢測 VPS 能否解鎖 Netflix、Disney+ 和 AI 服務 流媒體和 AI 服務根據伺服器的公網 IP 判斷你所在的位置,因此檢測 VPS 是否“解鎖”,先確認 IP 所屬國家,再直接在伺服器上逐項測試。本文介紹 Windows Server(透過 RDP 在瀏覽器中測試)和 Linux(用 curl 測試)兩種方法,並附上 JUSTG…
AlipayUnionPayVISAMastercardPayPalUSDTstripe