切換選單
切換偏好設定選單
切換個人選單
尚未登入
若您做出任何編輯,會公開您的 IP 位址。

搬瓦工VPS性能優化:原生BBR開啟指南

出自md5.pw
這是此頁面最近一次修訂;沒有已批准修訂。

搬瓦工 VPS 性能飛躍:原生 BBR 擁塞控制開啟與 TCP 協議棧優化指南

很多用戶在購買了搬瓦工(BandwagonHost)的高速線路(如 CN2 GIA 或 CMIN2)後,在晚高峰期間偶爾仍會感覺網絡吞吐量波動。這通常不是線路問題,而是 Linux 默認的 TCP 擁塞控制算法(Cubic 或 Reno)在高丟包或高延遲環境下表現保守導致的。

本文將指導你如何在不使用任何第三方「一鍵腳本」的情況下,安全地通過 Linux 原生命令開啟 BBR (Bottleneck Bandwidth and Round-trip propagation time),並進行 TCP 協議棧的微調,以榨乾服務器的每一滴網絡性能。

警告:雖然本文操作均為系統原生命令,但在修改內核參數前,建議在 KiwiVM 後台對 VPS 進行快照備份(Snapshot),以防萬一。

什麼是 BBR?為什麼它能加速?

傳統的 TCP 擁塞控制算法(如 Cubic)是基於「丟包」來判斷網絡擁堵的。一旦發現丟包,它就會劇烈降低發送速度。而在跨國網絡環境中,丟包是常態,這導致帶寬往往跑不滿。

Google 開發的 BBR 算法則是基於「帶寬」和「延遲」來建模。它不把丟包當作擁塞信號,而是儘可能探測物理鏈路的最大帶寬。簡單來說:BBR 就像給你的數據包裝上了智能導航,能在擁堵的網絡公路上更激進地搶占車道。

第一步:檢查 Linux 內核版本

BBR 需要 Linux Kernel 4.9 以上版本支持。搬瓦工目前的系統鏡像(CentOS 7/8, Ubuntu 20.04/22.04, Debian 10/11)默認內核均已支持,通常無需更換內核。

在終端輸入以下命令查看內核版本:

uname -r
  • 如果輸出類似 4.18.0-xxx5.4.0-xxx 或更高,說明內核符合要求。
  • 如果輸出是 3.10.x(主要是老舊的 CentOS 7),建議先重裝系統至 Debian 11 或 Ubuntu 22.04(推薦)。

第二步:開啟 BBR (無需安裝任何腳本)

我們拒絕使用來路不明的「暴力魔改 BBR 腳本」,因為它們可能會破壞系統庫文件或植入後門。Linux 原生開啟 BBR 只需要修改 /etc/sysctl.conf

1. 開啟 IP 轉發和 BBR

複製以下完整命令塊並在終端執行:

# 开启 IP 转发
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

# 设置队列算法为 fq (Fair Queuing)
echo "net.core.default_qdisc = fq" | sudo tee -a /etc/sysctl.conf

# 设置拥塞控制算法为 bbr
echo "net.ipv4.tcp_congestion_control = bbr" | sudo tee -a /etc/sysctl.conf

2. 使配置生效

執行以下命令讓剛才的修改立即生效:

sudo sysctl -p

3. 驗證是否開啟成功

執行以下命令檢查:

lsmod | grep bbr

如果輸出中包含 tcp_bbr(如下圖所示),說明 BBR 模塊已成功加載並運行。

tcp_bbr                20480  14

第三步:進階 TCP 協議棧優化 (可選)

開啟 BBR 已經能解決 90% 的問題。如果你想進一步優化高並發場景下的表現(例如建站),可以添加以下參數。

編輯配置文件:

nano /etc/sysctl.conf

在文件末尾添加以下優化參數(請仔細閱讀注釋):

# 增加 TCP 缓冲区大小,提升大文件传输速度
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 开启 TCP 窗口缩放 (Window Scaling),现代网络必备
net.ipv4.tcp_window_scaling = 1

# 开启 SYN Cookies,防止 SYN Flood 攻击
net.ipv4.tcp_syncookies = 1

# 缩短 TCP 连接的保活时间 (Keepalive),默认 7200 秒太长了
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5

# 允许更多的半连接,应对突发流量
net.ipv4.tcp_max_syn_backlog = 8192

保存並退出 (Ctrl+O, Enter, Ctrl+X),然後再次執行 sysctl -p 使其生效。

常見問題 (FAQ)

Q
網上說的「BBR Plus」、「BBR 魔改版」比原版更好嗎?
A: 不推薦在生產環境使用。 魔改版通常是不僅修改了算法參數(極度激進,可能導致斷流),還替換了非官方編譯的內核。對於搬瓦工這種本身質量就很高的線路(CN2 GIA),原生 BBR 的穩定性與速度平衡是最好的。
Q
我是 OpenVZ 架構的 VPS,能用嗎?
A: 不能。本文教程僅適用於 KVM 架構(搬瓦工目前在售的所有 VPS 均為 KVM)。OpenVZ 用戶受限於宿主機內核,無法自行開啟 BBR。
Q
開啟後速度反而變慢了?
A: 極少數情況下,特定地區的 ISP可能會對長時間高發包的 UDP/TCP 連接進行 QOS 限制。如果發現變慢,只需將 sysctl.conf 中的 bbr 改回 cubic 並執行 sysctl -p 即可復原。

Created by AlexLynn for md5.pw Community.