Iperf: тестирование пропускной способности и скорости сети

Iperf – утилита с открытым исходным кодом, предназначенная для тестирования пропускной способности сети между двумя узлами. Утилита iperf позволяет генерировать нагрузочный TCP и UDP трафик между хостами. С помощью iperf вы можете быстро измерить максимальную пропускную способность сети между сервером и клиентом, провести нагрузочное тестирование канала связи, маршрутизатора, сетевого шлюза (файервола), вашей Ethernet или Wi-Fi сети.

В этой статье мы покажем, как установить и использовать утилиту iperf для проверки скорости сети в Windows и Linux CentOS (есть версии iperf для Android, MacOS, RouterOS от MikroTik и других платформ).

Версии iperf: iperf2 и iperf3

Утилита Iperf является кроссплатформенной и не требует установки, достаточно скопировать и запустить ее на двух устройствах, пропускную способность сети между которыми нужно оценить. Iperf работает в режиме клиент-сервер. На первом компьютере утилита Iperf запускается в режиме сервера (ожидает трафик от клиента). На втором компьютере Iperf запускается в режиме клиента, начинает генерировать TCP/UDP трафик и выполнять измерение максимальной скорости передачи данных.

На текущий момент есть две независимые ветки iperf, развивающиеся параллельно: iperf2 и iperf3. По большому счету эти две версии iperf совместимы между собой, но используют разные порты по умолчанию. В iperf1/2 это 5001, в iperf3 – 5201.

  • iperf2 нужно использовать для параллельных потоков, двунаправленных тестов, а также эта версия официально поддерживается в Windows
  • В iperf3 лучше реализовано высокоскоростное тестирование UDP. Код iper3 значительно меньше и лучше оптимизирован.

Остальные отличия не настолько существенны, чтобы специально использовать определенную версию (даже опции запуска у них совпадают). В этой статье мы будем использовать iperf3.

Iperf3 официально не поддерживается в Windows, но работает вполне нормально. Каких-то явных проблем или багов я не заметил.

Установка iPerf для Windows

Вы можете скачать iperf 3.1 для Windows по ссылке https://iperf.fr/iperf-download.php или версию iperf2 (здесь). Достаточно скачать архив iperf и распаковать в локальный каталог на диске. Установка утилиты не требуется.В архиве всего два файла: cygwin1.dll и iperf3.exe.

скачать версию iperf для windows 10

Для Windows есть несколько реализаций графического интерфейса. Например, Iperf3-Cygwin-GUI и jperf.

Утилита jperf написана на Java (для работы на компьютере должна быть установлена Java-машина).  Помимо графических рюшечек к CLI интерфейсу, Jperf умеет в реальном времени строить графики пропускной способности канала связи.

Для использования достаточно указать адрес сервера iPerf и запустить проверку.

Jperf 2.0.2 - графический интерефейс

В галерее скриптов PowerShell есть отдельный модуль iPerfAutomate, который можно использовать для получения данных измерения производительности сети из скриптов PowerShell. Вы можете установить модуль так: Install-Module -Name iPerfAutomate

Установка iperf в CentOS Linux

В CentOS 8 пакет iperf3 включен в состав базового репозитория AppStream (в CentOS 7 iperf3 есть в EPEL). Вы можете установить его стандартной командой yum/dnf:

# dnf install iperf3

linux centos: установка iperf3 через yum или dnf

В дистрибутивах Debian/Ubuntu вы можете установить утилиту iperf3 командой:

sudo apt install iperf3

Если данный Linux сервер планируется использовать в качестве сервере iperf3, нужно открыть порт 5201 в firewalld:

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

Измерение скорости сети с помощью Iperf

Рассмотрим теперь несколько примеров использования iperf для тестирования пропускной способности сети. В этом примере мы будем использовать сервер с CentOS в качестве сервера iperf. Запустим утилиту iperf в серверном режиме:

# iperf3 –s

Сервер iperf запущен, он ожидает соединения на порту TCP/5201.

Server listening on 5201
Важно. Аргументы утилиты iperf регистрозависимы!

запуска iperf3 сервера на примере centos

Можно запустить iperf сервер с большим размером TCP окна и на другом порту:

# iperf3 -s -w 32768 –p 5203

-w 32768 – зададим размер окна TCP в 32 KB (по умолчанию около 8 Кб)

–p 5203 – порт, на котором ожидает подключения iperf (напоминаю, что iperf2 по умолчанию слушает на порту 5001.  

В качестве клиента iperf я использую компьютер с Windows 10. Запустите командную строку и перейдите в каталог с исполняемым файлом iperf:

cd c:\tools\iperf

Чтобы запустить проверку сети со стороны клиента, укажите адрес (имя) сервера iperf:

iperf3.exe -c 192.168.1.202

Если вы запустили сервер iperf с увеличенным размером TCP окна, вы можете использовать следующую команду для получения максимальной нагрузки на сеть:

iperf3.exe -c 192.168.1.202 -P 8 -t 30 -w 32768

  • -c168.1.202 – IP адрес сервера iperf;
  • -w 32768 — увеличиваем размер TCP окна;
  • -t 30 – время в секундах, в течении которого выполняется тестирование (по умолчанию 10 секунд);
  • -P 8 — число параллельных потоков (подключений), используется для получения максимальной нагрузки на канал.

запуск клента iperf3 в windows 10 для проверки максимальной скорости передачи данных между узлами сети

В нашем примере тестирование длилось 30 секунд. В итоговом отчете нас интересует значения столбца Bandwidth в последней строки [SUM]. В нашем случае средняя пропускная способность сети между двумя узлами – 79,7 Мбит/с. Было передано 285 Мб данных (столбец Transfer).

С помощью аргумента f можно изменить формат отображения скорости передачи (биты, килобиты, мегабайты).  С помощью опции –i можно указать интервал, через который нужно отображать промежуточные результаты. Это удобно при продолжительных тестах (несколько минут, часов).

iperf итоговые данные о максимальной скорости передачи данных в сети между двумя хостами

Можно запустить iperf в обратном режиме (сервер отправляет данные, а клиент принимает), для этого на клиенте указывается опция –R.

По-умолчанию утилита генерирует TCP трафик, если вам нужно проверить скорость сети для UDP пакетов, необходимо использовать ключ –u (сервер при этом запускается командой: iperf3 -s –u).

Если вам нужно проверить ваш интернет-канал (предоставляемый провайдером), можно воспользоваться одним из публичных iperf серверов (список доступен здесь):

iperf3 -c iperf.it-north.net

Если нужно оценить пропускную способность сети в обоих направлениях (в дуплексом режиме), дополнительно на клиенте нужно указать опцию d:

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

iperf - тестирование в дуплексном режиме

Во время выполнения теста сете с помощью iperf вы можете следить за нагрузкой на сетевой интервейс компьютера через Task Manager.

Важно отметить, что при тестировании Iperf используем всю доступную пропускную способность канала связи между клиентом и сервером, что может негативно повлиять на продуктивные приложения и пользователей.

Загрузка LAN интерфейса ethernet с помощью iperf

Полный список опций утилиты iperf можно получить так:

iperf3 –help

Iperf – простая и удобная сетевая утилита, которая поможет вам измерить производительность сетевого подключения и максимальную скорость передачи данных между двумя устройствами.


Предыдущая статья Следующая статья


Комментариев: 3 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)