完整的 VPS 网速测试要回答两个问题:服务器能收发多少带宽,以及数据包在服务器与用户之间传输要多久。本文说明如何在运行 Debian/Ubuntu 或 CentOS/Rocky/AlmaLinux 的 JUSTG 云服务器或独立服务器上,使用 iperf3 双向测试、Speedtest CLI 与 curl 下载来测试服务器带宽与延迟,并以 JUSTG 东京、首尔、莫斯科云服务器的 500Mbps 端口为基准解读结果。
步骤 1:安装 iperf3,进行两台机器间的带宽测试
iperf3 直接测量两台您可控制的主机之间的 TCP 吞吐量,中间不经过任何网站或 CDN。JUSTG 服务器与测试端(另一台服务器或您的电脑,iperf3 也有 Windows 版)都需要安装:
# Debian / Ubuntu
apt update && apt install -y iperf3
# CentOS / Rocky Linux / AlmaLinux
dnf install -y iperf3步骤 2:启动 iperf3 服务端,并用 -R 测试双向
在 JUSTG 服务器上开放 TCP 5201 端口,并以服务端模式启动 iperf3:
# Debian / Ubuntu with UFW
ufw allow 5201/tcp
# CentOS / Rocky / AlmaLinux with firewalld (until next reload)
firewall-cmd --add-port=5201/tcp
# start the iperf3 server (Ctrl+C to stop)
iperf3 -s在另一台机器运行客户端。默认由客户端发送数据到服务器(从客户端看是上传)。加上 -R 会反转方向,改由服务器传给您,这正是访客下载网页与文件时的方向。-P 4 代表 4 条并行连接,-t 30 代表测试 30 秒。
# upload test: your machine -> JUSTG server
iperf3 -c 203.0.113.10 -P 4 -t 30
# download test: JUSTG server -> your machine (reverse mode)
iperf3 -c 203.0.113.10 -P 4 -t 30 -R请看最后的 [SUM] 行,receiver 的数值才是实际吞吐量,Retr 字段是 TCP 重传次数。
[SUM] 0.00-30.00 sec 1.64 GBytes 470 Mbits/sec 15 sender
[SUM] 0.00-30.03 sec 1.64 GBytes 469 Mbits/sec receiverufw delete allow 5201/tcp),避免测试服务长期对外开放。步骤 3:使用 Speedtest CLI(Ookla)或 speedtest-cli
如果没有第二台机器,连接公开测速服务器是最快的方法。官方 Ookla Speedtest CLI 需从 Ookla 的软件源安装:
# Debian / Ubuntu
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash
apt install -y speedtest
# CentOS / Rocky Linux / AlmaLinux
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.rpm.sh | bash
dnf install -y speedtest
# run a test (nearest server), list servers, or pick one by ID
speedtest --accept-license --accept-gdpr
speedtest -L
speedtest -s 12345也可以使用较旧的 Python 工具 speedtest-cli。在 Debian/Ubuntu 上两者命令名称相近,请先移除其中一个再安装另一个。
# Debian / Ubuntu
apt install -y speedtest-cli
# any distribution with Python 3
pip3 install speedtest-cli
speedtest-cli --simple
speedtest-cli --list | head -n 20
speedtest-cli --server 12345 --simple结果很大程度取决于所选的测速节点:繁忙或距离远的节点即使端口正常也可能显示偏低。建议多试两三个节点,其中包含靠近用户的节点。
步骤 4:用 curl 进行下载测速
实际下载文件可以看出单一 HTTP 连接的速度。从连接良好的镜像站下载大文件并直接丢弃:
curl -o /dev/null -w "avg speed: %{speed_download} bytes/s, total: %{time_total}s\n" \
https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xz
# wget prints the speed in MB/s at the end
wget -O /dev/null https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xzcurl 显示的是每秒字节数,除以 1,000,000 即为 MB/s,MB/s 乘以 8 即为 Mbps。
步骤 5:对照 500Mbps 端口解读测速结果
- 单位:500Mbps(兆比特)理论上等于 62.5 MB/s(兆字节)。扣除 TCP/IP 开销后,iperf3 达到约 470 至 480 Mbps,或下载约 55 至 59 MB/s,就代表端口已跑满。
- 单线程与多线程:长距离路径上,单一 TCP 连接会受延迟限制。若
-P 4明显比单线程快,表示端口正常,瓶颈在往返延迟。 - 方向:上传与下载的路由不同,速度也可能不同,务必分别测试有无
-R的结果。 - 延迟:iperf3 不测量延迟,请用
ping -c 50测到用户所在地区,观察平均值与抖动,而不只是最佳值。 - 另一端:家用网络、Wi-Fi 或繁忙的公开测速节点,常常才是真正的瓶颈。
步骤 6:在高峰时段测试
国际线路在用户当地晚上最繁忙。请在该时段重复测试,并与低峰时段比较。以下循环可记录多次结果:
# three tests, 10 minutes apart, saved to a log file
for i in 1 2 3; do date; speedtest-cli --simple; sleep 600; done | tee -a speedtest.log常见问题
500Mbps 的 VPS 测速只有 200 Mbps,是不是有问题?
不一定。请换其他测速节点、用 iperf3 加上 -P 4 测到您可控制的机器,并测反方向。若多种方法都远低于端口速率,请附上输出结果联系技术支持。
为什么从中国大陆下载比从欧洲慢?
较高的延迟与繁忙的跨境线路会限制单一连接速度。请比较高峰与低峰结果,并以 MTR 检查路由。
iperf3 可以一直开着吗?
建议不要。只在测试时启动,测完就关闭端口。
如仍无法解决,请提交工单联系 JUSTG 技术支持,并附上测试输出与测试时间。