一、工具简介
- 跨平台支持:Windows、Linux、macOS、Android 等
- 多线程测试:3.16 + 版本支持多线程,突破单 CPU 核心限制
- 灵活参数配置:可自定义测试时长、数据包大小、并发连接数等
- 详细报告输出:提供带宽、延迟、抖动、丢包率等数据
二、版本区别(iperf2 vs iperf3)
特性 | iperf2 | iperf3 |
线程模型 | 多线程 | 3.16 + 支持多线程 |
默认端口 | 5001 | 5201 |
并发连接 | 支持多客户端同时连接 | 一次仅支持一个客户端 |
双向测试 | -d(同时)/-r(顺序) | --bidir(需 3.7 + 版本) |
Windows 支持 | 官方支持 | 非官方支持 |
新特性 | 无 | 支持 MSS/MTU 报告、JSON 输出、零拷贝模式 |
三、安装方法
Windows 11
Linux
bash
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install iperf3# CentOS/RHEL
yum install iperf3 -y# 源码安装
wget https://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz
tar zxvf iperf-3.0.6.tar.gz
cd iperf-3.0.6
./configure && make && make install
macOS
bash
brew install iperf3
四、核心参数详解
参数 | 作用 | 示例 |
-s | 启动服务器模式 |
|
-c | 客户端模式,指定服务器 IP |
|
-p | 指定端口号 |
|
-t | 测试时长(秒) |
|
-i | 报告间隔(秒) |
|
-u | 使用 UDP 协议 |
|
-b | 设置带宽(UDP 模式) |
|
-P | 并发连接数 |
|
-w | TCP 窗口大小 |
|
-l | 数据包大小 |
|
-R | 反向测试(服务器发送数据) |
|
--json | JSON 格式输出 |
|
五、常用测试场景示例
1. 基本 TCP 带宽测试
bash
# 服务端
iperf3 -s -p 5201# 客户端(测试60秒,每5秒报告)
iperf3 -c 192.168.1.100 -p 5201 -t 60 -i 5
2. 多线程 TCP 测试(突破单流瓶颈)
bash
# 客户端(4个并行流)
iperf3 -c 192.168.1.100 -P 4 -t 60
3. UDP 性能测试(含丢包率和抖动)
bash
# 服务端
iperf3 -s -p 5201# 客户端(100Mbps带宽,1400字节包)
iperf3 -c 192.168.1.100 -u -b 100M -l 1400 -t 60 --get-server-output
4. 反向测试(服务器发送数据)
bash
iperf3 -c 192.168.1.100 -R -t 30
5. 长时间稳定性测试
bash
# 客户端(测试12小时,输出到日志)
iperf3 -c 192.168.1.100 -t 43200 -i 60 --logfile stability_test.log
六、测试结果解读
plaintext
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 201 MBytes 169 Mbits/sec 0 sender
[ 5] 0.00-10.05 sec 198 MBytes 165 Mbits/sec receiver
- Transfer:传输数据总量
- Bitrate:实际带宽(sender 发送端 /receiver 接收端)
- Retr:TCP 重传次数(越低越好)
- Jitter:延迟抖动(实时业务需 < 50ms)
- Lost/Total:丢包率(VoIP 需 < 1%,视频流需 < 3%)
七、注意事项
八、高级应用
- JSON 输出:
iperf3 -c <IP> -J > result.json
,便于自动化分析 - CPU 亲和性:
-A 0,1
绑定特定 CPU 核心,避免调度干扰 - 零拷贝模式:
-Z
使用 sendfile 系统调用,降低 CPU 占用 - 自定义拥塞控制:
--linux-congestion cubic
(仅 Linux 支持)
九、常见问题解决
- 增加并发数(-P)
- 调大 TCP 窗口(-w)
- 检查中间设备限速
- 降低带宽目标(-b)
- 减小数据包大小(-l)
- 检查网络 QoS 配置