Проверка скорости соединения с помощью iperf

iperf — это мощный инструмент для тестирования пропускной способности сети, который позволяет измерять скорость передачи данных между двумя устройствами. Он широко используется системными администраторами и инженерами для диагностики сетевых проблем и оценки производительности соединения. В этой статье мы рассмотрим, как установить iperf, как его использовать и как правильно настроить файрволл для корректной работы.

Установка iperf

Перед началом работы необходимо установить iperf на оба устройства: сервер (принимающий трафик) и клиент (отправляющий трафик). Существует две популярные версии — iperf2 и iperf3. Мы рекомендуем использовать iperf3, так как она активно поддерживается и имеет улучшенные функции.

Установка на Linux

  • Ubuntu/Debian:

    sudo apt update sudo apt install iperf3

  • CentOS/RHEL:

    sudo yum install iperf3

Установка на Windows

  1. Скачайте iperf3 с официального сайта (например, сhttps://iperf.fr/)
  2. Распакуйте архив в удобную папку (например, C:\iperf)
  3. Добавьте путь к папке в переменную окружения PATH для удобства запуска из командной строки.

Установка на macOS

  • Через Homebrew:

    brew install iperf3

После установки проверьте версию, чтобы убедиться, что инструмент работает:

iperf3 --version

Как работает iperf?

iperf работает по принципу клиент-сервер:

  • Сервер запускается на одном устройстве и ожидает входящих подключений.
  • Клиент подключается к серверу и отправляет данные для измерения скорости.

По умолчанию iperf3 использует порт TCP 5201 (в iperf2 — 5001). Вы можете изменить порт с помощью опции -p.

Настройка файрволла для работы с iperf

Для корректной работы iperf необходимо убедиться, что файрволл на вашем устройстве не блокирует соединения на портах, которые использует iperf. По умолчанию это порт TCP 5201, но вы можете указать другой порт с помощью опции -p. Ниже приведены инструкции по настройке файрволла для разных операционных систем.

Windows

  1. Откройте настройки файрволла:

    • Нажмите Win + R, введите control и выберите "Брандмауэр Защитника Windows".
    • Перейдите в раздел "Разрешение взаимодействия с приложением или компонентом через брандмауэр Защитника Windows".
  2. Добавьте правило для iperf:

    • Нажмите "Разрешить другое приложение", затем "Обзор" и укажите путь к файлу iperf3.exe.
    • Разрешите входящие и исходящие соединения для частных и публичных сетей.
  3. Создание правила для порта (альтернативный способ):

    • В "Дополнительных параметрах" выберите "Правила для входящих подключений" → "Создать правило".
    • Выберите "Порт", укажите TCP и порт (например, 5201), затем разрешите подключение.
    • Повторите для исходящих подключений, если требуется.

Linux

В зависимости от дистрибутива используются разные инструменты управления файрволлом:

  • Для ufw (Ubuntu, Debian):

    sudo ufw allow 5201/tcp sudo ufw status # Проверка статуса

  • Для firewalld (CentOS, RHEL):

    sudo firewall-cmd --add-port=5201/tcp --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-ports # Проверка открытых портов

  • Для iptables (ручная настройка):

    sudo iptables -A INPUT -p tcp --dport 5201 -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 5201 -j ACCEPT

macOS

  1. Откройте настройки файрволла:

    • Перейдите в "Системные настройки" → "Безопасность и конфиденциальность" → вкладка "Брандмауэр".
    • Убедитесь, что брандмауэр включен.
  2. Добавьте исключение:

    • Нажмите "Параметры брандмауэра" → "+" и добавьте приложение iperf3.
    • Разрешите входящие соединения.
  3. Через терминал (альтернатива):

    echo "pass in proto tcp from any to any port 5201" | sudo pfctl -f - sudo pfctl -e # Включение файрволла

Общие рекомендации

  • Убедитесь, что порт в команде iperf (например, iperf3 -s -p 5201) совпадает с открытым портом в файрволле.
  • Используйте netstat или ss (например, ss -tuln | grep 5201) для проверки, что порт прослушивается.
  • Если тестирование идет через интернет, настройте файрволл маршрутизатора или облачного сервера.

Использование iperf

Запуск сервера

На устройстве, которое будет сервером, выполните:

iperf3 -s

Вы увидите сообщение о том, что сервер запущен и ожидает подключения на порту 5201.

Запуск клиента

На втором устройстве (клиенте) укажите IP-адрес сервера:

iperf3 -c 192.168.1.100
  • -c — режим клиента.
  • 192.168.1.100 — замените на IP-адрес вашего сервера.

По умолчанию тест длится 10 секунд. Результаты покажут скорость передачи данных в мегабитах в секунду (Mbps).

Тестирование с публичным сервером

Если у вас нет возможности запустить собственный сервер, вы можете использовать публичные серверы iperf. Например, сервер компании Bouygues Telecom:

iperf3 -c bouygues.iperf.fr

Эта команда подключается к публичному серверу bouygues.iperf.fr (по умолчанию использует порт 5201) и измеряет скорость между вашим устройством и этим сервером. Учтите, что доступность публичных серверов может меняться, и результаты зависят от вашего интернет-соединения.

Полезные опции

  • -t <время> — длительность теста в секундах (например, -t 30).
  • -p <порт> — указать порт (например, -p 5001).
  • -u — использовать UDP вместо TCP.
  • -b <скорость> — ограничить пропускную способность (например, -b 10M для 10 Mbps).
  • -R — тестировать обратное направление (от сервера к клиенту).

Пример теста UDP:

iperf3 -c 192.168.1.100 -u -b 100M

Интерпретация результатов

После завершения теста iperf3 выводит таблицу с результатами:

  • Interval — интервал времени.
  • Transfer — объем переданных данных.
  • Bandwidth — пропускная способность в Mbps.

Пример вывода для локального теста:

[  5]   0.00-10.00  sec  1.13 GBytes  970 Mbits/sec

Это означает, что за 10 секунд было передано 1.13 ГБ со средней скоростью 970 Mbps.

Вот пример реального вывода для теста с публичным сервером bouygues.iperf.fr:

<p>iperf3 -c bouygues.iperf.fr
    Connecting to host bouygues.iperf.fr, port 5201
    [ 4] local 192.168.0.47 port 56396 connected to 89.84.1.222 port 5201
    [ ID] Interval Transfer Bandwidth Retr Cwnd
    [ 4] 0.00-1.00 sec 608 KBytes 4.98 Mbits/sec 0 48.1 KBytes
    [ 4] 1.00-2.00 sec 1.24 MBytes 10.4 Mbits/sec 0 80.6 KBytes
    [ 4] 2.00-3.00 sec 1.62 MBytes 13.6 Mbits/sec 0 120 KBytes
    [ 4] 3.00-4.00 sec 2.11 MBytes 17.7 Mbits/sec 0 151 KBytes
    [ 4] 4.00-5.00 sec 2.92 MBytes 24.5 Mbits/sec 0 173 KBytes
    [ 4] 5.00-6.00 sec 2.98 MBytes 25.0 Mbits/sec 0 191 KBytes
    [ 4] 6.00-7.00 sec 3.42 MBytes 28.7 Mbits/sec 0 212 KBytes
    [ 4] 7.00-8.00 sec 1.30 MBytes 10.9 Mbits/sec 0 212 KBytes
    [ 4] 8.00-9.00 sec 445 KBytes 3.65 Mbits/sec 1 212 KBytes
    [ 4] 9.00-10.00 sec 891 KBytes 7.30 Mbits/sec 0 212 KBytes</p>
<p>[ ID] Interval Transfer Bandwidth Retr
    [ 4] 0.00-10.00 sec 17.5 MBytes 14.7 Mbits/sec 1 sender
    [ 4] 0.00-10.00 sec 16.7 MBytes 14.0 Mbits/sec receiver

В этом случае тест показывает, что за 10 секунд было передано 17.5 МБ со средней скоростью 14.7 Mbps (отправитель) и 14.0 Mbps (получатель). Колонка Retr указывает на повторные передачи (в данном случае 1), а Cwnd — на размер окна перегрузки, который увеличивается в процессе теста.

Заключение

iperf — это простой и эффективный инструмент для проверки скорости сети. С его помощью можно быстро выявить узкие места в соединении и оценить реальную производительность, будь то локальная сеть или подключение к публичным серверам, таким как bouygues.iperf.fr. Убедитесь, что файрволл настроен правильно, и используйте подходящие опции для ваших задач. Если у вас остались вопросы, оставьте комментарий ниже!