安装 iperf3
1. Ubuntu / Debian
sudo apt update
sudo apt install -y iperf3
查看版本:
iperf3 --version
2. CentOS / Rocky Linux / AlmaLinux
sudo yum install -y epel-release
sudo yum install -y iperf3
或者在较新的系统中使用:
sudo dnf install -y iperf3
3. macOS
如果已经安装 Homebrew:
brew install iperf3
4. Windows
Windows 可以下载 iperf3 的可执行文件,解压后在命令提示符或 PowerShell 中运行:
.\iperf3.exe --version
建议将 iperf3.exe 所在目录加入系统环境变量,后续就可以直接执行:
iperf3 --version
1. 服务端启动监听
在服务端执行:
iperf3 -s
输出类似:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
表示服务端已经开始监听。
2. 客户端发起测试
在客户端执行:
iperf3 -c 192.168.1.10
输出示例:
Connecting to host 192.168.1.10, port 5201
[ 5] local 192.168.1.20 port 50000 connected to 192.168.1.10 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 112 MBytes 941 Mbits/sec
[ 5] 1.00-2.00 sec 113 MBytes 948 Mbits/sec
[ 5] 2.00-3.00 sec 113 MBytes 947 Mbits/sec
...
[ 5] 0.00-10.00 sec 1.10 GBytes 945 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec receiver
这里重点关注:
Bitrate
也就是实际测试出来的带宽。
如果是千兆网络,测试结果接近 940 Mbits/sec 是比较常见的,因为 TCP/IP、以太网帧、系统开销都会占用一部分带宽。
指定测试时间
默认测试时间通常为 10 秒。如果想测试 30 秒,可以使用 -t 参数:
iperf3 -c 192.168.1.10 -t 30
例如:
iperf3 -c 192.168.1.10 -t 60
表示连续测试 60 秒。
测试时间越长,结果通常越稳定,适合观察链路是否存在波动。
指定端口
iperf3 默认使用 5201 端口。如果该端口被占用,或者防火墙只放行了其他端口,可以使用 -p 指定端口。
服务端:
iperf3 -s -p 8888
客户端:
iperf3 -c 192.168.1.10 -p 8888
注意:客户端和服务端端口必须一致。
反向测试:测试服务端到客户端的带宽
默认情况下,iperf3 是客户端向服务端发送数据。
也就是说:
客户端 ---> 服务端
如果想测试服务端向客户端发送数据,可以使用 -R 参数:
iperf3 -c 192.168.1.10 -R
iperf3 输出结果怎么看?
以 TCP 输出为例:
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.10 GBytes 945 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec receiver
字段说明:
一般情况下,重点看最后的汇总结果。
如果 sender 和 receiver 差距很大,可能存在丢包、接收端处理能力不足、中间设备限速等问题。
UDP 输出中还会出现:
Jitter
Lost/Total Datagrams
其中:
Jitter越低越稳定;Lost/Total Datagrams越低越好;丢包率为
0%通常表示链路质量较好;UDP 带宽设置过高时,出现丢包是正常现象,说明已经超过链路或设备处理能力。