当前位置: 首页 > ops >正文

局域网常用的测速工具,Iperf3使用教程

目录

下载方式

Windows

Linux

使用方法:测试局域网带宽

步骤一:服务端准备

步骤二:客户端发起连接

步骤三:查看结果

参数说明

1. Iperf常用参数(测试够用)

2. 通用参数(Server端和Client端共用)

3. Server端专用参数

4. Client端专用参数

5. 其他参数


Iperf3 是一款开源网络性能测试工具。只用一个exe文件,既可以作为客户端发起测试,也能作为服务端接收流量,操作灵活。

  • 支持无线/有线网络测试
  • 支持多平台(Windows、Linux、macOS、Android)
  • 无需安装,开源免费,命令简洁易上手
  • 可测TCP/UDP带宽、支持多线程并发测试

下载方式

Windows

① 直接访问官网下载压缩包:iPerf - Download iPerf3 and original iPerf pre-compiled binaries 

下载后进行解压,解压后通过命令行进入解压目录即可使用,无需安装。

② 如果访问不了网站,可以从我分享的CSDN资源中获取:

https://download.csdn.net/download/weixin_46008548/90797186

Linux

RedHat 系列:

sudo dnf install iperf3

Ubuntu 系列:

sudo apt-get install iperf3

特别提示:在 VMware ESXi 7.0+ 系统中已默认内置 Iperf3,可直接在 /usr/lib/vmware/vsan/bin/iperf3 路径下使用。

使用方法:测试局域网带宽

举个例子,现在有一个Win10 要访问 Winserver,FW2上做了NAT Server 2.2.2.10映射Winserver的192.168.153.100

我们来测一下,Win10访问WinServer 的带宽。

步骤一:服务端准备

iperf3 -s

默认监听 TCP 5201 端口

步骤二:客户端发起连接

iperf3 -c 服务端IP

即可开始进行一次单向带宽性能测试。

步骤三:查看结果

可以看出来,当前的带宽发送(Sender)是1.15Mbits/sec,接受(receiver)是1.02Mbits/sec

也就是大概1Mbits/sec(一般正常是没有这么低的,是我为了测试故意将链路带宽降低到这么低,这个测试结果是准确的,因为我就是设置了链路带宽1Mbits/sec)

参数说明

1. Iperf常用参数(测试够用)

(1)-s,–server:iperf服务器模式,默认启动的监听端口为5201,eg:iperf -s(2)-c,–client host:iperf客户端模式,host是server端地址,eg:iperf -c 222.35.11.23(3)-i,–interval:指定每次报告之间的时间间隔,单位为秒,eg:iperf3 -c 192.168.12.168 -i 2(4)-p,–port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。(5)-u,–udp:表示采用UDP协议发送报文,不带该参数表示采用TCP协议。(6)-l,–len:设置读写缓冲区的长度,单位为 Byte。TCP方式默认为8KB,UDP方式默认为1470字节。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。(7)-b,–bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。(8)-t,–time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒。(9)-A:CPU亲和性,可以将具体的iperf3进程绑定对应编号的逻辑CPU,避免iperf进程在不同的CPU间调度。

2. 通用参数(Server端和Client端共用)

(1)-f,–farmat [k|m|g|K|M|G]:指定带宽输出单位,“[k|m|g|K|M|G]”分别表示以Kbits, Mbits, Gbits, KBytes, MBytes,GBytes显示输出结果,默认Mbits,eg:iperf3 -c 192.168.12.168 -f M(2)-p,–port:指定服务器端监听的端口或客户端所连接的端口,默认是5001端口。(3)-i,–interval:指定每次报告之间的时间间隔,单位为秒,eg:iperf3 -c 192.168.12.168 -i 2(4)-F:指定文件作为数据流进行带宽测试。例如:iperf3 -c 192.168.12.168 -F web-ixdba.tar.gz

3. Server端专用参数

(1)-s,–server:iperf服务器模式,默认启动的监听端口为5201,eg:iperf -s(2)-c,–client host:如果iperf运行在服务器模式,并且用-c参数指定一个主机,那么iperf将只接受指定主机的连接。此参数不能工作于UDP模式。(3)-D:Unix平台下将Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。(4)-R:卸载Iperf服务(仅用于Windows)。(5)-o:重定向输出到指定文件(仅用于Windows)。(6)-P,–parallel:服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。

4. Client端专用参数

(1)-c,–client host:iperf客户端模式,host是server端地址,eg:iperf -c 222.35.11.23(2)-u,–udp:表示采用UDP协议发送报文,不带该参数表示采用TCP协议。(3)-b,–bandwidth [K|M|G]:指定UDP模式使用的带宽,单位bits/sec,默认值是1 Mbit/sec。(4)-t,–time:指定数据传输的总时间,即在指定的时间内,重复发送指定长度的数据包。默认10秒。(5)-l,–len:设置读写缓冲区的长度,单位为 Byte。TCP默认为8KB,UDP默认为1470字节。通常测试 PPS 的时候该值为16,测试BPS时该值为1400。(6)-n,–num [K|M|G]:指定传输数据包的字节数,例如:iperf3 -c 192.168.12.168 –n 100M(7)-P,–parallel:指定客户端与服务端之间使用的线程数。默认是1个线程。需要客户端与服务器端同时使用此参数。(8)-w,–window:指定套接字缓冲区大小,在TCP方式下,此设置为TCP窗口的大小。在UDP方式下,此设置为接受UDP数据包的缓冲区大小,用来限制可以接收数据包的最大值(9)-B,–bind:用来绑定一个主机地址或接口,这个参数仅用于具有多个网络接口的主机。在UDP模式下,此参数用于绑定和加入一个多播组。(10)-M,–mss:设置TCP最大信息段的值(11)-N,–nodelay:设置TCP无延时(12)-V:绑定一个IPv6地址。(13)-d,–dualtest:运行双测试模式。将使服务器端反向连接到客户端,使用-L参数中指定的端口(或默认使用客户端连接到服务器端的端口)。使用参数-r以运行交互模式。(14)-L,–listenport:指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。(15)-r,–tradeoff:往复测试模式。当客户端到服务器端的测试结束时,服务器端反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d参数。

5. 其他参数

(1)-h,–help:显示命令行参考并退出。[root]# iperf3 -h
Usage: iperf3 [-s|-c host] [options] iperf3 [-h|--help] [-v|--version](2)-v,–version:显示版本信息和编译信息并退出。

温馨提示: 不要将 Iperf3 长期暴露在公网监听状态,以免被用于非法流量攻击!

http://www.xdnf.cn/news/5182.html

相关文章:

  • QTableWidget实现多级表头、表头冻结效果
  • leetcode 349. Intersection of Two Arrays
  • 独立按键控制LED
  • [杂谈随感-13]: 人的睡眠,如何布置床的位置比较有安全?感?
  • HashMap中put()方法的执行流程
  • Python数据分析案例74——基于内容的深度学习推荐系统(电影推荐)
  • libwebsockets:高性能跨平台WebSocket库实践指南
  • C++——继承
  • 线程安全 1_线程安全
  • Ubuntu22.04怎么退出Emergency Mode(紧急模式)
  • Python环境搭建指南
  • 【redis 初阶】linux 上安装 redis
  • 电池的寿命(不清楚是什么类型/虽然有标明是贪心)
  • NVMe控制器IP设计之接口模块
  • 机器学习 day02
  • PD快充诱骗协议芯片XSP04D与主板共用一个Type-C和电脑传输数据
  • 关于Spring
  • 小刚说C语言刷题—1078求恰好使s=1+1/2+1/3+…+1/n的值大于X时n的值
  • 巡检机器人数据处理技术的创新与实践
  • 【Redis】string
  • Git 时光机:修改Commit信息
  • Java零组件实现配置热更新
  • gitkraken 使用教程
  • ai agent(智能体)开发 python3基础14:在python 中 总能看到方法里面套方法,那什么时候用这种方式合适呢?
  • Python常见面试题
  • LWIP的IP协议笔记
  • 通俗的理解MFC消息机制
  • 理解计算机系统_并发编程(2)_基于I/O复用的并发(一):select浅解
  • 如何理解编程中的递归、迭代与回归?
  • Shell 脚本编程1(常用命令+概述)