当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 iPerf 测试网络速度和带宽

作者:精品下载站 日期:2024-12-14 23:31:39 浏览:15 分类:玩电脑

使用 iPerf 测试网络速度和带宽


IPerf 是一个开源命令行工具,旨在测试两个网络主机之间的网络吞吐量。 iPerf 允许在两个主机之间生成 TCP 和 UDP 流量(负载)。您可以使用 iPerf 快速测量服务器和客户端之间的最大网络带宽(吞吐量),并对 ISP 链路、路由器、网络网关(防火墙)、以太网或 Wi-Fi 网络性能进行压力测试。

在本文中,我们将向您展示如何安装和使用 iPerf 工具在 Windows、Linux VMware ESXi (有适用于 Android、macOS、MikroTik 的 RouterOS 和其他平台的 iPerf 版本)上测试网络速度(吞吐量)。

IPerf 是一个跨平台工具,不需要在 Windows 中安装。只需下载可执行文件并在两台设备上运行它,需要测试两台设备之间的网络吞吐量。 IPerf 以客户端-服务器模式工作。在第一台设备上,iPerf 以服务器模式启动(它正在等待来自 iPerf 客户端的流量)。在第二台计算机上,iPerf 以客户端模式启动,生成 TCP 或 UDP 流量,并测量最大数据传输速率。

大多数情况下,现在使用的是iPerf3版本(支持高速UDP测试,默认使用5201 TCP/UDP端口)。

如何在Windows上安装和使用iPerf?

您可以通过以下链接下载适用于 Windows 的 iPerf 3.1.3:https://iperf.fr/iperf-download.php。如果您想使用iPerf 2.0,可以在这里获取。您不需要在 Windows 上安装 iPerf,只需下载 iPerf 存档并将其解压到驱动器上的本地目录即可。存档中只有两个文件:

cygwin1.dll

iperf3.exe

[玩转系统] 使用 iPerf 测试网络速度和带宽

您可以下载 iPerf 存档并使用 PowerShell 脚本将其解压到本地驱动器:

$iPerfZip = "https://iperf.fr/download/windows/iperf-3.1.3-win64.zip"
$TargetFolder = Join-Path $env:TEMP "iperf.zip"$iPerfPath = Join-Path $env:TEMP "iperf"
if (!(Test-Path $iPerfPath))
{ Invoke-WebRequest -Uri $iPerfZip -OutFile $TargetFolder
Expand-Archive -Path $TargetFolder -DestinationPath $iPerfPath
}

Iperf 是一个控制台工具,您需要在命令行中运行它。打开命令提示符 (cmd.exe) 并转至包含该实用程序的目录。例如:

cd c:\tools\iperf

如果您运行不带参数的 iperf3.exe 程序,它将列出可用的选项。

[玩转系统] 使用 iPerf 测试网络速度和带宽

iPerf 实用程序可以在服务器模式下运行(

-s

选项)或客户端模式(

-c

)。如果您在 Windows 上运行 iPerf 服务器,则需要为 TCP 和 UDP 协议打开入站端口 5201。您可以使用 Windows Defender 防火墙 GUI 或 PowerShell 命令打开端口。创建并启用防火墙规则,如下所示:

New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-TCP' -Direction Inbound -Protocol TCP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule
New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-UDP' -Direction Inbound -Protocol UDP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule

[玩转系统] 使用 iPerf 测试网络速度和带宽

有多种适用于 Windows 的 iPerf GUI 实现。例如,Iperf3-Cygwin-GUIjperf

jperf是用Java编写的(为了运行jperf,必须在计算机上安装Java VM)。除了 CLI 界面的图形形式之外,Jperf 还可以构建通信通道负载的实时图形带宽图表。要使用它,只需指定 iPerf 服务器地址并开始网络吞吐量测试。

[玩转系统] 使用 iPerf 测试网络速度和带宽

PowerShell 脚本库中有一个单独的 iPerfAutomate 模块,可用于获取 PowerShell 脚本中的网络性能指标。您可以使用以下命令安装该模块:

Install-Module -Name iPerfAutomate

在 Linux 上安装 iPerf

在 CentOS/RHEL/Fedora/Rocky Linux/Oracle Linux 8 上,iperf3 软件包可在基本 AppStream 存储库中找到(在 CentOS 7 中,您可以在 EPEL 存储库中找到 iperf3)。

您可以使用 dnf (yum) 命令安装它:

# dnf install iperf3

[玩转系统] 使用 iPerf 测试网络速度和带宽

在 Debian/Ubuntu/Mint 发行版上,您可以使用以下命令安装 iperf3:

$ sudo apt install iperf3 

如果你想使用你的Linux主机作为iperf3服务器,你需要在firewalld(或iptables)中打开TCP/UDP端口5201:

# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --reload

在 VMware ESXi 上使用 iPerf

VMware 在 ESXi 6.7 中删除了 iPerf 工具,但在 6.7U1 中又将其带回。确保您的 ESXi 主机上安装了 iPerf。通过 SSH 连接到 ESXi 控制台,进入 /usr/lib/vmware/vsan/bin 目录并检查其中是否包含 iperf 或 iperf3 二进制文件。

如果未安装 iPerf,您可以在此处手动下载 iPerf 离线包 (http://vibsdepot.v-front.de/depot/bundles/iperf-2.0.5-1-offline_bundle.zip)。将其复制到 ESXi 主机并使用以下命令进行安装:

# esxcli software vib install -d /iperf-2.0.5-1-offline_bundle.zip -no-sig-check

该工具将安装到 /opt/iperf/bin 目录。使用以下命令在 VMware ESXi 上运行 iPerf:

# /opt/iperf/bin/iperf3

在 v-front 网站上您可以找到大量适用于 ESXi 的社区驱动程序和工具。此处还提供了将驱动程序添加到 ESXi 安装映像的脚本。

如果您在 ESXi 主机上运行 iPerf 服务器,则需要打开端口 5201。默认情况下,该端口在 ESXi 防火墙中处于禁用状态。要打开它们,您可以暂时禁用 ESXi 防火墙:

# esxcli network firewall get
# esxcli network firewall set --enabled=false

[玩转系统] 使用 iPerf 测试网络速度和带宽

# esxcli network firewall set --enabled true

在 ESXi 上运行 iPerf 时,必须将其绑定到 vmkernel 接口:

# esxcli network ip interface ipv4 get

您可以使用 vmkping 命令检查 ESXi 主机之间的可用性:

# vmkping IP_address

在 vmkernel IP 地址上运行 iPerf:

# iperf -s -B 192.168.31.50

使用 iPerf 工具测试网络速度/带宽

现在让我们看一些使用 iPerf 测试网络吞吐量的示例。在此示例中,我们将使用 Linux 主机作为 iperf 服务器。让我们在服务器模式下运行 iperf:

# iperf3 -s

iPerf 服务器正在运行,正在等待 5201 TCP 端口上的连接。

Server listening on 5201.

提示。 iPerf 参数区分大小写!

[玩转系统] 使用 iPerf 测试网络速度和带宽

根据客户端和服务器之间的防火墙设置,您可以使用参数 -p [port_number] 更改侦听端口。您可以使用较大的 TCP 窗口大小并在不同的 TCP 端口上运行 iPerf 服务器。使用命令:

# iperf3 -s -w 32768 -p 5200
  • -w 32768 - 将 TCP 窗口大小更改为 32 kB(默认情况下约为 8 kB);

  • -p 5200 - iPerf 等待连接的端口(请注意,iperf2 默认侦听端口 5001,iperf3 默认侦听端口 5201)。

您可以使用 -D 参数将 iPerf 服务器作为 Windows 服务运行。

我使用装有 Windows 10 的计算机作为 iPerf 客户端。打开命令提示符并更改到包含 iPerf 可执行文件的目录:

cd c:\tools\iperf

为了从客户端运行网络带宽测试,请指定 iPerf 服务器地址(或 DNS 名称):

iperf3.exe -c 192.168.1.200

客户端将开始生成网络流量,测试连接 10 秒,并显示下表的结果。

[玩转系统] 使用 iPerf 测试网络速度和带宽

  • Interval - 测试间隔(以秒为单位);

  • 传输 - 传输数据的大小;

  • 带宽 - 平均数据传输速率。

如果您以增加的 TCP 窗口大小启动 iPerf 服务器,则可以使用以下命令来获取最大网络负载:

iperf3.exe -c 192.168.1.200 -P 8 -t 30 -w 32768 -i 5 -f g
  • -c 192.168.1.200 - iPerf服务器的IP地址;

  • -w 32768 - 增加 TCP 窗口大小;

  • -t 30 - 测试持续时间(以秒为单位)(默认为 10 秒);

  • -P 8 - 是获得最大通道负载的并行线程数;

  • -i 5 - 每 5 秒显示 iPerf 统计信息。该参数便于长时间测试(几分钟、几小时)使用;

  • -f m — 以 Mbps 显示结果。您可以在此处使用 kmgKMG 值(千位、兆位、兆字节、千兆位等)。

在我的示例中,测试持续了 30 秒。在最终报告中,我们对最后一个 [SUM] 行中列出的 Bandwidth 列的值感兴趣。这显示了通过网络发送和接收数据的平均速度。在我们的例子中,两台主机之间的平均网络带宽为85.9 Mbit/s。已以对称速度(发送方=接收方)传输了 307 MB 数据(传输列)。

[玩转系统] 使用 iPerf 测试网络速度和带宽

您可以以反向模式运行 iPerf(服务器发送数据,客户端接收数据)。为此,请在客户端上使用-R选项。

默认情况下,iPerf 生成 TCP 流量,如果您需要检查 UDP 数据包的网络带宽,则必须使用 -u 选项。在这种情况下,您应该使用以下命令启动 iPerf 服务器:iperf3 -s -u)。

如果您需要测试您的互联网服务提供商带宽,您可以使用公共 iPerf 服务器之一(iPerf 公共主机列表可在此处找到):

iperf3 -c iperf.scottlinux.com

请注意,iPerf3 服务器仅同时接受单个客户端连接(iPerf2 中允许同时进行多个客户端测试)。如果 iPerf 服务器当前正在为客户端连接提供服务,您将收到错误:iperf3:错误 — 服务器正忙于运行测试。稍后再试。

如果需要测量两个方向的最大网络速度(双工模式),请在客户端使用-d选项:

iperf3.exe -c IP -P 8 -t 30 -w 32768 -d

[玩转系统] 使用 iPerf 测试网络速度和带宽

使用 iPerf 运行网络测试时,您可以通过任务管理器监控网络连接吞吐量图表。

值得注意的是,在测试过程中,iPerf 使用客户端和服务器之间通信通道的所有可用带宽,这可能会对生产应用程序和用户产生负面影响。

[玩转系统] 使用 iPerf 测试网络速度和带宽

您可以显示选项的完整列表,如下所示:

iperf3 -help

Iperf 是一款易于使用且方便的网络工具,可帮助您测量网络连接性能和两个设备之间的最大数据传输速度。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯