iperf3 使用教程:从安装到网络带宽测试实战

iperf3 使用教程:从安装到网络带宽测试实战

 次点击
20 分钟阅读


安装 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

字段说明:

字段

说明

ID

测试流 ID

Interval

时间区间

Transfer

传输数据量

Bitrate

平均带宽

sender

发送端统计

receiver

接收端统计

一般情况下,重点看最后的汇总结果。

如果 senderreceiver 差距很大,可能存在丢包、接收端处理能力不足、中间设备限速等问题。

UDP 输出中还会出现:

Jitter
Lost/Total Datagrams

其中:

  • Jitter 越低越稳定;

  • Lost/Total Datagrams 越低越好;

  • 丢包率为 0% 通常表示链路质量较好;

  • UDP 带宽设置过高时,出现丢包是正常现象,说明已经超过链路或设备处理能力。


© 本文著作权归作者所有,未经许可不得转载使用。