У вас дома или в офисе роутер заявил гигабит, а файлы между компатором ползут со скоростью 30–40 Мбит/с. Или, может, вы подключили новый коммутатор и хотите убедиться, что он реально пропускает нужный объём трафика. Или сервер подключён по 10G, а клиенты жалуются, что всё медленно. Во всех этих случаях первым делом хочется понять: проблема в сети или где-то дальше — в дисках, процессорах, настройках ОС.
Именно для этого существует iPerf3. Это утилита, которая позволяет измерять пропускную способность сети между двумя точками, генерируя искусственный трафик. Не нужно копировать гигабайтные файлы и засекать время — iPerf3 сам создаёт поток данных заданной ширины и показывает, сколько реально проходит.
- Что такое iPerf3 и зачем он нужен
- Установка iPerf3
- Быстрый старт: первый тест за 30 секунд
- Что означают результаты
- Ключевые параметры, которые стоит знать
- TCP или UDP: что и когда использовать
- Практические сценарии тестирования
- Сценарий 1: Проверка, что гигабитная сеть реально работает на гигабит
- Сценарий 2: Проверка производительности коммутатора
- Сценарий 3: Поиск узкого места в цепочке
- Сценарий 4: Проверка Wi-Fi сегмента
- Сравнение подходов к тестированию
- Частые ошибки при тестировании
- Как интерпретировать результаты: что нормально, а что нет
- Продвинутые возможности
- Автоматизация и сбор результатов
- Тестирование с несколькими клиентами
- Ограничение полосы для нагрузочного тестирования
- Что делать, если результаты плохие
- Рекомендации по организации тестирования
- Итог
Что такое iPerf3 и зачем он нужен
iPerf3 — это кроссплатформенная консольная утилита для измерения пропускной способности TCP и UDP между двумя узлами. Она работает на Linux, Windows, macOS и даже на многих роутерах с открытой прошивкой.
Главная идея проста: одна машина выступает в роли сервера (слушает), вторая — в роли клиента (отправляет данные). iPerf3 генерирует искусственный трафик и замеряет, сколько реально доезжает до приёмника.
Почему это лучше, чем копировать файлы через общую папку или качать что-то по интернету:
- Вы тестируете именно сеть, а не дисковую подсистему. iPerf3 не пишет данные на диск — он гоняет их в памяти.
- Вы контролируете параметры: размер окна, количество потоков, длительность теста, протокол.
- Результаты воспроизводимы. Запустили тест, записали параметры — через месяц можете повторить и сравнить.
- Это стандарт. Если вы скажете коллеге «прогнал iPerf3 и получил 940 Мбит/с», он сразу поймёт, о чём речь.
Установка iPerf3
Установка занимает минуту. iPerf3 есть в репозиториях практически всех популярных систем.
Linux (Debian/Ubuntu):
sudo apt update && sudo apt install iperf3
Linux (CentOS/RHEL/Fedora):
sudo dnf install iperf3
macOS (через Homebrew):
brew install iperf3
Windows:
- Скачайте готовый бинарник с официального сайта iperf.fr.
- Распакуйте архив, например, в C:\iperf3\.
- Запустите командную строку от имени администратора и перейдите в эту папку.
После установки проверьте, что всё работает:
iperf3 --version
Быстрый старт: первый тест за 30 секунд
Допустим, у вас два компьютера в одной локальной сети. Один имеет IP 192.168.1.10, второй — 192.168.1.20.
Шаг 1. На первом компьютере (192.168.1.10) запустите сервер:
iperf3 -s
Сервер начнёт слушать на порту 5201 по умолчанию. Он будет ждать подключения клиента.
Шаг 2. На втором компьютере (192.168.1.20) запустите клиент:
iperf3 -c 192.168.1.10
По умолчанию iPerf3 отправляет TCP-трафик в течение 10 секунд и показывает результат. Вы увидите примерно следующее:
Connecting to host 192.168.1.10, port 5201
[ 5] local 192.168.1.20 port 49876 connected to 192.168.1.10 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 112 MBytes 941 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 941 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec
...
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver
Всё. Вы только что измерили пропускную способность между двумя машинами. 941 Мбит/с — это типичный результат для гигабитной сети (до теоретических 940–950 Мбит/с с учётом накладных расходов).
Что означают результаты
В выводе iPerf3 ключевые строки — это sender и receiver:
- Sender — сколько данных клиент реально отправил в сеть.
- Receiver — сколько данных сервер реально принял.
В идеале эти числа совпадают. Если sender показывает 940 Мбит/с, а receiver — 200 Мбит/с, значит, приёмник не справляется: узкое место где-то на стороне сервера (процессор, диск, настройки сетевой карты, драйвер).
Строка Interval показывает временной отрезок измерения. По умолчанию — каждую секунду. Это полезно, чтобы увидеть, стабильная ли скорость или она «прыгает».
Если вы видите, что в первую секунду скорость 500 Мбит/с, а потом стабильно 940 — это нормально, TCP «разгоняется». Но если скорость скачет от 100 до 900 каждую секунду — в сети что-то не так.
Ключевые параметры, которые стоит знать
По умолчанию iPerf3 делает то, что подходит в 80% случаев. Но иногда нужно изменить поведение теста. Вот параметры, которые я использую регулярно:
- -t — длительность теста в секундах. По умолчанию 10. Для более стабильной картины запускайте на 30–60 секунд:
iperf3 -c 192.168.1.10 -t 30 - -P — количество параллельных потоков. По умолчанию один поток. Иногда один TCP-поток не может загрузить канал на всю ширину — попробуйте 4 или 8:
iperf3 -c 192.168.1.10 -P 4 - -u — переключиться на UDP вместо TCP. По умолчанию нужно ещё указать полосу:
iperf3 -c 192.168.1.10 -u -b 1000M(тест UDP с полосой 1 Гбит/с) - -b — задание целевой полосы для UDP. Для TCP этот параметр не имеет смысла — TCP сам пытается занять всю доступную полосу.
- -w — размер TCP-окна. По умолчанию система выбирает сама, но иногда стоит увеличить:
iperf3 -c 192.168.1.10 -w 256K - -R — реверсивный тест. Сервер отправляет данные, клиент принимает. Полезно, когда хотите проверить направление от сервера к клиенту:
iperf3 -c 192.168.1.10 -R - -p — порт сервера. По умолчанию 5201. Если запускаете несколько тестов одновременно или порт занят:
iperf3 -s -p 5202 - -J — вывод в формате JSON. Удобно, если хотите автоматизировать сбор результатов или строить графики.
TCP или UDP: что и когда использовать
Это важный момент, который часто упускают. TCP и UDP показывают разные вещи.
TCP-тест — это проверка того, сколько данных сеть может пропустить с гарантией доставки. TCP сам подстраивается под полосу, управляет перегрузкой, переотправляет потерянные пакеты. Результат TCP-теста — это честная пропускная способность канала с учётом всего.
UDP-тест — вы задаёте конкретную полосу, и iPerf3 пытается гнать трафик с этой скоростью без переотправок. Если пакеты теряются — они теряются навсегда. В результатах вы увидите процент потерь. Это полезно для проверки качества канала: если при полосе 940 Мбит/с потери 0.01% — всё отлично, а если 5% — где-то проблема.
Когда что использовать:
- Хотите узнать максимальную скорость канала — TCP.
- Хотите проверить, есть ли потери пакетов — UDP.
- Хотите проверить, как сеть ведёт себя под нагрузкой без управления перегрузкой — UDP с заданной полосой.
- Тестируете качество VoIP или видеостриминга — UDP, потому что эти протоколы работают поверх UDP.
Практические сценарии тестирования
Сценарий 1: Проверка, что гигабитная сеть реально работает на гигабит
У вас гигабитный роутер, гигабитные сетевые карты, кабель Cat5e или Cat6. Подключаете два компьютера к роутеру и запускаете тест:
# На сервере (ПК1):
iperf3 -s
# На клиенте (ПК2):
iperf3 -c 192.168.1.10 -t 30 -P 4
Ожидаемый результат: 900–950 Мбит/с. Если получаете 100 Мбит/с — одно из звеньев договорилось о 100M (плохой кабель, грязный контакт, несовместимость). Если получаете 600–700 — возможно, один из узлов не может обработать гигабит в один поток, попробуйте увеличить -P.
Сценарий 2: Проверка производительности коммутатора
Подключаете два порта коммутатора кабелем, на каждый садитесь со своим ноутбуком и гоняете iPerf3 между ними. Если коммутатор заявлен как гигабитный на всех портах, то и между любыми двумя портами должны быть ~940 Мбит/с. Если на определённых портах скорость падает — возможно, у коммутатора слабая внутренняя шина или эти порты разделены на отдельный домен с ограниченной полосой.
Сценарий 3: Поиск узкого места в цепочке
У вас цепочка: сервер → коммутатор A → коммутатор B → клиент. Запускаете iPerf3 между сервером и клиентом — получаете 400 Мбит/с. Потом подключаете клиент напрямую к серверу (или к коммутатору A) — получаете 940 Мбит/с. Значит, проблема между коммутаторами A и B: плохой кабель, несовместимость скоростей, загрузка линка.
Сценарий 4: Проверка Wi-Fi сегмента
Сервер подключён по кабелю к роутеру, клиент — по Wi-Fi. Запускаете iPerf3 и видите реальную скорость Wi-Fi-канала. Это нагляднее, чем любой онлайн-тест, потому что вы измеряете именно ваш роутер, вашу сеть, вашу квартиру с её помехами.
Сравнение подходов к тестированию
Когда нужно выбрать инструмент или метод, бывает сложно сориентироваться. Вот сравнение основных подходов к тестированию локальной сети:
| Метод | Что измеряет | Плюсы | Минусы |
|---|---|---|---|
| iPerf3 (TCP) | Реальную пропускную способность с гарантией доставки | Стандарт де-факто, кроссплатформенный, гибкий | Нужно установить на оба узла |
| iPerf3 (UDP) | Качество канала с контролем потерь и джиттера | Показывает потери, подходит для мультимедиа | Сложнее интерпретировать результаты |
| Копирование файла (SMB/NFS) | Реальную скорость передачи файлов | Не нужен дополнительный софт | Зависит от дисков, протокола, настроек ОС — не чистый тест сети |
| speedtest.net (локальный сервер) | Скорость до конкретного узла в интернете | Быстро, ничего не нужно настраивать | Зависит от интернет-канала, не показрует локальную сеть |
| netperf | Пропускная способность (аналог iPerf) | Старый, мощный, много режимов | Сложнее в использовании, менее распространён |
Частые ошибки при тестировании
Вот реальные ошибки, которые я вижу снова и снова:
- Запуск сервера и клиента на одной машине через localhost. Это не тест сети — это тест стеков TCP/IP операционной системы. Данные не проходят через сетевой интерфейс, скорость будет нереалистично высокой (десятки гигабит) и не иметь отношения к вашей реальной сети.
- Забывают про брандмауэр. iPerf3 использует порт 5201 по умолчанию. Если он заблокирован файрволом на сервере, клиент не подключится. Решение: либо откройте порт, либо укажите другой через -p.
- Тестируют по Wi-Fi и удивляются низкой скорости. Wi-Fi — это разделясреда. Скорость зависит от расстояния, помех, количества соседних сетей, ширины канала (20/40/80 МГц). Для чистого теста сети используйте кабельное подключение. Wi-Fi тестируйте отдельно и с пониманием этих ограничений.
- Запускают тест на 1 секунду. 10 секунд по умолчанию — это минимум. TCP не успевает «разогнаться» за первую секунду. Для адекватной картины — 30 секунд минимум.
- Тестируют в часы пиковой нагрузки на сеть. Если в это же время кто-то качает торренты, стримит 4K или бэкапит терабайты — результат будет занижен не из-за проблем в сети, а из-за того, что полоса уже занята. Запускайте тест, когда сеть свободна.
- Не проверяют оба направления. Сеть может быть асимметричной: в одну сторону 940 Мбит/с, в другую — 200. Это редко для проводной сети, но бывает с плохими кабелями или некорректными настройками сетевых карт. Запустите тест с -R, чтобы проверить обратное направление.
- Один поток и сразу выводы. Один TCP-поток иногда не может загрузить канал полностью из-за ограничений на стороне приёма или передачи (размер окна, обработка прерываний). Попробуйте -P 4 или -P 8 перед тем, как делать выводы о скорости канала.
Как интерпретировать результаты: что нормально, а что нет
Вот ориентиры для типовых сценариев:
- Гигабитная сеть (1G) по кабелю Cat5e/Cat6: 900–950 Мбит/с — отлично. 850–900 — нормально. Ниже 800 — есть повод разобраться.
- 10-гигабитная сеть (10G): 9.0–9.4 Гбит/с — отлично. Здесь накладные расходы меньше в процентном соотношении.
- Wi-Fi 5 (802.11ac), 80 МГц, 2×2: 300–600 Мбит/с в реальности — нормально. Заявленные 866+ Мбит/с — это теоретический PHY rate, реальная пропускная способность всегда ниже.
- Wi-Fi 6 (802.11ax), 160 МГц, 2×2: 600–1200 Мбит/с — хороший результат в реальных условиях.
- UDP-потери: менее 0.1% — отлично. 0.1–1% — приемлемо для большинства задач. Более 1% — проблема, нужно искать причину.
Продвинутые возможности
Автоматизация и сбор результатов
Если нужно регулярно тестировать сеть и сохранять результаты, ключ -J (JSON-вывод) очень удобен:
iperf3 -c 192.168.1.10 -t 30 -J > result.json
JSON можно распарсить скриптом и сложить в базу или использовать для построения графиков. Есть готовые инструменты вроде iperf3 + Grafana для визуализации результатов во времени.
Тестирование с несколькими клиентами
По умолчанию iPerf3-сервер обслуживает одно соединение за раз. Если нужно запустить несколько тестов одновременно, запустите сервер на разных портах:
iperf3 -s -p 5201
iperf3 -s -p 5202
iperf3 -s -p 5203
Или используйте флаг -P на клиенте для параллельных потоков — это проще и в большинстве случаев достаточно.
Ограничение полосы для нагрузочного тестирования
Иногда нужно посмотреть, как сеть ведёт себя под нагрузкой, но не на всю ширину. Например, хотите проверить, что при 300 Мбит/с на один клиент коммутатор справляется без потерок:
iperf3 -c 192.168.1.10 -u -b 300M -t 60
Что делать, если результаты плохие
Если iPerf3 показывает скорость ниже ожидаемой, вот пошаговый план:
- Проверьте кабель. Самая частая причина — плохой контакт или повреждённый кабель. Переожмите, замените патч-корд. Для гигабита нужны все 8 жил, для 100 Мбит/с достаточно 4 — поэтому сеть «работает», но на пониженной скорости.
- Проверьте согласование скорости. На Linux:
ethtool eth0. На Windows: свойства сетевого адаптера → Скорость и дуплекс. Должно быть 1000 Мбит/с, Full Duplex. Если 100M или Half Duplex — проблема. - Отключите энергосбережение сетевой карты. Некоторые NIC снижают производительность для экономии энергии. На Linux:
ethtool -s eth0 wol dи проверьте настройки ASPM. - Проверьте загрузку процессора. На слабом роутере или старом ПК процессор может не справляться с обработкой гигабитного трафика. Если при тесте CPU в топе — это ваше узкое место.
- Проверьте буферы и кольца сетевой карты.
ethtool -g eth0покажет размеры RX/TX буферов. Маленькие буферы приводят к потерям пакетов при всплесках трафика. - Обновите драйверы. Особенно на Windows и со встроенными сетевыми контроллерами (Realtek, Intel). Свежий драйвер иногда даёт прирост в 20–30%.
Рекомендации по организации тестирования
Чтобы результаты iPerf3 были честными и полезными:
- Всегда запускайте тест минимум на 30 секунд и делайте 2–3 прогона. Берите среднее.
- Тестируйте в моменты, когда сеть не нагружена другой активностью.
- Записывайте параметры теста: длительность, количество потоков, направление, версию iPerf3. Через месяц вы забудете, при каких условиях получили тот или иной результат.
- Если тестируете коммутатор или роутер — проверяйте несколько пар портов. Иногда проблема в конкретном порту, а не в устройстве в целом.
- Для воспроизводимости используйте одинаковые параметры на всех тестируемых машинах: одинаковый размер окна, одинаковую длительность, одинаковое количество потоков.
Итог
iPerf3 — это тот инструмент, который должен быть в арсенале любого, кто так или иначе работает с сетями. Он бесплатный, занимает пару мегабайт, работает везде и даёт честный ответ на вопрос «а сеть-то реально держит заявленную скорость?».
Если коротко — ваш алгоритм действий:
- Установите iPerf3 на оба тестируемых узла.
- Запустите сервер на одном:
iperf3 -s. - Запустите клиент на другом:
iperf3 -c <IP сервера> -t 30 -P 4. - Сравните результат с ожидаемым для вашего типа подключения.
- Если результат плохой — проверяйте кабель, согласование скорости, драйверы и загрузку процессора.
Не нужно гадать, «тормозит ли сеть или это диск». Запустите iPerf3 — и через 30 секунд у вас будет точный ответ.



