iperf3 是 ESnet 维护的主动网络测量工具。它在两台设备之间生成测试流量,并报告吞吐率等指标,适合比较局域网链路、VPN 或实验网络在不同设置下的表现。它测得的是特定时间、路径和参数下的结果,不等同于互联网套餐标称速率,也不是对任意公网地址进行测速的工具。
请只在自己管理或明确获准的两端设备之间运行测试。iperf3 会产生真实流量,可能占用链路资源;不要把服务端暴露到公网供他人使用。
安装和版本检查#
在 Kali Rolling 中可通过 APT 安装。软件版本随仓库更新,先检查本机仓库信息:
apt policy iperf3
sudo apt update
sudo apt install iperf3
iperf3 --versioniperf3 与早期的 iperf(常称 iperf2)不是线协议兼容的同一程序。测试两端应使用 iperf3,并注意核对两端版本。
在两台实验设备间测试 TCP#
假设服务端地址为 192.0.2.10,客户端与其处于自己控制的测试网络中。先在服务端运行:
iperf3 -s默认服务端监听 TCP 5201 端口。然后在客户端运行:
iperf3 -c 192.0.2.10地址 192.0.2.10 是文档示例地址,请替换为实验环境中服务端的实际地址。若两机之间有防火墙,需要在受控网络中允许客户端访问该端口,并在测试后撤销临时规则。不要为方便测试而无必要地开放公网入站端口。
测试结束后,iperf3 会显示分段结果和汇总结果。阅读汇总中的发送端与接收端报告;判断链路可用吞吐时,应结合接收端数据、重测结果和应用实际需求,不要只挑单次最高值。
常用参数#
# 每隔 1 秒输出一次,持续 20 秒
iperf3 -c 192.0.2.10 -t 20 -i 1
# 使用 4 条并行流;先以默认单流为基线,再比较并行结果
iperf3 -c 192.0.2.10 -P 4 -t 20
# 反向测试,由服务端向客户端发送数据
iperf3 -c 192.0.2.10 -R -t 20
# 生成 JSON 输出,便于保存和后续处理
iperf3 -c 192.0.2.10 -t 20 -J > result.json并行流可能提高总吞吐,但也会增加主机负载,不能把它直接解释成单个应用连接的速度。反向模式改变数据发送方向,可以帮助比较上下行路径,但仍受两端 CPU、网卡、路由和其他流量影响。
UDP 测试可用 -u 指定 UDP,并通过 -b 设置目标发送速率,例如:
iperf3 -c 192.0.2.10 -u -b 20M -t 20这里的 20M 是请求的目标速率,不是保证值。观察接收端报告中的丢包和抖动;如果发送速率超过链路或接收端处理能力,丢包会增加。可从较低速率开始逐步调整,避免对共享网络造成影响。
怎样让结果更有参考价值#
测试前记录两端设备、网卡速率、连接方式、软件版本、测试方向、时长及其他网络负载。先跑一次短测检查连通性,再在相近条件下重复测试。若要比较 Wi-Fi 与有线网络,分别记录链路条件,不要把不同时间、不同拥塞状况的结果直接当作唯一结论。
iperf3 侧重端到端吞吐测量,不会自动解释瓶颈。CPU 饱和、网卡驱动、虚拟化、MTU、路由、无线信号和并发业务都可能影响读数。若结果明显低于预期,应结合系统资源、接口错误计数和链路状态继续排查。