Table of Contents
🚀 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