BBR(Bottleneck Bandwidth and Round-trip propagation time)是Google开发的TCP拥塞控制算法。相比传统的Cubic算法,BBR能更好地利用带宽,降低延迟,在高丢包率的网络环境下效果尤为明显。对于搬瓦工VPS来说,开启BBR可以显著改善中美之间的网络传输速度。
Tip: 搬瓦工VPS使用KVM虚拟化,完全支持BBR。OpenVZ虚拟化不支持修改内核参数,无法使用BBR。
现代Linux发行版(Ubuntu 20.04+、Debian 11+、CentOS 8+)的内核已内置BBR支持,部分发行版可能已默认开启:
# 查看内核版本(需要4.9+才支持BBR)
uname -r
# 查看当前使用的拥塞控制算法
sysctl net.ipv4.tcp_congestion_control
# 查看可用的拥塞控制算法
sysctl net.ipv4.tcp_available_congestion_control
# 查看BBR模块是否已加载
lsmod | grep bbr
如果当前未启用BBR,通过以下命令开启:
# 加载BBR模块
modprobe tcp_bbr
# 设置BBR为默认拥塞控制算法
cat >> /etc/sysctl.d/99-bbr.conf << 'EOF'
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
EOF
# 使配置生效
sysctl -p /etc/sysctl.d/99-bbr.conf
# 验证BBR已启用
sysctl net.ipv4.tcp_congestion_control
# 输出应为:net.ipv4.tcp_congestion_control = bbr
lsmod | grep bbr
# 应看到 tcp_bbr 模块
以上配置重启后依然生效,无需其他额外操作。
BBR有多个版本,各版本的区别:
| 版本 | 内核要求 | 特点 |
|---|---|---|
| BBR v1 | 4.9+ | 初代版本,大幅提升带宽利用率 |
| BBR v2 | 5.x+(补丁) | 改进公平性,减少对其他连接的影响 |
| BBR v3 | 6.x+ | 最新版本,已合入主线内核,更好的性能和公平性 |
搬瓦工VPS使用Ubuntu 22.04或更新系统时,默认内核为5.15+,支持BBR v1。如果需要BBR v3,需要升级到6.x内核:
# Ubuntu安装最新HWE内核(获取更新内核)
apt install linux-generic-hwe-22.04 -y
# 安装后重启
reboot
# 重启后确认内核版本
uname -r
BBR配合以下内核参数可以获得更好的效果:
cat >> /etc/sysctl.d/99-bbr.conf << 'EOF'
# BBR配置
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# 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连接优化
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_mtu_probing = 1
EOF
sysctl -p /etc/sysctl.d/99-bbr.conf
更多内核参数优化请参考Linux内核参数优化详解。
开启BBR前后可以通过以下方式对比效果:
# 使用speedtest-cli测速
apt install speedtest-cli -y
speedtest-cli
# 使用iperf3测试吞吐量(需要另一台服务器配合)
apt install iperf3 -y
# 服务端
iperf3 -s
# 客户端
iperf3 -c your_vps_ip -t 30
# 下载测试文件测速
wget -O /dev/null http://speedtest.tele2.net/100MB.zip
# 查看当前TCP连接使用的拥塞控制算法
ss -tinp | grep bbr
BBR在不同网络环境下的提升效果:
对于搬瓦工VPS的典型使用场景(中国用户访问美国/日本机房),BBR通常能带来明显的速度提升。
搬瓦工在KiwiVM控制面板中也提供了BBR开关:
通过面板开启的BBR效果与命令行配置相同,但命令行方式更灵活,可以配合其他内核参数一起调优。
# 如果BBR无法启用,检查:
# 1. 确认内核版本>=4.9
uname -r
# 2. 确认BBR模块可用
modprobe tcp_bbr
echo $? # 返回0表示成功
# 3. 确认不是OpenVZ虚拟化
cat /proc/version
# 或
systemd-detect-virt
# 4. 确认sysctl配置正确
sysctl -a | grep congestion
sysctl -a | grep qdisc
# 5. 如果是自定义内核,确认编译时包含了BBR模块
cat /boot/config-$(uname -r) | grep BBR
BBR是VPS网络优化中效果最明显且最简单的方案。配合内核参数优化和DDoS防护可以构建更稳定高效的网络环境。
Tip: 更多教程请查看新手教程。