本文最后更新于: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
2sudo apt-get update
sudo apt-get install iperf3 -
yum 安装
1
yum install iperf3 -y
-
原始文件安装
1
2
3
4
5wget 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 |
|
-s 是 server 的含义
启动客户端
然后,在另一台机器上启动 iperf 客户端,指定服务器的 IP 地址和端口:
1 |
|
iperf 默认端口: 5001
iperf3 默认端口: 5201
参数设置
在客户端命令中,可以添加各种参数来调整测试的参数。例如:
-
设置测试时间:使用-t选项可以设置测试的时长,单位为秒,默认为10s。例如,iperf -t 60表示进行60秒的测试。
-
设置数据包大小:使用-l选项可以设置发送的数据包大小,单位为字节。例如,iperf -l 10M表示发送10MB的数据包。
-
协议选择:使用-u选项可以设置发送udp协议而非tcp,例如,iperf -u -p 5001 192.168.1.100表示使用UDP协议向服务器发送测试请求,并使用UDP端口号5001进行测试
-
设置多线程模式:使用-P选项可以设置多线程模式,用于同时测试多个连接。例如,iperf -P 4表示使用4个线程进行测试。
-
设置端口号:使用-p选项可以设置服务端监听的端口号。例如,iperf -p 8000表示服务端在端口8000上进行监听。
-
设置传输速率:使用-w选项可以设置tcp窗口大小,一般可以不用设置,默认即可。例如,iperf -w 10K表示设置tcp窗口大小为10KB。
-
设置测试次数:使用-n选项可以设置测试次数。例如,iperf -n 10表示进行10次测试。
-
设置输出格式:使用-f选项可以设置报告输出的格式。例如,iperf -f Mbits表示以Mbits为单位输出带宽报告。
-
获取帮助:其他可用参数和更多使用细节可以通过运行iperf --help命令来查看
完整的客户端命令可能如下:
1 |
|
执行这个命令后,客户端将开始向服务器发送数据,并显示传输速率、带宽、数据包丢失等信息。
示例输出
1 |
|
注意事项
- 在进行测试前,确保网络没有限制或防火墙规则阻止了 iperf 的通信。
- 根据测试需求选择合适的协议。TCP 更适合评估应用层性能,而 UDP 适合评估网络层性能。
iperf常见故障处理
1 |
|
这表示服务器未开启,请确保服务器已经正确启动。
1 |
|
这表示服务器防火墙拦截了连接,请检查服务器防火墙设置。
参考资料
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付