作者: littleboy 2023-11-06 12:16:50

网络测试工具iperf3

iPerf3是用于主动测试IP网络上最大可用带宽的工具。它支持时序、缓冲区、协议(TCP,UDP,SCTP与IPv4和IPv6)有关的各种参数。对于每次测试,它都会详细的带宽报告,延迟抖动和数据包丢失。

下载

iperf官网:https://iperf.fr/

iperf官网下载地址(所有版本都可以在这个网址中下载):https://iperf.fr/iperf-download.php

iperf的命令文档:https://iperf.fr/iperf-doc.php

使用

错误打开方式:双击这个iperf3.exe是打不开会闪退的

正确打开方式:命令提示符(cmd)运行iperf3.exe

1、下载解压后的文件放置到一个全英文路径里。比如:放到E盘,那么这个文件夹的路径就为:E:\iperf-3.16-win64。

2、打开命令提示符,输入“E:”,跳转到E盘。再输入“ cd \iperf-3.16_64”进入程序文件夹。即为成功。后面可以使用做服务端启动或是客户端启动。见下面步骤:

服务端

在服务端使用,打开iperf3.exe程序后,输入如下命令作为服务端接受数据包。

1
iperf3.exe -s

客户端

作为客户端使用,同样的操作打开iperf3.exe,然后用如下命令发包到服务端做测试。注意:127.0.0.1是演示用的,实际是需要填真实的服务器的ip(也就是上一步服务端的电脑ip)。

1
iperf3.exe -c 127.0.0.1

命令

详细命令参数,执行,iperf3 -h,可以查看所有的命令信息。以下是中文信息, iPerf 3.1.2 支持的所有参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-p, --port #,Server 端监听、Client 端连接的端口号; 
-f, --format [kmgKMG],报告中所用的数据单位,Kbits, Mbits, KBytes, Mbytes;
-i, --interval #,每次报告的间隔,单位为秒;
-F, --file name,测试所用文件的文件名。如果使用在 Client 端,发送该文件用作测试;如果使用在 Server 端,则是将数据写入该文件,而不是丢弃;
-A, --affinity n/n,m,设置 CPU 亲和力;
-B, --bind ,绑定指定的网卡接口;
-V, --verbose,运行时输出更多细节;
-J, --json,运行时以 JSON 格式输出结果;
--logfile f,输出到文件;
-d, --debug,以 debug 模式输出结果;
-v, --version,显示版本信息并退出;
-h, --help,显示帮助信息并退出。
Server 端参数:
-s, --server,以 Server 模式运行;
-D, --daemon,在后台以守护进程运行;
-I, --pidfile file,指定 pid 文件;
-1, --one-off,只接受 1 次来自 Client 端的测试,然后退出。
Client 端参数
-c, --client ,以 Client 模式运行,并指定 Server 端的地址;
-u, --udp,以 UDP 协议进行测试;
-b, --bandwidth #[KMG][/#],限制测试带宽。UDP 默认为 1Mbit/秒,TCP 默认无限制;
-t, --time #,以时间为测试结束条件进行测试,默认为 10 秒;
-n, --bytes #[KMG],以数据传输大小为测试结束条件进行测试;
-k, --blockcount #[KMG],以传输数据包数量为测试结束条件进行测试;
-l, --len #[KMG],读写缓冲区的长度,TCP 默认为 128K,UDP 默认为 8K;
--cport ,指定 Client 端运行所使用的 TCP 或 UDP 端口,默认为临时端口;
-P, --parallel #,测试数据流并发数量;
-R, --reverse,反向模式运行(Server 端发送,Client 端接收);
-w, --window #[KMG],设置套接字缓冲区大小,TCP 模式下为窗口大小;
-C, --congestion ,设置 TCP 拥塞控制算法(仅支持 Linux 和 FreeBSD );
-M, --set-mss #,设置 TCP/SCTP 最大分段长度(MSS,MTU 减 40 字节);
-N, --no-delay,设置 TCP/SCTP no delay,屏蔽 Nagle 算法;
-4, --version4,仅使用 IPv4;
-6, --version6,仅使用 IPv6;
-S, --tos N,设置 IP 服务类型(TOS,Type Of Service);
-L, --flowlabel N,设置 IPv6 流标签(仅支持 Linux);
-Z, --zerocopy,使用 “zero copy”(零拷贝)方法发送数据;
-O, --omit N,忽略前 n 秒的测试;
-T, --title str,设置每行测试结果的前缀;
--get-server-output,从 Server 端获取测试结果;
--udp-counters-64bit,在 UDP 测试包中使用 64 位计数器(防止计数器溢出)。

设置服务器端口

运行iperf3在服务器端,如果需要指定的端口号加上-p port

1
2
iperf3 -s -p <端口号>
例:iperf3 -s -p 8888

设置客户端数据流

运行iperf3在客户端,设置多个并行数据流-P

1
2
iperf3 -c <serverIP> -P streams
例:iperf3 -c 192.168.1.1 -P 3

服务端访问客户端

运行iperf3在客户端,反向测试(服务器端发送数据到客户端)

1
2
iperf3 -c serverIP -R
例:iperf3 -c 192.168.1.1 -R

使用UDP协议

运行iperf3在客户端,使用UDP协议,并设置使用的测试带宽

1
2
3
4
5
6
iperf3 -c serverIP -b 1000M -t 60 -d
例:iperf3 -c 192.168.1.1 -b 1000M -t 60 -d
-c 为客户端运行并要指定服务端的IP地址
-b 表示使用的测试带宽
-t 表示以时间为测试结束条件进行测试,默认为 10 秒;
-d 打印出更详细的debug调试信息

退出测试

终止或者退出测试,快捷键Ctrl + c

参考

[网络测试工具]iperf3极简使用教程windows(iperf3.1.3-windows-64bit 命令行版本(cmd)使用心得)_iperf-3.1.3-win64-CSDN博客

Home • Directory Lister (budman.pw)