Перевірка швидкості з'єднання за допомогою iperf

Перевірка швидкості з'єднання за допомогою iperf

iperf — це потужний інструмент для тестування пропускної здатності мережі, який дозволяє вимірювати швидкість передачі даних між двома пристроями. Його широко використовують системні адміністратори та інженери для діагностики проблем у мережі та оцінки продуктивності з’єднання. У цій статті ми розглянемо, як встановити iperf, як ним користуватися та як правильно налаштувати брандмауер для його коректної роботи.

Встановлення iperf

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

Встановлення на Linux

  • Ubuntu 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 Defender».
    • Перейдіть до «Дозволити програмі або функції працювати через брандмауер Windows Defender».
  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:

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
[ 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. Переконайтеся, що ваш брандмауер правильно налаштований, і використовуйте відповідні опції для ваших потреб. Якщо у вас є запитання, залиште коментар нижче!