iperf3测带宽:想知道VPS真实带宽,得两台机器对打才准

Speedtest测的是到测速节点的速度,iperf3测的是两台机器之间的真实带宽。小够讲清iperf3的原理、一台服务端一台客户端的用法、单线程多线程的区别,以及结果怎么解读。

我是小够。很多人买了VPS,第一件事是打开Speedtest测个速,看到500Mbps就心满意足。但Speedtest测的是"你到测速节点"的速度,节点通常选的是离你近、线路好的,数字天然好看。想知道VPS本身的真实带宽能力,得用iperf3——两台机器"对打",中间没有第三方节点美化数据。

iperf3是什么

iperf3是一个网络带宽测试工具,工作模式是客户端-服务端:一台机器当服务端监听,另一台当客户端发数据,测的就是这两点之间的实际吞吐。它不经过任何测速网站,数据最"素颜"。

为什么比Speedtest更能反映VPS能力?因为Speedtest的结果取决于三个变量:你的本地网络、中间线路、测速节点质量。iperf3把变量砍到最少:两台机器,直连打流,测的就是这条路能跑多快。

基本用法:先有一台服务端

找一台带宽充足的机器当服务端(比如你手头另一台VPS,或者朋友的),跑:

iperf3 -s -p 5201

-s是服务端模式,-p指定端口(记得防火墙放行)。然后在你要测的VPS上当客户端:

iperf3 -c 服务端IP -p 5201 -t 30

-t 30是跑30秒。输出最后的[SUM]行就是平均带宽。想测反向(下载方向),加-R:

iperf3 -c 服务端IP -p 5201 -t 30 -R

单线程 vs 多线程:最关键的区别

默认iperf3是单线程打流。很多VPS单线程只能跑到100-200Mbps,但开10个并行线程(-P 10)能跑到1Gbps。这不是机器不行,而是单TCP连接的带宽本来就受延迟和窗口限制,延迟越高,单线程越跑不满。

iperf3 -c 服务端IP -p 5201 -t 30 -P 10

解读原则:单线程看"单连接体验"(比如你ssh传个文件、看个视频,就是单连接);多线程看"端口上限"(商家宣传的1Gbps端口,指的是多线程能跑满的理论值)。两个都要测,只报多线程数字的商家,等于只告诉你天花板,没告诉你日常。

几个常见误读

  1. “我iperf3只有50Mbps,商家虚标1Gbps”:先看服务端带宽够不够、两台机器之间的线路质量。如果服务端本身只有100Mbps,或者跨国线路晚高峰拥堵,测出来低不代表VPS端口不行。换个好线路的服务端、换个时段再测一次。
  2. “多线程跑满1Gbps就是好机器”:带宽只是维度之一。1Gbps端口+晚高峰丢包5%,实际体验不如500Mbps零丢包。iperf3顺手看一眼Retr(重传)列,重传率高说明线路质量差。
  3. UDP测试别乱用:iperf3支持-u测UDP,但UDP打流会占满带宽,影响同一宿主机的邻居。自己机器上点到为止,别拿去长时间压测别人的服务端,不礼貌,还可能被商家警告。

进阶:UDP测试与双向测试

TCP测的是"可靠传输"的带宽,UDP测的是"裸带宽"。游戏、语音、直播推流走UDP为主,想跑这类业务,加个UDP测试:

# 服务端
iperf3 -s -p 5201
# 客户端:以500M速率打UDP流30秒
iperf3 -c 服务端IP -p 5201 -u -b 500M -t 30

看Lost/Total Datagrams(丢包率)和Jitter(抖动)。UDP丢包>1%,游戏服就别考虑了。注意:UDP测试会占满带宽,别长时间跑,更别拿别人的公开服务端长时间压测,不礼貌。

实战排查流程:带宽低了怎么办

按这个顺序查,八成问题能定位:

  1. 换时段:白天再测一次,晚上低、白天高=拥堵,不是机器问题。
  2. 换服务端:换个线路好的服务端,低变高=原服务端或中间线路问题。
  3. 看mtr:找丢包的那一跳,丢包在商家内网=商家问题,丢包在骨干=线路问题。
  4. 看单线程:多线程满、单线程低=延迟限制,不是带宽问题,优化方向完全不同。
  5. 问客服:带着数据去问,“X月X日X时,iperf3到XX机房单线程XX、多线程XX”,有数据的工单,客服不敢敷衍。

小够的建议

  1. 到手先建基线:单线程、10线程各跑一遍,上行下行都测,截图存档。以后觉得"变慢了",重跑对比,数字不会骗人。
  2. 服务端要靠谱:最好用同机房或线路好的机器当服务端,排除中间线路干扰。实在没有,用iperf3的公开服务端也行(网上有列表),但高峰期排队,结果仅供参考。
  3. 配合mtr看:带宽低的时候,顺手跑个mtr,看是丢包还是纯粹带宽小——两个问题的解法完全不同。

一句话总结

Speedtest是"美颜照",iperf3是"素颜照";单线程看日常,多线程看上限。买VPS别只看商家宣传的端口数字,自己对打一次,心里才有数。下一篇讲speedtest-cli——没第二台机器时,一行命令测速的正确姿势。