本文最后更新于:2024年5月17日 上午

iperf 是一个开源网络性能测试工具,它能够测量带宽、吞吐量、延迟和丢包率等网络性能指标。本文将介绍iperf的常用命令和选项,并给出Windows和Linux平台的配置示例。

简介

iPerf 是一款用于主动测量 IP 网络最大带宽的开源工具。它支持调整与定时、缓冲区和协议(TCP、UDP、SCTP 与 IPv4 和 IPv6)相关的各种参数。每次测试都会报告带宽、损耗和其他参数。

iperf 的主要特点包括:

  • 跨平台支持:iperf可以运行在多个操作系统上,包括Windows、Linux、macOS等。

  • 多线程支持:iperf支持多线程测试,可以同时使用多个CPU核心进行测试。

  • 多端口支持:iperf可以在同一台机器上使用多个端口进行测试。

  • 自定义测试参数:iperf支持自定义测试参数,例如测试时间、数据包大小等。

  • 报告详细信息:iperf可以生成详细的测试报告,包括带宽、延迟、丢包率等数据。

工具安装

Windows 11

当前 (2024.05.17) 最高版本 3.17.1

  • 下载

从iperf官网((https://iperf.fr/iperf-download.php))下载适用于Windows的iperf版本。

或直接去 github release 下载 https://github.com/ar51an/iperf3-win-builds

  • 解压

解压后两个文件: cygwin1.dll , iperf3.exe

这个 iperf3.exe 便是应用程序,按下Win+R键,输入cmd并回车,打开命令提示符窗口便可以直接运行

Linux

有 iperf 和 iperf3 两种安装包,都可以使用,建议安装 iperf3

  • apt 安装

    1
    2
    sudo apt-get update
    sudo apt-get install iperf3
  • yum 安装

    1
    yum install iperf3 -y
  • 原始文件安装

    1
    2
    3
    4
    5
    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

工具使用

iperf 使用起来很简单,拓扑为服务器、客户端模式,一台设备启动服务器,其他设备作为客户端测试到服务器的网络连通效果

启动服务器

首先,在一台机器上启动 iperf 服务器:

1
iperf3 -s

-s 是 server 的含义

启动客户端

然后,在另一台机器上启动 iperf 客户端,指定服务器的 IP 地址和端口:

1
iperf3 -c [服务器IP] -p [端口]

iperf 默认端口: 5001

iperf3 默认端口: 5201

参数设置

在客户端命令中,可以添加各种参数来调整测试的参数。例如:

  1. 设置测试时间:使用-t选项可以设置测试的时长,单位为秒,默认为10s。例如,iperf -t 60表示进行60秒的测试。

  2. 设置数据包大小:使用-l选项可以设置发送的数据包大小,单位为字节。例如,iperf -l 10M表示发送10MB的数据包。

  3. 协议选择:使用-u选项可以设置发送udp协议而非tcp,例如,iperf -u -p 5001 192.168.1.100表示使用UDP协议向服务器发送测试请求,并使用UDP端口号5001进行测试

  4. 设置多线程模式:使用-P选项可以设置多线程模式,用于同时测试多个连接。例如,iperf -P 4表示使用4个线程进行测试。

  5. 设置端口号:使用-p选项可以设置服务端监听的端口号。例如,iperf -p 8000表示服务端在端口8000上进行监听。

  6. 设置传输速率:使用-w选项可以设置tcp窗口大小,一般可以不用设置,默认即可。例如,iperf -w 10K表示设置tcp窗口大小为10KB。

  7. 设置测试次数:使用-n选项可以设置测试次数。例如,iperf -n 10表示进行10次测试。

  8. 设置输出格式:使用-f选项可以设置报告输出的格式。例如,iperf -f Mbits表示以Mbits为单位输出带宽报告。

  9. 获取帮助:其他可用参数和更多使用细节可以通过运行iperf --help命令来查看

完整的客户端命令可能如下:

1
iperf -c [服务器IP] -p [端口] -b [带宽] -t [时间] -P [并发数]

执行这个命令后,客户端将开始向服务器发送数据,并显示传输速率、带宽、数据包丢失等信息。

示例输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
iperf3 -c 192.168.101.99
Connecting to host 192.168.101.99, port 5201
[ 5] local 192.168.101.65 port 46776 connected to 192.168.101.99 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 19.7 MBytes 165 Mbits/sec 0 1.30 MBytes
[ 5] 1.00-2.00 sec 21.2 MBytes 178 Mbits/sec 0 1.85 MBytes
[ 5] 2.00-3.00 sec 21.2 MBytes 178 Mbits/sec 0 2.08 MBytes
[ 5] 3.00-4.00 sec 20.0 MBytes 168 Mbits/sec 0 2.08 MBytes
[ 5] 4.00-5.00 sec 22.5 MBytes 189 Mbits/sec 0 2.08 MBytes
[ 5] 5.00-6.00 sec 18.8 MBytes 157 Mbits/sec 0 2.08 MBytes
[ 5] 6.00-7.00 sec 23.8 MBytes 199 Mbits/sec 0 2.08 MBytes
[ 5] 7.00-8.00 sec 17.5 MBytes 147 Mbits/sec 0 2.08 MBytes
[ 5] 8.00-9.00 sec 17.5 MBytes 147 Mbits/sec 0 2.08 MBytes
[ 5] 9.00-10.00 sec 18.8 MBytes 157 Mbits/sec 0 2.08 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 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

iperf Done.

注意事项

  • 在进行测试前,确保网络没有限制或防火墙规则阻止了 iperf 的通信。
  • 根据测试需求选择合适的协议。TCP 更适合评估应用层性能,而 UDP 适合评估网络层性能。

iperf常见故障处理

1
iperf3: error - unable to connect to server: Connection refused

这表示服务器未开启,请确保服务器已经正确启动。

1
iperf3: error - unable to connect to server: No route to host

这表示服务器防火墙拦截了连接,请检查服务器防火墙设置。

参考资料



文章链接:
https://www.zywvvd.com/notes/tools/iperf/iperf/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

网络性能测试工具 iperf
https://www.zywvvd.com/notes/tools/iperf/iperf/
作者
Yiwei Zhang
发布于
2024年5月17日
许可协议