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

Вы быстро поймете, что традиционные тесты скорости интернета неэффективны, если вам когда-либо нужно было проверить скорость соединения между двумя компьютерами в реальном времени. Они показывают только скорость до вашего сервера провайдера. Какова пропускная способность канала или локальной сети до удаленного офиса? В этом случае утилита iPerf будет полезной.

По своей сути, iPerf — это простой, но эффективный инструмент для измерения пропускной способности сети. В нем используется принцип взаимодействия клиент-сервер. Когда вы запускаете iPerf в режиме сервера на одном компьютере, вы запускаете его в режиме клиента на другом. Затем клиент создает поток данных и отправляет его серверу, чтобы оценить скорость передачи. Это позволяет получить точную информацию о максимальной скорости вашего сетевого соединения.

Эта статья поможет вам начать. Мы рассмотрим несколько важных параметров командной строки для базового тестирования, а также объясним, как установить iPerf на различные операционные системы. Вы увидите, что использование 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», и ее возможности будут интегрированы в систему. Можно использовать специальную команду в консоли «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» после последней строки.

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

Утилита может работать в режиме сервера с помощью параметра -s или в режиме клиента с помощью параметра -c. Чтобы запустить сервер Windows с помощью iPerf, необходимо открыть входящий порт 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 — это простая программа для измерения реальной скорости интернет-соединения между двумя устройствами. Он полезен, когда вы хотите проверить скорость передачи данных по сети, например, между компьютером и роутером или между серверами в разных городах. Когда один компьютер запускает iPerf в режиме сервера, а другой подключается к нему как клиент, можно увидеть реальное количество мегабит в секунду. Это лучше, чем тесты на обычных сайтах, потому что вы можете контролировать все сам, проверяя, есть ли проблемы с сетью, провайдером или Wi-Fi.

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

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

  1. Чтобы запустить сервер, нужно сначала выполнить команду cd C:\tools\iperf для перехода в каталог, куда были распакованы файлы утилиты (Шаг 1). После команды cd путь может быть иным, в зависимости от того, куда вы извлекли данные.

    Затем введите iperf3 -s, после чего можно прописывать опции.

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

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

  • -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. Если нужно указать, в каких единицах измерения будет выводиться результат, используйте опцию -f и значение (выше мы эту опцию описывали). Например, iperf3 -s -f K (значит, что информация будет выводиться в килобитах).
  3. Для сервера можно задать порт, используя опцию -p, и это будет выглядеть так: iperf3.exe -s -p 4000 (по умолчанию он работает на порту 5201).

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

  4. Когда нужен запуск утилиты в фоне, понадобится опция -D, но еще можно перенаправить в этой команде результат в лог-файл: iperf3.exe -s -D --logfile /var/log/ipref.log.

    Если нужно указать, откуда ждать результат проверки, может понадобиться выполнить iperf3.exe -s -4 -D --logfile /var/log/ipref.log (в этом случае -4 означает IPv4-соединение).

  5. После предварительной настройки (примерный алгоритм мы рассмотрели выше) можно подключиться к серверу. Для этого используется опция -c (iperf3 -c 192.168.0.101 -f K).

    В данном примере текст по умолчанию выполняется 10 секунд. По результату можно узнать свою пропускную способность (колонка «Bitrate»). Отображаются средние значения.

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

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

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

Переход на публичные серверы iPerf

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

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

Помните, что iPerf помогает в идентификации проблемы. Низкая скорость между двумя компьютерами в одной квартире может указывать на проблемы с роутером Wi-Fi. С другой стороны, если тест, проведенный между вашим домом и сервером, расположенным в другом городе, показывает отрицательные результаты, вы должны связаться с вашим интернет-провайдером.

Убедитесь, что у вас есть эта команда, потому что она пригодится вам много раз, например, когда вы устанавливаете новую сеть, проверяете качество связи или просто удовлетворяете свое любопытство. Удачи в тестировании!

Поделиться с друзьями
Алексей Морозов

Технический журналист и системный администратор с 10‑летним опытом работы в корпоративной IT‑инфраструктуре.

Оцените автора
Добавить комментарий