侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux iperf命令教程:如何轻松实现网络性能测试(附案例详解和注意事项)

Linux iperf命令介绍

iperf是一个用来测试网络带宽、延迟、丢包等性能指标的命令行工具。它可以在两台或多台主机之间建立TCP或UDP连接,发送和接收数据包,然后统计和显示各种网络参数。iperf可以用来测试不同的网络环境,如有线、无线、局域网、广域网等。iperf还支持多种选项和参数,可以定制测试的模式、时长、报告格式等。iperf是一个开源的软件,可以在多种操作系统和平台上运行,如Linux、Windows、Mac OS X等。

Linux iperf命令适用的Linux版本

iperf命令可以在大多数的Linux发行版上运行,如Ubuntu、Debian、Fedora、CentOS等。但是,不同的发行版可能需要不同的方式来安装iperf。一般来说,可以使用发行版自带的包管理器来安装iperf,如apt、yum、dnf等。例如,在Ubuntu上,可以使用以下命令来安装iperf:

[linux@bashcommandnotfound.cn ~]$ sudo apt update
[linux@bashcommandnotfound.cn ~]$ sudo apt install iperf

在CentOS 7上,可以使用以下命令来安装iperf:

[linux@bashcommandnotfound.cn ~]$ sudo yum update
[linux@bashcommandnotfound.cn ~]$ sudo yum install iperf

在CentOS 8上,可以使用以下命令来安装iperf:

[linux@bashcommandnotfound.cn ~]$ sudo dnf update
[linux@bashcommandnotfound.cn ~]$ sudo dnf install iperf

如果发行版的包管理器没有提供iperf的安装包,或者想要安装最新版本的iperf,可以从iperf的官网下载源码包,然后编译和安装。具体的步骤如下:

  1. 下载iperf的源码包,如iperf-3.10.1.tar.gz,从这里获取。
  2. 解压源码包,进入解压后的目录,如iperf-3.10.1。
  3. 运行./configure命令,检查系统的依赖和配置。
  4. 运行make命令,编译源码。
  5. 运行sudo make install命令,安装iperf到系统的默认路径,如/usr/local/bin。
  6. 运行sudo ldconfig命令,更新系统的库缓存。

Linux iperf命令的基本语法

iperf命令的基本语法格式如下:

iperf [options] -s|-c host

其中,-s表示以服务器模式运行,-c表示以客户端模式运行,host表示要连接的主机的IP地址或域名。options表示一些可选的参数,用来控制测试的细节,如端口号、协议类型、测试时长、报告间隔等。可以使用iperf -h命令来查看所有可用的选项和参数。

Linux iperf命令的常用选项或参数说明

iperf命令有很多可选的选项和参数,可以用来定制测试的模式、时长、报告格式等。下面列举了一些常用的选项和参数,以及它们的含义和用法。如果想要查看所有的选项和参数,可以使用iperf -h命令。

选项或参数含义和用法
-s以服务器模式运行,等待客户端的连接
-c host以客户端模式运行,连接到指定的主机
-p port指定端口号,默认为5201
-u使用UDP协议,默认为TCP协议
-b bandwidth指定带宽,单位为Kbps、Mbps、Gbps等,仅对UDP协议有效
-t time指定测试时长,单位为秒,默认为10秒
-i interval指定报告间隔,单位为秒,默认为1秒
-f format指定报告格式,可以为k、K、m、M、g、G等,分别表示Kbits、KBytes、Mbits、MBytes、Gbits、GBytes
-l length指定数据包的长度,单位为字节,默认为128KB
-w window指定TCP窗口大小,单位为字节
-P num指定并发的连接数,默认为1
-R交换服务器和客户端的角色,即客户端发送数据,服务器接收数据
-d启用双向测试,即同时进行发送和接收
-r启用反向测试,即先进行发送,再进行接收
-n num指定发送的数据量,单位为KB、MB、GB等
-k num指定发送的数据块的数量
-V使用IPv6地址,默认为IPv4地址
-J以JSON格式输出报告
-h显示帮助信息

Linux iperf命令的实例

下面给出一些iperf命令的实例,展示了如何使用不同的选项和参数来测试网络性能。假设有两台主机,一台的IP地址为192.168.1.100,另一台的IP地址为192.168.1.101。在每个实例中,都需要在两台主机上分别运行iperf命令,一台作为服务器,一台作为客户端。

实例1:使用TCP协议测试网络带宽

在192.168.1.100上,运行以下命令,以服务器模式运行iperf:

[linux@bashcommandnotfound.cn ~]$ iperf -s

在192.168.1.101上,运行以下命令,以客户端模式运行iperf,连接到192.168.1.100:

[linux@bashcommandnotfound.cn ~]$ iperf -c 192.168.1.100

这样,两台主机就会建立一个TCP连接,客户端会向服务器发送数据,持续10秒,每秒报告一次网络带宽、延迟、丢包等信息。最后,会显示一个汇总的报告,如下所示:

[linux@bashcommandnotfound.cn ~]$ iperf -c 192.168.1.100
------------------------------------------------------------
Client connecting to 192.168.1.100, TCP port 5201
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.101 port 49512 connected with 192.168.1.100 port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  11.2 MBytes  94.1 Mbits/sec
...

实例2:使用UDP协议测试网络带宽

在192.168.1.100上,运行以下命令,以服务器模式运行iperf,并指定使用UDP协议:

[linux@bashcommandnotfound.cn ~]$ iperf -s -u

在192.168.1.101上,运行以下命令,以客户端模式运行iperf,连接到192.168.1.100,并指定使用UDP协议,以及发送的带宽为100Mbps:

[linux@bashcommandnotfound.cn ~]$ iperf -c 192.168.1.100 -u -b 100M

这样,两台主机就会建立一个UDP连接,客户端会向服务器发送数据,持续10秒,每秒报告一次网络带宽、延迟、丢包等信息。最后,会显示一个汇总的报告,如下所示:

[linux@bashcommandnotfound.cn ~]$ iperf -c 192.168.1.100 -u -b 100M
------------------------------------------------------------
Client connecting to 192.168.1.100, UDP port 5201
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.101 port 49513 connected with 192.168.1.100 port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  11.9 MBytes  99.7 Mbits/sec
[  3]  1.0- 2.0 sec  11.9 MBytes   100 Mbits/sec
...
[  3] Sent 84971 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec   119 MBytes   100 Mbits/sec   0.029 ms    0/84970 (0%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order

可以看到,客户端发送的带宽和服务器接收的带宽基本一致,丢包率为0%,延迟为0.029毫秒。这说明网络性能很好,没有发生拥塞或错误。如果有丢包或延迟过高的情况,可以调整发送的带宽或数据包的长度,来观察网络的变化。

实例3:测试多个并发的TCP连接的网络带宽

在192.168.1.100上,运行以下命令,以服务器模式运行iperf,并指定接受4个并发的TCP连接:

[linux@bashcommandnotfound.cn ~]$ iperf -s -P 4

在192.168.1.101上,运行以下命令,以客户端模式运行iperf,连接到192.168.1.100,并指定创建4个并发的TCP连接:

[linux@bashcommandnotfound.cn ~]$ iperf -c 192.168.1.100 -P 4

这样,两台主机就会建立4个TCP连接,每个连接都会向服务器发送数据,持续10秒,每秒报告一次网络带宽、延迟、丢包等信息。最后,会显示一个汇总的报告,如下所示:

[linux@bashcommandnotfound.cn ~]$ iperf -c 192.168.1.100 -P 4
------------------------------------------------------------
Client connecting to 192.168.1.100, TCP port 5201
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.101 port 49514 connected with 192.168.1.100 port 5201
[  5] local 192.168.1.101 port 49515 connected with 192.168.1.100 port 5201
[  6] local 192.168.1.101 port 49516 connected with 192.168.1.100 port 5201
[  7] local 192.168.1.101 port 49517 connected with 192.168.1.100 port 5201
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  2.75 MBytes  23.1 Mbits/sec
[  5]  0.0- 1.0 sec  2.75 MBytes  23.1 Mbits/sec
...

Linux iperf命令的注意事项

  • 客户端和服务器间的防火墙可能会阻止iperf测试。
  • 如果收到"bash: iperf: command not found"提示,可能需要安装iperf。

Linux iperf相关命令

0

评论区