一、iperf3 简介
iperf3 是一个常用的网络性能测试工具,主要用于测量 TCP、UDP、SCTP 的吞吐量。它通常用于以下场景:
- 带宽测试:测量两个节点之间的最大传输速率
- 网络稳定性分析:查看抖动 (jitter)、丢包率
- 双向测试:验证客户端到服务器以及服务器到客户端的带宽
- 多线程测试:模拟多个连接并发压力
iperf3分为 server 模式 和 client 模式,测试时一端作为服务端,另一端作为客户端。
二、iperf3 基本使用
1. 服务端启动
iperf3 -s
- 默认监听端口:
5201 - 可以加
-p指定端口,例如:
iperf3 -s -p 5000
2. 客户端连接
iperf3 -c <server_ip>
- 默认 TCP 测试
- 可指定端口:
iperf3 -c <server_ip> -p 5000
三、常用命令总结
1. TCP 测试
iperf3 -c <server_ip>
- 默认持续 10 秒
- 输出吞吐量(单位:Mbits/sec)
2. UDP 测试
iperf3 -c <server_ip> -u -b 100M
-u:UDP 模式-b:指定带宽(如100M、1G)
UDP 模式下会额外显示 丢包率、抖动 (jitter),适合测试实时性应用(如视频会议、游戏)。
3. 指定时间
iperf3 -c <server_ip> -t 30
-t 30:测试持续 30 秒
4. 多线程测试
iperf3 -c <server_ip> -P 4
-P 4:开 4 个并发连接,常用于测试高带宽链路
5. 反向测试(服务器发数据给客户端)
iperf3 -c <server_ip> -R
6. 限制窗口大小
iperf3 -c <server_ip> -w 512k
-w:TCP 窗口大小,可以影响吞吐量表现
7. 输出为 JSON 格式
iperf3 -c <server_ip> -J
- 方便后续用程序解析结果
8. 测试双向带宽
iperf3 -c <server_ip> --bidir
- 同时测试 client→server 和 server→client 的带宽
9. 指定测试端口范围(用于防火墙受限场景)
iperf3 -c <server_ip> -p 6000
- 服务端也需要
-p 6000启动
四、测试结果解释
一个典型输出如下:
[ ID] Interval Transfer Bandwidth Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec 10 sender
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec receiver
- Transfer:传输的数据量
- Bandwidth:平均带宽
- Retr:重传次数(TCP 下有效,重传多说明网络不稳定)
- Jitter/packet loss:UDP 下显示抖动和丢包情况
iperf3 常用命令速查表
1. 服务端
iperf3 -s # 启动服务端 (默认端口 5201)
iperf3 -s -p 5000 # 指定端口 5000
2. 客户端
iperf3 -c <server_ip> # TCP 测试
iperf3 -c <server_ip> -p 5000 # 指定端口
3. TCP 测试
iperf3 -c <server_ip> # 默认 10 秒 TCP 单线程
iperf3 -c <server_ip> -t 30 # 持续 30 秒
iperf3 -c <server_ip> -P 4 # 4 个并发线程
iperf3 -c <server_ip> -R # 反向测试 (server → client)
4. UDP 测试
iperf3 -c <server_ip> -u -b 100M # UDP,带宽 100Mbps
iperf3 -c <server_ip> -u -b 1G # UDP,带宽 1Gbps
5. 高级用法
iperf3 -c <server_ip> -w 512k # 指定 TCP 窗口大小
iperf3 -c <server_ip> --bidir # 双向带宽测试
iperf3 -c <server_ip> -J # 输出 JSON 格式
结果解释
- Transfer:传输数据总量
- Bandwidth:平均带宽 (Mbits/sec)
- Retr:TCP 重传次数(越少越好)
- Jitter/packet loss:UDP 抖动 & 丢包