Как пользоваться iperf

В работе администратора удаленных серверов одна из ключевых задач – проверка реальной скорости и пропускной способности сетевого канала. Проделать это лучше при помощи специализированной утилиты Iperf. Обычно она входит в стандартный набор программ.

Как пользоваться iperf

Что такое утилита Iperf?

Программа представляет собой сетевой инструмент с открытым кодом. Он предназначен для тестов стабильности и определения пропускной способности сети между компьютерами на базе Windows и Linux любых версий. Приложение поддерживает популярные протоколы TCP, UDP, SCTP, IPv4 и IPv6. Результат тестирования содержит информацию об уровне потерь пакетов данных и других параметрах сети (фактически измеренных, а не предполагаемых).

Виды и версии Iperf

Пользоваться утилитой можно двумя способами. По умолчанию она поставляется в консольном варианте, но есть возможность установить графическую оболочку. Последняя разработана на языке Java (кроссплатформенное решение). Также есть различие в версиях – параллельно развивается ветвь Iperf2 и Iperf3. Первая считается заброшенной, и последний релиз имеет номер 2.0.5. Разработчик, компания ESnet, принял решение создать программу с нуля и учесть в ней предыдущие ошибки.

Как пользоваться iperf

Особенности новой версии:

  1. Iperf3 сделали однопоточным, чтобы было проще вносить изменения в код и разбираться с фирменными блоками.
  2. Обе версии несовместимы друг с другом. Многие функции Iperf3 внедрялись из проекта perfSONAR, чем эта версия кардинально отличается от Iperf2.
  3. Новая версия утилиты активно разрабатывается и обновляется официальным создателем до сегодняшнего дня.
  4. Если нужно тестирование параллельных потоков или двунаправленные тесты, лучше обратить внимание на «устаревшую» двойку.

Старая утилита Iperf поддерживается с 2014 года Робертом МакМахоном, который работает в компании Broadcom. Он по аналогии с Iperf3 внедрил в нее новые фишки, и инструмент вновь стал актуальным. Хотя сейчас развитие Iperf2 больше нацелено на использование UDP для тестов задержек, тогда как Iperf3 остается универсальным инструментом. Оба варианта программы легко запускаются на любой версии Linux или Windows.

Где скачать Iperf?

Источник загрузки для установки Iperf выбирается исходя из платформы, на которой ее предстоит использовать. Если речь идет о Linux или Unix, нужно зайти на репозиторий, который расположен по этому адресу.

Как пользоваться iperf

При работе с Windows ссылка будет несколько другая. Там есть дистрибутивы и для Android, т.к. мобильные устройства все чаще становятся обязательной частью сети в офисах.

Как установить Iperf в Windows?

Какую версию скачивать, решать пользователю. Разработчик прикладывает к архиву историю по изменениям, но кардинальных различий ждать не стоит. Обычно речь идет о мелких доработках и правках несущественных функций. В любом случае нужно распаковать скачанный файл, в нем содержится исполняемый модуль. К нему понадобится 2 библиотеки DLL, их можно взять по этой ссылке.

Как пользоваться iperf

Содержимое архивов нужно разместить в одном каталоге, потому что консольные утилиты самостоятельно не умеют искать файлы в других папках. Чтобы запустить программу, сначала следует открыть консоль командой CMD, перейти в нужный каталог и ввести название файла утилиты. При первом запуске система запросит разрешение для встроенного брандмауэра.

Как установить Iperf в CentOS?

В Linux-совместимых программах можно обойтись без ручного скачивания программы, потому что Iperf доступен для инсталляции из частного репозитория. Здесь иногда пользователи сталкиваются с проблемой, что данная стандартная команда не работает (на примере CentOS 7):

yum install iperf

Нужно сначала подключить репозиторий epel-release, для чего понадобится команда:

yum install epel-release

или

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm –y

Как пользоваться iperf

После этого можно посмотреть список репозиториев в файле yum.repos.d и убедиться, что появился нужный. Теперь программа готова к установке:

yum install iperf

Все, никаких ошибок система не выдает, инсталляция успешна выполнена. Iperf готова к вводу различных опций при запуске консольного варианта. В CentOS 8 указанный репозиторий доступен по умолчанию, поэтому допускается сразу начинать с команды по инсталляции (в составе пакета ее также нет). Команда для установки:

yum install epel-release

или

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm –y

Здесь приведен пример прямой ссылки на файл, ее допускается заменить на собственную, если речь идет о другой версии или ином репозитории. Также предварительно рекомендуется установить пакет wget:

yum install wget –y

А также подключить репозиторий PowerTools. Часть функций Iperf зависит от модулей, находящихся на нем:

dnf config-manager —set-enabled PowerTools

Перечисленные команды имеют отношение ко второй версии программы. Если речь идет о Iperf3, то в CentOS 7 нужно также сначала подключить репозиторий epel-release и затем установить утилиту. В CentOS 8 она доступна по команде: yum install epel-release. Остается открыть порт 5201, чтобы операционная система не блокировала работу программы:

firewall-cmd —permanent —add-port=5201/tcp

firewall-cmd —permanent —add-port=5201/udp

firewall-cmd –reload

Теперь проверка работоспособности:

iperf3 –s

Программа готова к использованию. Точнее, к экспериментам, если администратор ранее не имел опыта в ее применении.

Синтаксис и опции Iperf

Общий формат команд Iperf выглядит следующим образом:

iperf3 -s опции

Перечень опций различается для клиентской и серверной части сети, есть общие, применяемые на обеих сторонах. Общий список включает:

  • -p, —port – указать порт для сервера или выбрать, к какому порту надо подключаться;
  • -f, —format – формат выводимых данных, доступны значения: k,m,g,t,K,M,G,T;
  • -i, —interval – интервал времени между выводами результата тестирования;
  • -F, —file – использовать данные из файла вместо генерации случайных данных;
  • -V, —verbose – вывод максимально подробной информации;
  • -J, —json – вывод в формате JSON;
  • —logfile – записывать информацию в лог-файл;
  • —forceflush – очищать историю перед выводом следующего результата тестирования;
  • -v, —version – узнать версию программы.

Серверная часть, судя по инструкции Iperf, включает минимальный набор опций:

  • -D, —daemon – запустить сервер в фоновом режиме;
  • -I, —pidfile – путь для записи PID-файла процесса;
  • -1, —one-off – обработать только одно подключение клиента, а затем выйти.

Клиентская часть более управляемая, опций здесь больше:

  • —sctp – использовать SCTP вместо TCP;
  •  -u, —udp – использовать UDP вместо TCP;
  • —connect-timeout – таймаут для первого соединения с сервером в миллисекундах;
  • -b, —bitrate – битрейт: для UDP используется по умолчанию 1 Мбит/сек, для TCP – не ограничено;
  • -t, —time – время одного теста в секундах (по умолчанию 10 секунд);
  • -R, —reverse – обратный тест: не клиент отправляет данные серверу, а сервер клиенту;
  • -P – количество потоков;
  • -w – размер окна TCP;
  • -4, —version4 – использовать только IPv4;
  • -6, —version6 – использовать только IPv6.

Выше перечислены наиболее популярные опции. Их обычно достаточно, чтобы успешно тестировать различные сети. Пример использования программы:

iperf3 -s -f K

Здесь она запускается на отображение результата в килобайтах (буква К после опции -f). Варианты для нее: k – килобиты, m – мегабиты, g – гигабиты, K – килобайты, M – мегабайты, G – гигабайты, T – терабайты. Выбор зависит от штатной скорости сети, прогнозируемой пропускной способности канала. Вот еще пример:

ipref3 -s -p 5500

Здесь явно указан порт номер 5500, по которому нужно подключаться к удаленному серверу. Можно вручную включить использование пакетов UDP вместо TCP:

iperf3 -c 192.168.0.101 -f K –u

Скорость соединения по интернету часто проверяют при помощи одного из публичных порталов Iperf:

iperf3 -c iperf.volia.net

Выводы

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

Hosting2go.ru