Утилита iperf - это генератор сетевого трафика, предназначенный для проверки скорости и пропускной способности сети. Программа кроссплатформена, и распространяется с открытым исходным кодом. Вы можете использовать её для проверки пропускной способности VPS серверов или для настройки и улучшения производительности сети.
Программа состоит из клиентской и серверной части, поэтому для работы вам понадобится как минимум два компьютера, подключённых к сети. В этой статье мы рассмотрим как установить и как пользоваться iperf. Обратите внимание, что мы будем говорить об последней версии программы iperf3.
Содержание статьи
Установка iperf
Как я уже сказал, программа кроссплатформенная, поэтому вы можете использовать её как в Windows, так и в Linux. Для установки в Ubuntu или Debian выполните:
sudo apt install iperf3
А для установки iperf в CentOS или Fedora:
sudo dnf install iperf3
В Windows программа ставится немного по другому. Просто скачайте утилиту из официального сайта и распакуйте куда-нибудь. Сразу же после этого вы сможете её использовать.
Синтаксис и опции iperf
Поскольку утилита имеет как серверную часть так и клиентскую, надо рассматривать обе отдельно. Для запуска сервера используется такой синтаксис:
$ iperf3 -s опции
Для запуска клиента используется ключ -c, которому надо передать адрес сервера:
$ iperf3 -c адрес_сервера опции
Теперь давайте рассмотрим общие опции программы:
- -p, --port - указать порт для сервера или к какому порту надо подключаться;
- -f, --format - формат выводимых данных, доступны значения: k,m,g,t,K,M,G,T;
- -i, --interval - интервал времени между выводами результата тестирования;
- -F, --file - использовать данные из файла вместо генерации случайных данных;
- -V, --verbose - вывод максимально подробной информации;
- -J, --json - вывод в формате JSON;
- --logfile - записывать информацию в лог файл;
- --forceflush - очищать историю вывода перед выводом следующего результата тестирования;
- -v, --version - версия программы.
Теперь разберемся с опциями только для серверной части:
- -D, --daemon - запустить сервер в фоновом режиме;
- -I, --pidfile - путь для записи PID файла процесса;
- -1, --one-off - обработать только одно подключение клиента, а затем выйти.
У клиентской части опций чуть больше:
- --sctp - использовать SCTP вместо TCP;
- -u, --udp - использовать UDP вместо TCP;
- --connect-timeout - таймаут для первого соединения с сервером в миллисекундах;
- -b, --bitrate - битрейт, для UDP используется по умолчанию 1 Мбит/сек, для TCP не ограничено;
- -t, --time - время одного теста в секундах, по умолчанию 10 секунд;
- -R, --reverse - обратный тест, не клиент отправляет данные серверу, а сервер клиенту;
- -P - количество потоков;
- -w - размер окна TCP;
- -4, --version4 - использовать только IPv4;
- -6, --version6 - использовать только IPv6.
Мы рассмотрели далеко не все опции, а только самые интересные и те, которые будут использоваться в нашей статье. Для просмотра всех опций выполните такую команду после установки программы:
man iperf3
Теперь вы знаете как установить iperf, а также основные её опции, но на этом инструкция не заканчивается. Дальше давайте перейдем к примерам использования iperf3.
Как пользоваться iperf
Для примеров я буду использовать сервер с адресом 192.168.0.101. Адрес клиента не имеет значения. Сначала необходимо запустить серверную часть программы. Для этого выполните:
iperf3 -s
Вы можете сразу указать в каких единицах измерения хотите видеть результаты. Для этого используется опция -f. Доступны такие варианты:
- k - килобиты;
- m - мегабиты;
- g - гигабиты;
- K - килобайты;
- M - мегабайты;
- G - гигабайты;
- T - терабайты.
Например:
iperf3 -s -f K
Аналогично для сервера можно задать порт с помощью опции -p. По умолчанию он работает на порту 5201:
ipref3 -s -p 4000
В любом случае, если на сервере установлен брандмауэр, то вам надо разрешить в нём подключение к порту 5201 или тому, который вы выбрали. Например, для ufw команда будет выглядеть так:
sudo ufw allow 5201
А для firewalld:
sudo firewall-cmd --permanent --add-port=5201/tcp
sudo firewall-cmd --permanent --add-port=5201/udp
sudo firewall-cmd --reload
И если вы хотите запустить программу в фоновом режиме, можете использовать опцию -D и перенаправить вывод в лог файл:
iperf3 -s -D --logfile /var/log/ipref.log
Убедится, что сервер запущен можно с помощью команды ss:
ss -tulpn | grep 5201
Обратите внимание на IP адрес, на котором слушает сервер, звездочка означает IPv4 соединения, а [::] - IPv6. Поэтому, возможно вам придется вручную указать откуда надо ждать подключений:
iperf3 -s -4 -D --logfile /var/log/ipref.log
Теперь к серверу можно подключаться. Для этого используйте опцию -c. Если вы меняли порт сервера, то здесь его надо указать с помощью опции -p:
iperf3 -c 192.168.0.101 -f K
В данном примере тест выполняется 10 секунд. Чтобы понять какая сейчас у вас пропускная способность сети следует смотреть на колонку Bitrate. Обращайте внимание на строки под чертой, они отображают среднее значение. В данном примере было передано 113 мебабайт со скоростью 11534 килобайт в секунду.
По умолчанию утилита выводит промежуточный результат каждую секунду, вы можете изменить это поведение с помощью опции -i. Например, 5 секунд:
iperf3 -c 192.168.0.101 -f M -i 5
А общую продолжительность теста можно задать с помощью опции -t. Например, 30 секунд:
iperf3 -c 192.168.0.101 -f M -i 5 -t 30
По умолчанию клиент отправляет данные серверу. Вы можете использовать опцию -R, чтобы сервер отправлял данные клиенту:
iperf3 -c 192.168.0.101 -f K -R
Если вы хотите видеть вывод сервера на клиенте, достаточно использовать опцию --get-server-output:
iperf3 -c 192.168.0.101 -f K --get-server-output
С помощью опции -P можно указать количество параллельных потоков тестирования, например, два:
iperf3 -c 192.168.0.101 -f K -P 2
Чтобы использовать UDP пакеты вместо TCP используйте опцию -u:
iperf3 -c 192.168.0.101 -f K -u
Если вы хотите узнать скорость работы вашего сетевого провайдера и у вас нет сервера в сети, можете использовать один из публичных iperf серверов. Полный список таких серверов можно найти здесь. Например:
iperf3 -c iperf.volia.net
Выводы
В этой статье мы рассмотрели как пользоваться iperf 3 для проверки пропускной способности сети, а также разобрались как узнать скорость вашего провайдера с помощью публичных серверов iperf. Как видите, всё не так уж сложно. А какие вы используете утилиты для проверки скорости работы сети? Напишите в комментариях!
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали













Если кому нужно пиал когда скрипт для zabix Чтобы мониторить периодически скорость сети. В крон его сунуть и логи забирать:
#!/bin/bash
#IP-адрес Iperf-сервера
server=192.168.0.1
iperf3 -c $server -t 10 -J -f Mbits > iperf3_log
#Скорость Upload
echo "$(date +%FT%T) $(jq -r '.end.streams[0].sender.bits_per_second/1000/1000' iperf3_log) Mbits" >> bandwidth-UPLOAD
#Скорость Download
echo "$(date +%FT%T) $(jq -r '.end.streams[0].receiver.bits_per_second/1000/1000' iperf3_log) Mbits" >> bandwidth-DOWNLOAD
exit
Ураура!!!!!!!!!11111
Васе надо бы к доктору.
ipref3 -s -p 4000 - опечатка
iperf3 -c 192.168.0.101 -f g