iperf命令
iperf
iperf是一个基于TCP/IP和UDP/IP的网络性能测试工具,用于检测网络带宽使用率和网络质量,能测试最大TCP和UDP带宽性能,可以报告带宽、网络延迟抖动、数据包丢失率和最大传输单元等统计信息等。如测试服务器和网络设备如路由器,交换机,防火墙等的网络性能。iperf即有Linux版,又有Windows版(Windows版的叫jperf或xjperf),后面还出了移动版,Linux版更新比较快,Windows版更新慢。这里我们只谈论linux版的安装和使用。
官方支持多个系统版本
iperf安装
1.源码安装
下载好源码包, 先解压,然后./configure最后make && make install
2.包管理器安装(debian和redhat类)debian/ubuntu:apt-get install iperf
redhat/centos:yum install iperf
iperf参数解析
iperf是基于服务器和客户端的工作模式,所以在进行测试之前应先在目标计算机上启动服务器端程序,然后客户端通过iperf连接服务端,iperf客户端和服务器端程序其实都是同一个程序,只是使用了不同的命令参数而已。
1.服务端启动相关参数-s 以server模式启动
-D 以服务方式运行ipserf
-R 停止iperf服务,针对-D参数
-o 重定向输出报告或错误信息到指定文件。
-c 如果Iperf运行为服务器模式,则可利用-c参数指定一个客户端,本机将接受指定客户端的连接,但不支持UDP协议
-P,--parallel # 设置Iperf服务模式下的最大连接数,默认值为0,表示不限制连接数量
2.客户端连接相关参数-b,--bandwidth 指定客户端通过UDP协议发送信息的带宽,默认值为1Mbit/s
-c,--client 指定Iperf服务器的主机名和IP地址
-d,--dualtest 同时进行双向传输测试
-n,--num 指定传输的字节数
-r,--tradeoff 单独进行双向传输测试
-t,--time 指定Iperf测试时间
-L,--listenport 指定一个端口,服务器将利用这个端口与客户机连接
-P, --parallel 设置Iperf客户端至Iperf服务器的连接数,默认值为1
-S, --tos 设置发出包的类型,具体类型请参阅man文档
-F 指定需要传输的文件
-T 指定ttl值
3.服务端与客户端通用参数-f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位
-i sec 以秒为单位显示报告间隔
-l 缓冲区大小,默认是8KB
-m 显示tcp最大mtu
-o 将报告和错误信息输出到文件
-p 指定服务器端使用的端口或客户端所连接的端口
-u 使用udp协议
-w 指定TCP窗口大小,默认是8KB
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包
应用举例首先,在一台主机例如192.168.1.1启动服务端(默认监听5001端口)
ipserf -s客户端192.168.1.2测试:在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒
iperf -c 192.168.1.1 -t 60客户端同时向服务器端发起30个连接线程
iperf -c 192.168.1.1 -P 30 -t 60测试上、下行带宽
iperf -c 192.168.1.1 -d -t 60