1. 简介
iPerf
是一款开源的网络性能测试工具,用于测量网络带宽、延迟、抖动和数据包丢失等指标。它支持 TCP
和 UDP
协议,广泛用于评估网络吞吐量、服务器性能及网络配置优化。
主要功能
带宽测试,测量 TCP 和 UDP 的最大吞吐量。支持单线程或多线程(并行连接)测试。
协议支持
-
TCP:测试可靠传输下的最大带宽。
-
UDP:评估丢包率、抖动和指定带宽限制的性能。
跨平台
- 支持 Windows、Linux、macOS、Android 等系统。
灵活参数配置
- 可调数据包大小、测试时长、端口号、缓冲区大小等。
2. 安装 iPerf
-
Ubuntu/Debian: sudo apt install iperf3
-
CentOS/Fedora: sudo yum/dnf install iperf3
-
macOS: brew install iperf3
-
Windows: 从官网下载预编译二进制文件。
3. 常见参数
参数 | 说明 |
---|---|
-t <秒> | 测试时长(默认10秒) |
-u | 使用UDP协议(默认TCP) |
-b <带宽> | 指定UDP带宽(如 -b 100M 表示100Mbps) |
-P <线程数> | 并行连接数(多线程测试) |
-R 反向传输 | (服务器发数据,客户端收) |
-i <秒> | 定期输出带宽报告间隔 |
-p <端口> | 指定服务器端口 |
-w <大小> | 设置TCP窗口大小(调优吞吐量) |
-J | 输出JSON格式结果(便于脚本解析) |
-s | iperf 服务器模式 |
-c <ip> | 如果 iperf 运行在服务器模式,并且用 -c 参数指定一个主机,那么 iperf 将只接受指定主机的连接。此参数不能工作于 UDP 模式 |
更加详细的 iPerf
参数可参考官方文档 《iPerf 参数介绍》
4. 常用测试示例
4.1. TCP模式
- 服务端启动
TCP
服务器
iperf -s
- 客户端连接
TCP
服务器,此示例连接到192.168.0.31
服务器,进行上传带宽测试,测试时长60s
。
iperf -c 192.168.0.31 -t 60
- 在
TCP
模式下,进行上下行带宽测试,测试时长60s
。
iperf -c 192.168.0.31 -d -t 60
- 在
TCP
模式下,客户端同时向服务器端发起30
个连接线程。
iperf -c 192.168.0.31 -P 30 -t 60
结果解读
TCP
测试输出:
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.2 GBytes 1.03 Gbits/sec
Transfer: 传输的数据量。
Bitrate: 平均带宽。
4.2. UDP模式
- 服务端启动
UDP
服务器
iperf -u -s
- 客户端连接
UDP
服务器,以100Mbps
为数据发送速率,测试时间为60s
。
iperf -u -c 192.168.0.31 -b 100M -t 60
- 在
UDP
模式下,以100Mbps
为数据发送速率,进行上下行带宽测试,测试时间为60s
。
iperf -u -c 192.168.0.31 -b 100M -d -t 60
- 在
UDP
模式下,客户端同时向服务器端发起30
个连接线程,以20Mbps
为数据发送速率。
iperf -u -c 192.168.0.31 -b 20M -P 30 -t 60
结果解读
UDP
测试输出:
Jitter: 2.123 ms Lost/Total: 3/89324 (0.0034%)
Jitter: 数据包到达时间的波动。
Lost/Total: 丢包统计。
5. 注意事项
防火墙: 确保服务器端端口(默认5201)开放。
版本兼容: iperf3
与 iperf2
不兼容,需统一版本。
网络拥塞: 测试可能占用大量带宽,建议在隔离环境进行。
通过灵活的参数组合,iPerf
可满足从家庭网络到数据中心的各种性能评估需求。