Посібник з використання iperf3: тестування швидкості мережі в Linux та Windows
10 хв читання - 7 травня 2026 р.

Встановіть iperf3, проведіть тести пропускної здатності та налаштуйте буфери TCP для отримання точних результатів у Linux та Windows. Охоплює тестування UDP, двонаправлене тестування та тестування 10GbE+
Посібник з використання iperf3: вимірювання продуктивності мережі в Linux та Windows
iperf3 — це інструмент командного рядка для вимірювання пропускної здатності мережі, джиттера та втрат пакетів між двома комп’ютерами. Він використовує модель «клієнт-сервер»: один комп’ютер перебуває в режимі прийому, інший — у режимі відправлення трафіку, і ви отримуєте точні показники пропускної здатності. Цей посібник охоплює встановлення, базові та розширені тести, а також способи налаштування системи для отримання точних результатів на високошвидкісних каналах зв’язку.
Встановлення iperf3
Debian / Ubuntu
sudo apt update
sudo apt install iperf3
Підтвердьте встановлення командою iperf3 --version. Встановіть програму як на сервері, так і на клієнтських машинах.
Fedora / CentOS / Rocky / Alma
У Fedora 22+ або CentOS 8+, Rocky чи AlmaLinux:
sudo dnf install iperf3
У CentOS 7 використовуйте yum замість цього. Якщо пакет не знайдено, спочатку увімкніть репозиторій EPEL:
sudo yum install epel-release
sudo yum install iperf3
Якщо ваш брандмауер активний, відкрийте порт 5201:
sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload
Windows
Завантажте автономний виконуваний файл з сайту iperf.fr або з репозиторію ar51an/iperf3-win-builds на GitHub. Розпакуйте його у папку, наприклад C:\iperf3, а потім перевірте:
cd C:\iperf3
iperf3.exe -v
Щоб запустити iperf3 з будь-якого каталогу, додайте цю папку до системного PATH через «Властивості системи» > «Додатково» > «Змінні середовища». Також вам потрібно буде створити правило вхідного трафіку, що дозволяє TCP на порту 5201 у брандмауері Windows Defender.
Налаштування сервера
Запустіть сервер за допомогою команди:
iperf3 -s
За замовчуванням сервер слухає на TCP-порту 5201. Щоб запустити його у фоновому режимі з веденням журналу:
iperf3 -s -D --logfile /var/log/iperf3.log
Перевірте, чи працює він, за допомогою команди ss -tulpn | grep 5201.
Якщо порт 5201 заблоковано у вашій мережі, скористайтеся командою -p , щоб вибрати інший порт. Щоб прив’язати сервер до конкретного інтерфейсу, скористайтеся командою -B:
iperf3 -s -B 192.168.1.10
Для одноразових тестів iperf3 -s -1 програма обробляє з'єднання з одним клієнтом, а потім завершується. На лініях зв'язку з високою пропускною здатністю (40 Гбіт/с і більше) запускайте кілька екземплярів сервера на різних портах, щоб обійти обмеження однопотокового процесора.
Переконайтеся, що ваш брандмауер пропускає трафік на обраному порту. У Ubuntu/Debian з UFW:
sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp # if testing UDP
Виконання клієнтських тестів
Базовий тест TCP
iperf3 -c 192.168.1.10
Цей тест вимірює пропускну здатність завантаження через TCP протягом 10 секунд. Збільште тривалість за допомогою -t:
iperf3 -c 192.168.1.10 -t 30
На лініях зв’язку зі швидкістю 10 Гбіт/с або 25 Гбіт/с швидкість одного потоку TCP часто не перевищує 3–5 Гбіт/с через обмеження одноядерного процесора. Використовуйте паралельні потоки, щоб повністю завантажити лінію:
iperf3 -c 192.168.1.10 -P 8
Аналіз результатів
Кожна рядок інтервалу показує «Transfer» (обсяг надісланих даних) та «Bitrate» (пропускну здатність). Для TCP також зверніть увагу на:
- Retr (повторні передачі). Високі значення означають втрату пакетів або перевантаження.
- Cwnd (вікно перевантаження). Якщо його значення низьке або застрягло, пропускну здатність обмежують розміри буфера або вікна.
На чистому каналі 1 Гбіт/с після врахування накладних витрат протоколу очікуйте близько 940 Мбіт/с. Тест завершується рядками з підсумками для відправника та одержувача. У стабільній мережі ці значення мають бути майже однаковими.
Для тестів UDP (-u flag) у вихідних даних додаються показники джиттера (відхилення часу прибуття пакетів) та кількості втрачених і загальної кількості датаграм. Джиттер менше 1 мс і 0% втрат є ідеальними показниками для трафіку в режимі реального часу, такого як VoIP.
Корисні прапорці
| Прапорець | Призначення |
|---|---|
-c <IP> | Підключитися до сервера |
-p <port> | Використання певного порту (за замовчуванням: 5201) |
-t <sec> | Тривалість тесту в секундах (за замовчуванням: 10) |
-i <sec> | Інтервал звітування |
-P <num> | Паралельні потоки |
-u | Режим UDP |
-b <n>M | Цільова пропускна здатність (UDP; якщо не вказано, за замовчуванням — 1 Мбіт/с) |
-R | Режим «Reverse» (сервер надсилає, клієнт отримує) |
-w <n>K | Розмір вікна TCP / буфера сокета |
-J | Вивід у форматі JSON |
-Z | Zerocopy (зменшує навантаження на процесор на швидкісних каналах) |
Розширені тести
Двонаправлене тестування
Флаг --bidir (iperf3 3.7+) тестує завантаження та вивантаження одночасно:
iperf3 -c 192.168.1.10 --bidir
Обидва з'єднання ініціюються з боку клієнта, тому це працює через NAT без відкриття додаткових портів. Якщо результати двонаправленого тесту значно нижчі за результати однонаправленого тесту, можливо, ваш маршрутизатор або кабельний модем не справляється з повнодуплексним трафіком.
Реверсний режим
Прапорець -R прапорець змінює напрямок потоку даних так, що сервер відправляє, а клієнт отримує. Це дозволяє виміряти швидкість завантаження без зміни ролей:
iperf3 -c 192.168.1.10 -t 30 -i 5 -R
Значні відмінності між результатами прямого та зворотного тестів вказують на асиметричні траєкторії, перевантаження або неправильні налаштування буфера.
Тестування UDP
Тести UDP виявляють коливання затримки та втрату пакетів, які протокол TCP приховує за повторними передачами. Завжди встановлюйте цільову пропускну здатність за допомогою -b, оскільки iperf3 за замовчуванням використовує 1 Мбіт/с для UDP:
iperf3 -c 192.168.1.10 -u -b 1G
Щоб імітувати трафік VoIP (100 дзвінків, пакети розміром 200 байт):
iperf3 -c 192.168.1.10 -u -b 8M -l 200
Показники якості: джиттер менше 5 мс є прийнятним для VoIP, більше 30 мс спричиняє чутні проблеми. Втрата пакетів понад 0,1% помітно погіршує якість медіа в режимі реального часу.
Налаштування та усунення несправностей
Поширені проблеми
Швидкість на гігабітному каналі становить лише 100 Мбіт/с? Перевірте швидкість фізичного інтерфейсу за допомогою ethtool eth0. Автоматичне узгодження іноді дає збій і знижує швидкість з’єднання.
MSS у мережі Ethernet показує 536 байт? Ймовірно, вимкнено функцію Path MTU Discovery. Значення MSS за замовчуванням для MTU розміром 1 500 байт становить 1 460 байт. Під час тестування скористайтеся -m під час тестування, щоб перевірити. MSS розміром 536 байт марнує пропускну здатність і збільшує накладні витрати.
Процесор працює на повну потужність на швидкісних каналах? Використовуйте -Z (zerocopy), щоб зменшити навантаження на процесор. Для швидкості 40 Гбіт/с і вище запускайте кілька екземплярів сервера на різних портах і розподіляйте їх між ядрами процесора.
Результати нестабільні? Використовуйте -O 3 , щоб пропустити перші кілька секунд, поки вікно перевантаження TCP розширюється. Залишайте 30 секунд між запусками тестів, щоб очистити мережеві буфери.
Один потік працює значно повільніше, ніж сукупність паралельних потоків? Якщо один потік досягає 200 Мбіт/с, а вісім потоків разом — 1,6 Гбіт/с, це означає, що вікно TCP або буфери ОС обмежують пропускну здатність окремого потоку. Налаштуйте буфери, як зазначено нижче.
Налаштування буферів TCP
Почніть з розрахунку добутку пропускної здатності та затримки (BDP): пропускна здатність × RTT. Канал 10 Гбіт/с із RTT 50 мс дає BDP 62,5 МБ. Встановіть максимальний розмір буфера щонайменше у 2 рази більшим за BDP.
Додайте ці значення до /etc/sysctl.d/99-tcp-tuning.conf та застосуйте за допомогою sudo sysctl -p:
| Параметр | Рекомендовано (1–10 Гбіт/с) |
|---|---|
net.core.rmem_max | 134217728 (128 МБ) |
net.core.wmem_max | 134217728 (128 МБ) |
net.ipv4.tcp_rmem | 4096 131072 134217728 |
net.ipv4.tcp_wmem | 4096 131072 134217728 |
net.core.default_qdisc | fq |
net.ipv4.tcp_congestion_control | bbr |
Залишити net.ipv4.tcp_moderate_rcvbuf значення 1, щоб ядро автоматично налаштовувалося в межах цих діапазонів. Увімкніть net.ipv4.tcp_window_scaling (встановіть значення 1) для вікон TCP, розмір яких перевищує 64 КБ.
Ви також можете перейти з алгоритму управління перевантаженням CUBIC (за замовчуванням) на алгоритм BBR від Google. На каналах зв’язку з великою затримкою та певною втратою пакетів BBR стабільно забезпечує вищу пропускну здатність, ніж CUBIC.
Використовуйте -w прапор у iperf3 для тестування конкретних розмірів буферів, але зверніть увагу, що вони не можуть перевищувати значення ядра rmem_max або wmem_max. Почніть з 8 МБ для гігабітних каналів та 512 КБ для 100 Мбіт/с.
Якщо ви налаштовуєте виділені сервери та хочете перевірити продуктивність мережі, запускайте базові тести iperf3 одразу після налаштування та після будь-яких змін у мережі, щоб вчасно виявити погіршення продуктивності.
Рекомендації щодо відео

Посібник з використання iperf3: тестування швидкості мережі в Linux та Windows
Встановіть iperf3, проведіть тести пропускної здатності та налаштуйте буфери TCP для отримання точних результатів у Linux та Windows. Охоплює тестування UDP, двонаправлене тестування та тестування 10GbE+
10 хв читання - 7 травня 2026 р.
Налаштовані профілі для оптимізації робочих навантажень серверів Linux
16 хв читання - 9 червня 2026 р.

Маєте запитання або потребуєте індивідуального рішення?
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання