Вы быстро поймете, что традиционные тесты скорости интернета неэффективны, если вам когда-либо нужно было проверить скорость соединения между двумя компьютерами в реальном времени. Они показывают только скорость до вашего сервера провайдера. Какова пропускная способность канала или локальной сети до удаленного офиса? В этом случае утилита 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 адрес_сервера выглядит так:
- Чтобы запустить сервер, нужно сначала выполнить команду
cd C:\tools\iperfдля перехода в каталог, куда были распакованы файлы утилиты (Шаг 1). После командыcdпуть может быть иным, в зависимости от того, куда вы извлекли данные.
Затем введите
iperf3 -s, после чего можно прописывать опции. 
- Что касается запуска клиента, нужно использовать ключ
-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 файлам через консоль. Мы уже упоминали, что в нашем случае это команда
cd C:\tools\iperf. Чтобы запустить серверную часть программы, выполнитеiperf3 -s. -
- Если нужно указать, в каких единицах измерения будет выводиться результат, используйте опцию
-fи значение (выше мы эту опцию описывали). Например,iperf3 -s -f K(значит, что информация будет выводиться в килобитах). 
- Для сервера можно задать порт, используя опцию
-p, и это будет выглядеть так:iperf3.exe -s -p 4000(по умолчанию он работает на порту 5201).
Если брандмауэр установлен на сервере, вы должны разрешить ему подключение к выбранному вами порту (Шаг 2).
- Когда нужен запуск утилиты в фоне, понадобится опция
-D, но еще можно перенаправить в этой команде результат в лог-файл:iperf3.exe -s -D --logfile /var/log/ipref.log.
Если нужно указать, откуда ждать результат проверки, может понадобиться выполнить
iperf3.exe -s -4 -D --logfile /var/log/ipref.log(в этом случае-4означает IPv4-соединение). 
- После предварительной настройки (примерный алгоритм мы рассмотрели выше) можно подключиться к серверу. Для этого используется опция
-c(iperf3 -c 192.168.0.101 -f K).
В данном примере текст по умолчанию выполняется 10 секунд. По результату можно узнать свою пропускную способность (колонка «Bitrate»). Отображаются средние значения.
Утилита выводит промежуточный результат теста каждую секунду. Изменить это можно с помощью опции
-i. Например, если нужно установить промежуток в 5 секунд, используйтеiperf3.exe -c 192.168.0.101 -f M -i 5. - Если нужно провести детальный текст с увеличенным окном TCP, 8 параллельными потоками, 20-секундным тестом и выводом результата в мегабитах, то используется такой запрос:
iperf3.exe -c 192.168.0.101 -P 8 -t 20 -w 32768 -i 5 -f m. 
- Чтобы провести текст одновременной отправки и приема, выполните команду
iperf3.exe -c 192.168.0.101 -P 8 -t 30 -w 32768 -d. 
- А для UDP-теста используется
iperf3.exe -c 192.168.1.202 -u. 
Когда нужно узнать скорость работы сетевого провайдера, но при этом сервера нет, можно использовать один из публичных серверов iPerf. Он есть на официальном сайте разработчика, а команда в этом случае примерно такая: iperf3.exe -c iperf.volia.net.
Переход на публичные серверы iPerf
Таким образом, вы знаете основы iPerf. Этот невероятно мощный и удобный инструмент можно использовать для проверки реальной пропускной способности вашей сети. iPerf показывает реальную ситуацию, поэтому не стоит полагаться только на цифры, которые обещает провайдер.
Не пугайтесь, если что-то пошло не так с первого раза. Настройка фаерволов или выбор правильного режима теста могут поначалу вызвать вопросы. Чтобы провести более тщательный анализ, вы можете попробовать однопоточное тестирование, а затем экспериментировать с параллельными подключениями и другими вариантами.
Помните, что iPerf помогает в идентификации проблемы. Низкая скорость между двумя компьютерами в одной квартире может указывать на проблемы с роутером Wi-Fi. С другой стороны, если тест, проведенный между вашим домом и сервером, расположенным в другом городе, показывает отрицательные результаты, вы должны связаться с вашим интернет-провайдером.
Убедитесь, что у вас есть эта команда, потому что она пригодится вам много раз, например, когда вы устанавливаете новую сеть, проверяете качество связи или просто удовлетворяете свое любопытство. Удачи в тестировании!








