网络性能测试:用 iperf 评估带宽与延迟

用 iperf3、ping 和 speedtest-cli 分别测出服务器的吞吐、延迟与公网速率,读懂带宽、延迟、丢包对体验的真实影响。

当你的应用变慢、下载卡顿或视频会议掉线时,问题往往不在 CPU,而在网络。本文教你用三个常用工具给服务器做一次完整的网络体检:iperf3 测两点间带宽,ping 测延迟与丢包,speedtest-cli 测公网上下行。

三个关键指标先分清

  • 带宽(吞吐量):单位时间能搬多少数据,常用 Mbps/Gbps。带宽不足会让大文件传输、备份变慢。
  • 延迟(RTT):一个来回花多少毫秒。延迟高会让 SSH、游戏、实时通话有明显"卡手感",和带宽大小无关。
  • 丢包:发出去的包有多少没到。丢包会触发 TCP 重传,即使带宽很大也会让体验断断续续。

一句话:带宽决定"能搬多快",延迟决定"反应多快",丢包决定"稳不稳"。

用 iperf3 测两点间带宽

iperf3 需要两端配合:一端当 server,一端当 client。先在两台机器上安装:

sudo apt update && sudo apt install -y iperf3

在接收端(比如目标服务器)启动 server:

iperf3 -s

在发送端连上去,默认测 TCP 上行 10 秒:

iperf3 -c 目标服务器IP

看结果里的 Bitrate 一列就是实测吞吐。常用参数:

  • -t 30:测试持续 30 秒,结果更稳。
  • -P 4:开 4 条并行流,更容易压满高带宽链路。
  • -R:反向测,即测 server→client 的下行。
  • -u -b 100M:改测 UDP 并指定 100 Mbps,报告里会额外给出丢包率和 jitter(抖动)。

TCP 结果代表"实际可用吞吐",UDP 更适合观察丢包和抖动,两者结合看更全面。

用 ping 测延迟与丢包

ping -c 20 目标主机

发 20 个包后看两行:rtt min/avg/max/mdev 是延迟(关注 avg 和 max),packet loss 是丢包率。理想情况丢包为 0%,mdev(抖动)越小越稳。想长时间盯着抖动,可以用 mtr 目标主机 逐跳定位是哪一段网络出问题。

用 speedtest-cli 测公网速率

前两个工具测的是"你到指定对端",而 speedtest-cli 测的是"你到公网测速节点"的上下行:

sudo apt install -y speedtest-cli
speedtest-cli

它会自动选就近节点,输出 Download、Upload 和 Ping。适合快速验证服务器的公网出口是否达标。

测试时的注意事项

  • 跨机同时跑会互相干扰:同一时刻多台机器一起压测同一条链路或同一台 server,结果会偏低且失真。逐台测,或错开时间。
  • 测试期间别跑业务:备份、同步等任务会占带宽,污染结果。
  • 多测几次取平均:单次结果受瞬时波动影响大,不同时段各测几轮更可信。
  • 注意计费:压测会产生真实流量,留意你的服务器/VPS 是否有流量额度。

小结

带宽、延迟、丢包是三个独立维度,别只盯着"多少兆"。用 iperf3 测两点吞吐(TCP 看可用带宽、UDP 看丢包抖动),用 ping 看延迟与稳定性,用 speedtest-cli 验证公网速率。记住逐台错峰测试、避开业务时段、多次取平均,你就能准确判断瓶颈到底在带宽、延迟还是丢包上。