3条命令解决跨境VPS卡成狗的问题,亲测有效
1Gbps的海外VPS实测只有110kbps?不是机器烂,是TCP拥塞算法cubic在跨境链路上反复降速。3步开启BBR,网速直接飙到20Mbps+。
我买了一台海外 VPS,用来跑一些需要访问外网的服务。
商家标的是 1Gbps 端口,听起来很够用。
结果实际体验很离谱:
我先用 Fast.com 测了一下。
结果只有:110kbps。
110kbps 是什么概念?差不多是 2005 年拨号上网的体验。
这篇记录一下完整排查过程。如果你的 VPS 也是"配置看着不差,但实际网速很慢",可以按这个思路先查一遍。
一、先判断:是不是 VPS 本身太烂
遇到网速慢,第一反应不要直接改参数。
先确认一件事:到底是 VPS 本身带宽不行,还是你到 VPS 的链路不行。
我先在 VPS 上测了两个东西。
1. 测 VPS 到 Google 的连接时间
# 测试延迟
ping -c 4 www.google.com
# 测试网页响应时间
curl -o /dev/null -s -w "Time Connect: %{time_connect}
Time TTFB: %{time_starttransfer}
Total Time: %{time_total}
" https://www.google.com结果里 Total Time 大概是 0.05s。
这说明 VPS 访问 Google 本身没问题。换句话说,Google 没慢,VPS 出去也没慢。

2. 测 VPS 自己的带宽上限
然后继续测 VPS 出口带宽:
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x speedtest-cli
./speedtest-cli结果能跑到 300Mbps+。
这说明 VPS 自身带宽也不是瓶颈。

到这里基本可以判断:
问题不在 VPS 本身,而在我访问 VPS 这条链路上。
二、定位问题:cubic 在跨境链路上拖了后腿
接下来我查了一下 TCP 拥塞控制算法:
sysctl net.ipv4.tcp_congestion_control输出是:
net.ipv4.tcp_congestion_control = cubic问题大概率就在这里。
cubic 是传统的 TCP 拥塞控制算法。 它的核心逻辑比较保守:一旦检测到丢包,就认为网络拥塞,然后立刻降速。
这个逻辑在普通网络里没问题。但跨境链路经常有高延迟、抖动、偶发丢包。cubic 会把这些丢包当成拥塞信号,于是反复减速。
最后表现就是:VPS 明明带宽不差,但你实际用起来只有几百 kbps。
三、解决思路:把 cubic 换成 BBR
BBR 是 Google 提出的 TCP 拥塞控制算法。
它和 cubic 最大的区别是:cubic 主要看丢包,BBR 主要看带宽和延迟。
所以在跨境、高延迟、偶发丢包的链路上,BBR 经常比 cubic 更适合。
这次我的处理方式很简单:
注意一下:BBR 从 Linux 4.9 起可用。
我这台机器是 CentOS 7,默认内核太老,所以这里升级到了 5.4.225。如果你的系统已经是新内核,不一定需要照抄升级内核这一步。
四、第1步:升级内核
我这里用的是 5.4 LTS 内核:
# 下载内核
wget --no-check-certificate https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.225-1.el7.elrepo.x86_64.rpm
# 安装
yum localinstall -y kernel-lt-5.4.225-1.el7.elrepo.x86_64.rpm
# 设为默认启动内核
grub2-set-default 0 && grub2-mkconfig -o /boot/grub2/grub.cfg然后重启:
reboot重启后确认内核版本:
uname -r我这里确认已经变成了 5.4.225。
五、第2步:开启 BBR
重启完成后,执行这 3 条命令:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p然后再确认一次:
sysctl net.ipv4.tcp_congestion_control如果输出里看到 bbr,就说明已经生效。
这一步真正改的是 TCP 拥塞控制算法。简单理解:让系统用 BBR 来控制 TCP 发包节奏。
六、第3步:用 Fast.com 验证效果
最后回到 Fast.com 再测一次。
结果从 110kbps 变成了 20Mbps+。

这个提升非常明显。体感上也一样:
七、为什么 BBR 能提速这么多
一句话解释:BBR 不会因为偶发丢包就立刻怂。
cubic 更像是:
看到丢包,就先降速保命。
BBR 更像是:
我先估算这条链路真实能跑多快,再按这个速度发。
它会持续测量两个关键指标:
所以 BBR 的全称是:Bottleneck Bandwidth and Round-trip propagation time
在跨境链路这种"不是带宽不够,而是链路质量不稳定"的场景里,BBR 往往能把速度拉回来。
八、最终效果
| 指标 | 开 BBR 前 | 开 BBR 后 |
|------|-----------|-----------|
| Fast.com 测速 | 110kbps | 20Mbps+ |
| YouTube 1080P | 卡顿 | 流畅 |
| YouTube 4K | 不用想 | 基本可以 |
这次的问题本质不是 VPS 太差。而是:VPS 带宽没问题,但跨境链路在 cubic 下跑不起来。
如果你也遇到类似情况,可以按这个顺序排查:
cubic如果前两项都正常,而当前算法还是 cubic,那么可以试试开启 BBR。
很多时候,网速慢不一定是机器不行。可能只是一个 TCP 参数没调对。
💬 评论区 (0)
暂无评论,快来抢沙发吧!