Lumpics lumpics.ru

Как пользоваться утилитой iPerf

Шаг 1: Интеграция в систему

iPerf – это кроссплатформенная консольная утилита, позволяющая тестировать пропускную способность сети между двумя узлами и анализировать скорость передачи данных между сервером и клиентом. У нее открытый исходных код, реализована поддержка тестов пропускной способности TCP, UDP и SCTP.

Если iPerf уже установлена на компьютер, можете сразу переходить к Шагу 2 данной инструкции.

Утилита работает на компьютерах как на базе Windows, так и Linux или macOS. Процесс установки на платформах разный. Например, в macOS для этого потребуется Homebrew, а в Linux требуется выполнить команду sudo apt install iperf3 (в Ubuntu и Debian) или sudo dnf install iperf3 (Fedora и CentOS).

Рассмотрим порядок действий в операционной системе Windows, поскольку она является наиболее распространенной.

Скачать iPerf с официального сайта

Кликните по ссылке выше, чтобы начать загрузку файлов утилиты с официального источника. Скачан будет архив, который потребуется распаковать в любую папку на локальном диске, например, в расположение C:\tools\iperf. Утилита не требует установки, поэтому достаточно запустить «iperf3.exe», после чего возможности утилиты будут интегрированы в ОС.
как пользоваться iperf-01
В качестве альтернативного метода можно воспользоваться специальной командой, выполненной в консоли «Windows 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
}

И нажмите на клавишу «Enter» после последней строки.
как пользоваться iperf-02

Шаг 2: Настройка файрвола

Утилита может работать в режиме сервера (используется параметр -s) или клиента (параметр -c). Если через iPerf запускает сервер Windows, следует открыть входящий порт 5201 для протоколов TCP и UDP. Для этого можно воспользоваться графическим интерфейсом «Защитника Windows» или консолью «Windows 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-03

Шаг 3: Изучение синтаксиса и опций

Так как утилита имеет и серверную часть, и клиентскую, следует рассмотреть каждую из них по отдельности. Что касается запуска клиента, нужно использовать ключ -c, которому нужно передать адрес сервера. Команда выглядит так: iperf3 -c адрес_сервера.

  1. Чтобы запустить сервер, нужно сначала выполнить команду cd C:\tools\iperf для перехода в каталог, куда были распакованы файлы утилиты (Шаг 1). После команды cd путь может быть иным, в зависимости от того, куда вы извлекли данные.
    как пользоваться iperf-04
    Затем введите iperf3 -s, после чего можно прописывать опции.
  2. как пользоваться iperf-05
  3. Что касается запуска клиента, нужно использовать ключ -c, которому нужно передать адрес сервера. Команда выглядит так: iperf3 -c адрес_сервера. Например: iperf3 -c 192.168.1.202.
  4. как пользоваться iperf-06

У утилиты довольно большое количество опций, поэтому следует рассмотреть общий синтаксис программного обеспечения, так как это крайне пригодится при работе с ней:

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

Для серверной части доступно лишь три опции:

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

Что касается клиентской части, опций у нее значительно больше:

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

Выше мы привели лишь некоторую часть опций, которые доступны в iPerf. Чтобы отобразить все возможности, выполните команду man iperf3.

Шаг 4: Использование утилиты

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

  1. Перейдите к расположению распакованный на Шаге 1 файлам через консоль. Мы уже упоминали, что в нашем случае это команда cd C:\tools\iperf. Чтобы запустить серверную часть программы, выполните iperf3 -s.
  2. как пользоваться iperf-07

  3. Если нужно указать, в каких единицах измерения будет выводиться результат, используйте опцию -f и значение (выше мы эту опцию описывали). Например, iperf3 -s -f K (значит, что информация будет выводиться в килобитах).
  4. как пользоваться iperf-08
  5. Для сервера можно задать порт, используя опцию -p, и это будет выглядеть так: iperf3.exe -s -p 4000 (по умолчанию он работает на порту 5201).
    как пользоваться iperf-09

    Не забывайте про файрвол: если на сервере установлен брандмауэр, нужно разрешить в нем подключение к порту, который вы выбрали (Шаг 2).

  6. Когда нужен запуск утилиты в фоне, понадобится опция -D, но еще можно перенаправить в этой команде результат в лог-файл: iperf3.exe -s -D --logfile /var/log/ipref.log.
    как пользоваться iperf-10
    Если нужно указать, откуда ждать результат проверки, может понадобиться выполнить iperf3.exe -s -4 -D --logfile /var/log/ipref.log (в этом случае -4 означает IPv4-соединение).
  7. как пользоваться iperf-11
  8. После предварительной настройки (примерный алгоритм мы рассмотрели выше) можно подключиться к серверу. Для этого используется опция -c (iperf3 -c 192.168.0.101 -f K).
    как пользоваться iperf-12
    В данном примере текст по умолчанию выполняется 10 секунд. По результату можно узнать свою пропускную способность (колонка «Bitrate»). Отображаются средние значения.

    Утилита выводит промежуточный результат теста каждую секунду. Изменить это можно с помощью опции -i. Например, если нужно установить промежуток в 5 секунд, используйте iperf3.exe -c 192.168.0.101 -f M -i 5.

  9. Если нужно провести детальный текст с увеличенным окном TCP, 8 параллельными потоками, 20-секундным тестом и выводом результата в мегабитах, то используется такой запрос: iperf3.exe -c 192.168.0.101 -P 8 -t 20 -w 32768 -i 5 -f m.
  10. как пользоваться iperf-13
  11. Чтобы провести текст одновременной отправки и приема, выполните команду iperf3.exe -c 192.168.0.101 -P 8 -t 30 -w 32768 -d.
  12. как пользоваться iperf-14
  13. А для UDP-теста используется iperf3.exe -c 192.168.1.202 -u.
  14. как пользоваться iperf-15

Когда нужно узнать скорость работы сетевого провайдера, но при этом сервера нет, можно использовать один из публичных серверов iPerf. Он есть на официальном сайте разработчика, а команда в этом случае примерно такая: iperf3.exe -c iperf.volia.net.

Перейти к публичным серверам iPerf

Шаг 5: Анализ результатов

После проверки с помощью утилита iPerf можно увидеть таблицу результатов, которую можно проанализировать:

  • ID – идентификатор запросов, который нужен для ориентирования, если к серверу выполнялось несколько обращений;
  • Interval – промежуток времени в секундах, на протяжении которого выполнялась передача данных;
  • Transfer – количество данных, переданных за определенных интервал времени;
  • Bandwidth – средняя скорость передачи данных за промежуток времени;
  • Retr – число сегментов TCP, который отправлялись повторно;
  • Cwnd – количество одновременно переданных данных.
как пользоваться iperf-16

Вам удалось решить проблему?

Ваш ответ может помочь другим пользователям!