官网地址: https://iperf.fr/
感兴趣的小伙伴可以去官网看看,本教程只介绍最基本最常用的使用方式:具体以官方为准~
iperf3简介
当使用iperf3进行网络测速时,可以通过在一个服务器上运行iperf3服务器端,然后在另一个客户端机器上运行iperf3客户端来测试两个设备之间的带宽和延迟情况。iperf3可以提供详细的网络性能数据,包括带宽、延迟、数据包丢失率等指标。
安装
linux端
debian/ubuntu
apt install iperf3
centos
yum install iperf3
windows端
下载地址
https://github.com/ar51an/iperf3-win-builds
#windows需要下载软件包
mac端
brew install iperf3
#brew是苹果端开源的软件包管理系统
sudo port install iperf3
#使用port install进行安装
安卓端
下载软件包apk,下载地址
https://github.com/davidBar-On/android-iperf3/
使用
启动服务器端
# 启动iperf3服务端
iperf3 -s -i 1 -p 5201
# 示例指令1 标准启动方式
iperf3 –s –p 1000 -D
# 示例指令2 以守护进程的方式启动,使用端口1000
-s 以服务器模式启动
-D 以守护进程模式运行(也就是后台启动,不阻塞当前命令行界面)
-p 定义端口号
-s 以服务器模式启动
-i 定义多少秒报告一次结果
客户端测速
下载测速
就是测试本地客户端使用服务器的下载速度(常用)
# 测试下载测速
iperf3 -c 156.251.xxx.xxx -R -P 1
# 客户端测试下载速度 -c表示是作客户端使用 -R表示反向也就是测试下载速度 -P是表示连接数为1(线程)(区分下-p和-P)
iperf3 -c 156.251.xxx.xxx -u -b 1000M -R
# -u表示udp传送方式 -b 1000M:设置UDP测试的带宽为1000Mbit/s。 -R见上面:就是下载测试
iperf3 -c 156.251.xxx.xxx -u –p 5501 -b 1000M –t 60 -R -P 10
# -t 60:设置测试的持续时间为60,也就是跑60个测试结果 -p 5501就是表示5501端口 -P是10是客户端流也就是多线程下载
iperf3 -c 156.251.xxx.xxx -O 2 -R -p 10028 -t 100 -i 1
# -O丢弃前两秒的测试结果(防止起速误差) -t然后持续100s测速 -i 1s输出一次测试结果 (推荐)
iperf3 -c 156.251.xxx.xxx -b 200M -i 1 -t 60 -l 300
# -b设置tcp窗口为200M -i表示1每秒打印一次结果,总计测试60s -l表示缓冲区长度为300字节
常见参数解释如下:
-c
:指定服务器地址-p
:服务器的端口号-u
:使用udp协议(默认使用tcp连接)-b
:指定客户端通过UDP协议发送信息的带宽,默认值为1Mbit/s(TCP由拥塞控制算法决定:不需要设置)-n
:指定传输的字节数-t
:指定Iperf测试时间,默认10秒-i
:设置每次报告之间的时间间隔,单位为秒,如果设置为非零值,就会按照此时间间隔输出测试报告,默认值为零-F
:传输或接收特定的文件-P
:客户端到服务器的连接数,默认值为1-T
:指定ttl值-w
:设置套接字缓冲区为指定大小,对于TCP方式,此设置为TCP窗口大小,对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值--logfile
:参数可以将输出的测试结果储存至文件中-J
:来输出JSON格式测试结果-R
:反向传输(测试下载速度)-m
:输出结果以MB显示-l
:设置缓冲区大小
关于上面缓冲区的作用解释:
设置缓冲区大小为 300 字节的目的是控制
iperf3
每次发送和接收数据的大小。这可以影响网络性能测试的结果,因为不同的缓冲区大小可能会导致不同的网络性能表现。例如,较小的缓冲区可能会导致更高的 CPU 利用率,而较大的缓冲区可能会导致更高的内存利用率。默认情况下,
iperf3
的缓冲区大小是 128 KB。这对于大多数网络条件来说是一个合理的默认值。然而,如果你正在测试具有非常高带宽或非常低延迟的网络,或者你正在尝试优化特定的网络性能指标,那么你可能需要调整这个值。
上传测速(不常用)
也就是测试客户端向服务端发送数据的能力
# 默认是测试的上传速度
iperf3 -c 156.251.xxx.xxx
iperf3 -c 156.251.xxx.xxx -t 60 -P 2
# -t持续60秒 -P则为多线程2个线程
iperf3 –c 156.251.xxx.xxx -u -b 1000M -t 60
# upd协议1000M带框到服务器的上传测试,持续60秒