🚀 iperf3: кратко и по делу#

iperf3 — инструмент для измерения пропускной способности сети и анализа качества соединения.
Поддерживает TCP и UDP, измеряет скорость передачи, джиттер, потери пакетов и латентность.


📝 Топ‑20 ключевых флагов и приёмов iperf3#

  • iperf3 -s — запустить сервер.
  • iperf3 -c <host> — подключиться к серверу и измерить пропускную способность.
  • iperf3 -p 5201 — указать порт (по умолчанию 5201).
  • iperf3 -t 30 — продолжительность теста в секундах.
  • iperf3 -b 100M — установить целевую скорость (для UDP).
  • iperf3 -u — использовать UDP вместо TCP.
  • iperf3 -R — тестировать обратное направление (reverse mode).
  • iperf3 -P 4 — использовать 4 параллельных потока.
  • iperf3 -i 1 — выводить промежуточные результаты каждую секунду.
  • iperf3 -f m — выводить скорость в Мбит/с.
  • iperf3 -f M — выводить скорость в МБ/с.
  • iperf3 -V — использовать IPv6.
  • iperf3 -B 192.168.1.10 — привязать к конкретному локальному IP.
  • iperf3 -F <file> — отправить файл вместо синтетических данных.
  • iperf3 -A 2 — привязка к конкретному CPU core.
  • iperf3 -c <host> --logfile result.log — сохранять результат в файл.
  • iperf3 --json — вывести результат в формате JSON.
  • iperf3 --get-server-output — получить результат с сервера.
  • iperf3 -Z — использовать Zero Copy для максимальной скорости.
  • iperf3 -k 5 — ограничить количество тестируемых пакетов.

🚀 Айсберг команд iperf3 — от базового к гуру#

🟢 Уровень 1 — База (разогрев)#

На сервере:

iperf3 -s

На клиенте:

iperf3 -c 192.168.1.10
  • Запустить базовый TCP-тест
iperf3 -c speedtest.server.com
  • Тестировать внешний хост
iperf3 -i 1
  • Обновлять статистику каждую секунду
iperf3 -f m
  • Выводить скорость в Мбит/с

🟡 Уровень 2 — Тестирование UDP#

iperf3 -u -c 192.168.1.10 -b 100M
  • UDP-тест со скоростью 100 Мбит/с
iperf3 -u -b 0
  • UDP-тест на максимально возможной скорости
iperf3 -u -c 192.168.1.10 -b 50M -t 30
  • UDP-тест с ограничением скорости и временем
iperf3 -u -R -c 192.168.1.10
  • Проверить скорость в обратном направлении
iperf3 -u -i 1
  • Подробная статистика UDP-теста

🟠 Уровень 3 — Параллельные потоки и нагрузочное тестирование#

iperf3 -c 192.168.1.10 -P 4
  • Использовать 4 параллельных TCP-потока
iperf3 -c 192.168.1.10 -P 8 -t 60
  • Нагрузка через 8 потоков на 1 минуту
iperf3 -c 192.168.1.10 -b 200M -u -P 2
  • Два параллельных UDP-потока
iperf3 -P 16`
  • Тестирование больших каналов (>1 Гбит/с)
iperf3 -A 2 -P 4
  • Привязка потоков к CPU core #2

🔵 Уровень 4 — IPv6 и кастомные настройки#

iperf3 -V -c 2001:db8::1
  • Тест IPv6
iperf3 -p 5202 -c 192.168.1.10
  • Использовать нестандартный порт
iperf3 -B 192.168.1.100 -c 192.168.1.10
  • Привязка клиента к конкретному IP
iperf3 -F testfile.bin -c 192.168.1.10
  • Отправить реальный файл
iperf3 --get-server-output -c 192.168.1.10
  • Получить вывод с сервера

🟣 Уровень 5 — JSON, логирование и интеграция#

iperf3 -c 192.168.1.10 --json
  • Вывод в JSON для скриптов
iperf3 -c 192.168.1.10 --logfile test.log
  • Сохранить результаты теста в файл
iperf3 --json | jq .
  • Красивое форматирование JSON-вывода
iperf3 -c 192.168.1.10 -P 4 --json > result.json
  • Сохранить много потоков в JSON
cat result.json | jq '.end.sum_received.bits_per_second'
  • Вытянуть итоговую скорость

🔴 Уровень 6 — Гуру‑режим#

iperf3 -Z -c 192.168.1.10
  • Zero Copy для максимальной производительности
iperf3 -b 0 -u -c 192.168.1.10 -P 8
  • UDP-тест с максимальной скоростью на 8 потоков
iperf3 -k 10 -c 192.168.1.10
  • Ограничить количество пакетов
iperf3 -l 1400 -c 192.168.1.10
  • Тестировать с кастомным размером пакета
iperf3 -c 192.168.1.10 -t 120 -P 4 -i 1
  • Долгий стресс-тест сети

🟤 Уровень 7 — Отладка и продвинутая аналитика#

iperf3 -c 192.168.1.10 -P 4 -i 1 | tee iperf3.log
  • Сохранять результат в лог
grep "sender" iperf3.log`
  • Вытянуть итоговую скорость
grep "receiver" iperf3.log`
  • Вытянуть скорость приёма
iperf3 -c 192.168.1.10 -P 4 --json | jq '.end.streams[] | .receiver.bits_per_second'
  • Вытянуть статистику по потокам
iperf3 -c 192.168.1.10 -u -b 50M | tee udp_test.log
  • Сохранять UDP-результаты

🧩 Бонус — практические сценарии#

Запустить iperf3-сервер:

iperf3 -s

Базовый тест TCP:

iperf3 -c 192.168.1.10

UDP-тест на 50 Мбит/с:

iperf3 -u -b 50M -c 192.168.1.10

Максимальная нагрузка:

iperf3 -u -b 0 -c 192.168.1.10 -P 4

Вывод в JSON:

iperf3 -c 192.168.1.10 --json