
Iperf官方版是一个网络性能测试工具。Iperf官方版可以测试TCP和UDP带宽质量。Iperf官方版还可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。
●开源免费,无使用门槛 —— 个人企业均可免费部署,代码完全开放
●轻量级,零 GUI —— 单 EXE 文件,命令行操作,CPU 占用极低
●测试结果精准可靠 —— 数据采集严谨,多维度参数可调,结果可作为网络性能评估依据
●跨平台兼容 —— Windows / Linux / macOS / Unix 全支持,实现异构网络环境互通测试
●自动化友好 —— JSON 输出 + 日志文件 + 批处理脚本,支持 CI/CD 集成
●10GbE+ 高速网络支持 —— 多线程模式(-P 参数)可充分利用多核 CPU,突破单线程性能瓶颈
●完全免费 —— 开源无授权费,个人企业零成本使用
●极简部署 —— 单文件绿色运行,无需安装,下载即用
●精准专业 —— 被 ESnet、劳伦斯伯克利国家实验室维护,被网络行业公认的标准工具
●灵活可配 —— 支持 20+ 参数组合,覆盖所有网络测试场景
●脚本友好 —— JSON 输出 + 日志文件,轻松对接监控系统
●跨代兼容 —— iPerf2 / iPerf3 双版本覆盖,适配所有主流操作系统
●网络工程师 / 运维工程师 — 日常巡检、链路验收、故障排查的必备工具
●软件开发人员 — 调试网络应用性能,验证在不同网络环境下的表现
●IT管理者 / 技术总监 — 网络容量规划,评估带宽是否满足业务需求
●网络相关专业师生 — 实验教学、科研测试的标准工具
1、网络设备性能验收 — 路由器、交换机、防火墙上架前的吞吐量验证
2、链路带宽评估 — 新建链路验收,验证实际带宽是否达标(如千兆/万兆)
3、网络故障诊断 — 当用户反馈网速慢、卡顿时,通过 UDP 丢包率 + Jitter 定位瓶颈
4、开发调试与质量保障 — 开发人员验证网络应用在各种网络环境下的传输表现
5、企业网络巡检 — 定期自动化测试,生成网络性能报告
1、测量网络带宽
2、报告MSS/MTU值的大小和观测值
3、支持TCP窗口值通过套接字缓冲
4、当P线程或Win32线程可用时,支持多线程。客户端与服务端5、支持同时多重连接
如何验证网络是否正常?
1、在服务端打开iperf带宽测试软件

2、输入-s,回车执行命令

3、在客户端打开软件,输入-c且指定ip地址,回车执行,得到结果


perf带宽测试软件用文件作为数据源无效?
先设定目标ip,然后指定文件即可
TCP发不出去包?
设置宽带上限后重试即可
安装Iperf
对于windows版的Iperf,直接将解压出来的iperf.exe和cygwin1.dll复制到%systemroot%目录即可
对于linux版的Iperf,请使用如下命令安装
gunzip -c iperf-.tar.gz | tar -xvf -
cd iperf-
./configure
make
make install
使用Iperf(以windows版本为例)
在命令提示符中输入iperf命令即可运行Iperf,使用命令Iperf –help可以查看iperf的帮助(可以参考下面Iperf命令)。

测试单线程TCP
在服务端运行iperf,输入命令iperf –s –p 12345 –i 1 –M 以在本机端口12345上启用iperf

在客户端运行iperf,输入命令iperf –c server-ip –p server-port –i 1 –t 10 –w 20K,其中参数说明如下:
-c:客户端模式,后接服务器ip
-p:后接服务端监听的端口
-i:设置带宽报告的时间间隔,单位为秒
-t:设置测试的时长,单位为秒
-w:设置tcp窗口大小,一般可以不用设置,默认即可


测试单线程UDP(默认带宽)
在服务端运行iperf,输入命令iperf –s -u –p 12345 –i 1 以在本机端口12345上启用iperf,并运行于udp模式
在客户端运行iperf,输入命令iperf -c server-ip -p server-port -i 1 -t 10 -b,其中参数说明如下:
-c:客户端模式,后接服务器ip
-p:后接服务端监听的端口
-i:设置带宽报告的时间间隔,单位为秒
-t:设置测试的时长,单位为秒
-b:设置udp的发送带宽,单位bit/s


Iperf命令
客户端与服务器共用选项
-f, --format [bkmaBKMA] 格式化带宽数输出。支持的格式有: 'b' = bits/sec 'B' = Bytes/sec 'k' = Kbits/sec 'K' = KBytes/sec 'm' = Mbits/sec 'M' = MBytes/sec 'g' = Gbits/sec 'G' = GBytes/sec 'a' = adaptive bits/sec 'A' = adaptive Bytes/sec
自适应格式是kilo-和mega-二者之一。除了带宽之外的字段都输出为字节,除非指定输出的格式,默认的参数是a。
注 意:在计算字节byte时,Kilo = 1024, Mega = 1024^2,Giga = 1024^3。通常,在网络中,Kilo = 1000, Mega = 1000^2, and Giga = 1000^3,所以,Iperf也按此来计算比特(位)。如果这些困扰了你,那么请使用-f b参数,然后亲自计算一下。
-i, --interval # 设置每次报告之间的时间间隔,单位为秒。如果设置为非零值,就会按照此时间间隔输出测试报告。默认值为零。
-l, --len #[KM] 设置读写缓冲区的长度。TCP方式默认为8KB,UDP方式默认为1470字节。
-m, --print_mss 输出TCP MSS值(通过TCP_MAXSEG支持)。MSS值一般比MTU值小40字节。通常情况
服务器端专用选项
-s, --server perf服务器模式
-D (v1.2或更高版本) Unix平台下Iperf作为后台守护进程运行。在Win32平台下,Iperf将作为服务运行。
-R(v1.2或更高版本,仅用于Windows) 卸载Iperf服务(如果它在运行)。
-o(v1.2或更高版本,仅用于Windows) 重定向输出到指定文件
-c, --client host 如果Iperf运行在服务器模式,并且用-c参数指定一个主机,那么Iperf将只接受指定主机的连接。此参数不能工作于UDP模式。
-P, --parallel # 服务器关闭之前保持的连接数。默认是0,这意味着永远接受连接。
客户端专用选项
-b, --bandwidth #[KM] UDP模式使用的带宽,单位bits/sec。此选项与-u选项相关。默认值是1 Mbit/sec。
-c, --client host 运行Iperf的客户端模式,连接到指定的Iperf服务器端。
-r, --tradeoff 往复测试模式。当客户端到服务器端的测试结束时,服务器端通过-l选项指定的端口(或默认为客户端连接到服务器端的端口),反向连接至客户端。当客户端连接终止时,反向连接随即开始。如果需要同时进行双向测试,请尝试-d参数。
-t, --time # 设置传输的总时间。Iperf在指定的时间内,重复的发送指定长度的数据包。默认是10秒钟。参考-l与-n选项。
-L, --listenport # 指定服务端反向连接到客户端时使用的端口。默认使用客户端连接至服务端的端口。
-P, --parallel 线程数。指定客户端与服务端之间使用的线程数。默认是1线程。需要客户端与服务器端同时使用此参数。