
IPerf это инструмент командной строки с открытым исходным кодом, предназначенный для тестирования пропускной способности сети между двумя сетевыми узлами. iPerf позволяет генерировать TCP- и UDP-трафик (нагрузку) между двумя узлами. С помощью iPerf можно быстро измерить максимальную пропускную способность сети (пропускную способность) между сервером и клиентом, а также провести стресс-тестирование канала провайдера, маршрутизатора, сетевого шлюза (брандмауэра), производительности сети Ethernet или Wi-Fi.
В этой статье мы покажем вам, как установить и использовать программу iPerf инструмент для тестирования скорости (пропускной способности) сети на Windows. Linux и VMware ESXi (существуют версии iPerf для Android, macOS, RouterOS от MikroTik и других платформ).
IPerf является кроссплатформенным инструментом и не требует установки в Windows. Просто загрузите исполняемый файл и запустите его на двух устройствах, пропускную способность сети между которыми необходимо протестировать. IPerf работает в режиме клиент-сервер. На первом устройстве iPerf запускается в режиме сервера (он ожидает трафика от клиента iPerf). На втором компьютере iPerf запускается в режиме клиента, генерирует TCP или UDP-трафик и измеряет максимальную скорость передачи данных.
В большинстве случаев iPerf3 сейчас используется версия iPerf3 (поддерживает высокоскоростное UDP-тестирование, по умолчанию используется порт 5201 TCP/UDP).
Как установить и использовать iPerf в Windows?
Вы можете скачать iPerf 3.1.3 для Windows по следующей ссылке https://iperf.fr/iperf-download.php. Если вы хотите использовать iPerf 2.0, вы можете получить его здесь. Вам не нужно устанавливать iPerf на Windows, достаточно скачать архив iPerf и распаковать его в локальную директорию на диске. В архиве всего два файла: cygwin1.dll
и iperf3.exe
.
$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 может работать в режиме сервера (-s
опция) или в режиме клиента (-c
). Если вы используете сервер iPerf под Windows, вам необходимо открыть входящий порт 5201 для протоколов TCP и UDP. Открыть порты можно с помощью графического интерфейса Windows Defender Firewall или с помощью команд 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 GUI для Windows. Например, Iperf3-Cygwin-GUI или jperf.
jperf написан на Java (для запуска jperf на компьютере должна быть установлена Java VM). Помимо графической формы для интерфейса CLI, Jperf может строить графики загрузки канала связи в реальном времени. Для его использования достаточно указать адрес сервера iPerf и запустить тест пропускной способности сети.
Install-Module -Name iPerfAutomate
Установка iPerf в Linux
В CentOS/RHEL/Fedora/Rocky Linux/Oracle Linux 8 пакет iperf3 доступен в базовом репозитории AppStream (в CentOS 7 вы можете найти iperf3 в репозитории EPEL).
Вы можете установить его с помощью команды dnf (yum):
# dnf install iperf3
В дистрибутивах Debian/Ubuntu/Mint вы можете установить iperf3 с помощью команды:
$ sudo apt install iperf3
Если вы хотите использовать ваш Linux-хост в качестве сервера iperf3, вам нужно открыть TCP/UDP порты 5201 в firewalld (или iptables):
# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --reload
Использование iPerf на VMware ESXi
Компания VMware удалила инструмент iPerf в версии ESXi 6.7, но вернула его в версии 6.7U1. Убедитесь, что iPerf установлен на вашем хосте ESXi. Подключитесь к консоли ESXi по SSH, перейдите в раздел /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. Используйте следующую команду для запуска iPerf на VMware ESXi:
# /opt/iperf/bin/iperf3
Если вы запускаете сервер iPerf на хосте ESXi, вам необходимо открыть порт 5201. По умолчанию этот порт отключен в брандмауэре ESXi. Чтобы открыть их, можно временно отключить брандмауэр ESXi:
# esxcli network firewall get
# esxcli network firewall set --enabled=false
# esxcli network firewall set --enabled true
При запуске iPerf на ESXi он должен быть привязан к интерфейсу vmkernel:
# esxcli network ip interface ipv4 get
# vmkping IP_address
Запустите iPerf на IP-адресе vmkernel:
# iperf -s -B 192.168.31.50
Использование инструмента iPerf для тестирования скорости/пропускной способности сети
Давайте рассмотрим несколько примеров использования iPerf для тестирования пропускной способности сети. В этом примере мы будем использовать хост Linux в качестве сервера iperf. Запустим iperf в режиме сервера:
# iperf3 –s
Сервер iPerf запущен, он ожидает соединения по TCP-порту 5201.
Server listening on 5201.
# iperf3 -s -w 32768 –p 5200
- -w 32768 — измените размер TCP-окон до 32 кБ (по умолчанию он составляет около 8 кБ);
- -p 5200 — порт, на котором iPerf ожидает соединения (обратите внимание, что iperf2 по умолчанию прослушивает порт 5001, а iperf3 — порт 5201).
Вы можете запустить сервер iPerf в качестве службы Windows, используя аргумент -D.
Я использую компьютер с Windows 10 в качестве клиента iPerf. Откройте командную строку и перейдите в каталог с исполняемым файлом iPerf:
cd c:\tools\iperf
Чтобы запустить тест пропускной способности сети с клиента, укажите адрес сервера iPerf (или имя DNS):
iperf3.exe -c 192.168.1.200
Клиент начнет генерировать сетевой трафик, протестирует соединение в течение 10 секунд и отобразит следующую таблицу результатов.
- Интервал — интервал тестирования (в сек.);
- Передача — размер передаваемых данных;
- Пропускная способность — средняя скорость передачи данных.
Если вы запустили сервер iPerf с увеличенным размером окна TCP, вы можете использовать следующую команду для получения максимальной нагрузки на сеть:
iperf3.exe -c 192.168.1.200 -P 8 -t 30 -w 32768 -i 5 -f g
- -c 192.168.1.200 — IP-адрес сервера iPerf;
- -w 32768 — увеличение размера окна TCP;
- -t 30 — продолжительность теста в секундах (по умолчанию 10 секунд);
- -P 8 — количество параллельных потоков для получения максимальной загрузки канала;
- -i 5 — отображение статистики iPerf каждые 5 секунд. Параметр удобно использовать для длительных тестов (несколько минут, часов);
- -f m — отображение результатов в Мбит/с. Здесь можно использовать значения kmgKMG (килобиты, мегабиты, мегабайты, гигабиты и т. д.).
В моем примере тест длился 30 секунд. В итоговом отчете нас интересуют значения Пропускная способность столбец, указанный в последнем [SUM] строке. Здесь указана средняя скорость отправки и получения данных по сети. В нашем случае средняя пропускная способность сети между двумя хостами составляет 85,9 Мбит/с. Было передано 307 МБ данных (Передача столбец) с симметричной скоростью (отправитель=получатель).
Вы можете запустить iPerf в обратном режиме (сервер отправляет данные, а клиент их получает). Для этого используйте -R для этого используйте опцию на клиенте.
По умолчанию iPerf генерирует TCP-трафик, если вам нужно проверить пропускную способность сети для UDP-пакетов, вы должны использовать опцию -u опция. В этом случае необходимо запустить сервер iPerf командой: iperf3 -s -u).
Если вам необходимо проверить пропускную способность вашего интернет-провайдера, вы можете воспользоваться одним из публичных серверов iPerf (список публичных хостов iPerf доступен здесь):
iperf3 -c iperf.scottlinux.com
Если вам нужно измерить максимальную скорость сети в обоих направлениях (в дуплексном режиме), используйте параметр -d опция на клиенте:
iperf3.exe -c IP -P 8 -t 30 -w 32768 –d
Во время проведения сетевого теста с помощью iPerf вы можете следить за графиком пропускной способности сетевого соединения через диспетчер задач.
Полный список опций можно отобразить следующим образом:
iperf3 –help
Iperf это простой в использовании и удобный сетевой инструмент, который поможет вам измерить производительность сетевого соединения и максимальную скорость передачи данных между двумя устройствами.