iperf3: тест пропускной способности
Как измерить реальную скорость соединения между двумя точками с помощью iperf3.
Время: 10 мин · Сложность: ★★☆☆☆
Подходит: ✓ Ubuntu 22.04 · ✓ Debian 12 · ✓ AlmaLinux 9
Краткое описание
iperf3 измеряет пропускную способность между двумя хостами. В отличие от онлайн-спидтестов, показывает реальную скорость канала до конкретного сервера, а не до ближайшего CDN.
Когда пригодится
- Проверить, соответствует ли скорость канала заявленным характеристикам тарифа
- Диагностировать узкое место: клиент, сервер или канал между ними
- Сравнить скорость TCP и UDP
- Подготовить данные для обращения в поддержку по вопросам скорости
Что понадобится
- Два хоста с установленным
iperf3(или публичный сервер iperf3) - Открытый порт 5201 на сервере
Пошаговая инструкция
Установка на Ubuntu/Debian:
apt install -y iperf3
Установка на AlmaLinux:
dnf install -y iperf3
Открыть порт 5201 на сервере (если используется ufw):
ufw allow 5201
Запустить сервер iperf3 на одном из хостов:
iperf3 -s
С другого хоста запустить тест (заменить SERVER_IP на IP сервера):
iperf3 -c SERVER_IP
Тест UDP с ограничением полосы 100 Мбит/с:
iperf3 -c SERVER_IP -u -b 100M
Обратный тест — скорость от сервера к клиенту:
iperf3 -c SERVER_IP -R
Длительный тест 30 секунд (по умолчанию 10):
iperf3 -c SERVER_IP -t 30
Если нет второго хоста — использовать публичный сервер:
iperf3 -c iperf.sth.se
Проверка результата
Пример вывода:
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.12 GBytes 960 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.12 GBytes 959 Mbits/sec receiver
Bitrate— полученная скорость. Сравните с заявленной скоростью тарифа.Retr— число TCP-ретрансмитов. 0 — отлично. Высокое значение означает потери пакетов и снижение скорости.
Возможные ошибки
Connection refused — на сервере не запущен iperf3 -s, или порт 5201 закрыт файрволом.
iperf3: error - unable to connect to server — проверьте IP сервера и что iperf3 -s запущен и работает.
Нет второго хоста для теста — используйте публичные серверы iperf3: iperf.sth.se (Стокгольм), iperf.he.net (HE.net).
FAQ
Почему скорость ниже заявленной? Влияет много факторов: загрузка канала, расстояние, состояние сети. Для чистого теста запускайте в нагруженное время и сравнивайте несколько прогонов.
TCP или UDP?
TCP-тест (iperf3 -c) лучше отражает реальный HTTP/HTTPS трафик. UDP-тест (-u) полезен для оценки потерь при стриминге и видеоконференциях.
Нужно ли останавливать iperf3 -s после теста?
После теста остановите сервер (Ctrl+C) и закройте порт, если он больше не нужен: ufw delete allow 5201.
Полезные ссылки
- iperf3 документация
- Публичные серверы: iperf.fr/iperf-servers.php