【iperf】Linux 下使用 iperf 测试网卡带宽

1. 简介

iPerf 是一款开源的网络性能测试工具,用于测量网络带宽、延迟、抖动和数据包丢失等指标。它支持 TCPUDP 协议,广泛用于评估网络吞吐量、服务器性能及网络配置优化。

主要功能

带宽测试,测量 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

    扫描二维码关注公众号,回复: 17552183 查看本文章
  • 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模式

  1. 服务端启动 TCP 服务器
iperf -s
  1. 客户端连接 TCP 服务器,此示例连接到 192.168.0.31 服务器,进行上传带宽测试,测试时长 60s
iperf -c 192.168.0.31 -t 60
  1. TCP 模式下,进行上下行带宽测试,测试时长 60s
iperf -c 192.168.0.31 -d -t 60
  1. 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模式

  1. 服务端启动 UDP 服务器
iperf -u -s
  1. 客户端连接 UDP 服务器,以 100Mbps 为数据发送速率,测试时间为 60s
iperf -u -c 192.168.0.31 -b 100M -t 60
  1. UDP 模式下,以 100Mbps 为数据发送速率,进行上下行带宽测试,测试时间为 60s
iperf -u -c 192.168.0.31 -b 100M -d -t 60
  1. 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)开放。

版本兼容: iperf3iperf2 不兼容,需统一版本。

网络拥塞: 测试可能占用大量带宽,建议在隔离环境进行。

通过灵活的参数组合,iPerf 可满足从家庭网络到数据中心的各种性能评估需求。

#完