самоучитель 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 | Режим обратной передачи (сервер отправляет, клиент принимает) |
-w <n>K | Размер окна TCP / буфера сокета |
-J | Вывод в формате JSON |
-Z | Zerocopy (снижает нагрузку на ЦП на быстрых каналах) |
Расширенные тесты
Двунаправленное тестирование
Флаг --bidir флаг (iperf3 3.7+) тестирует загрузку и выгрузку одновременно:
iperf3 -c 192.168.1.10 --bidir
Оба соединения инициируются с клиента, поэтому это работает через NAT без открытия дополнительных портов. Если результаты двунаправленного теста значительно ниже, чем при однонаправленном тестировании, ваш маршрутизатор или кабельный модем, возможно, испытывает трудности с обработкой полнодуплексного трафика.
Режим «Reverse»
Флаг -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 показывает 536 байт в Ethernet? Вероятно, отключена функция Path MTU Discovery. По умолчанию MSS для MTU в 1500 байт составляет 1460 байт. Во время тестирования используйте -m во время тестирования, чтобы проверить. MSS в 536 байт тратит пропускную способность и увеличивает накладные расходы.
Процессор работает на пределе возможностей на быстрых каналах? Используйте -Z (zerocopy), чтобы снизить нагрузку на ЦП. Для скоростей 40 Гбит/с и выше запускайте несколько экземпляров сервера на разных портах и распределите их по ядрам ЦП.
Непоследовательные результаты? Используйте -O 3 , чтобы пропустить первые несколько секунд, пока нарастает окно перегрузки TCP. Оставляйте 30 секунд между запусками теста, чтобы очистить сетевые буферы.
Один поток работает намного медленнее, чем все параллельные потоки вместе взятые? Если один поток достигает 200 Мбит/с, но восемь потоков вместе дают 1,6 Гбит/с, значит, окно TCP или буферы ОС ограничивают скорость одного потока. Настройте буферы ниже.
Настройка буфера TCP
Начните с расчета произведения пропускной способности и задержки (BDP): пропускная способность x 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 flag в iperf3 для тестирования определенных размеров буфера, но учтите, что он не может превышать значение ядра rmem_max или wmem_max. Начните с 8 МБ для гигабитных каналов и 512 КБ для 100 Мбит/с.
Если вы развертываете выделенные серверы и хотите проверить производительность сети, запускайте базовые тесты iperf3 сразу после настройки и после любых изменений в сети, чтобы своевременно выявить ухудшение показателей.
Рекомендации по видео
XDP и eBPF для обработки пакетов в Linux
Как XDP и eBPF обрабатывают миллионы пакетов в секунду на уровне драйверов сетевых карт. Бенчмарки, примеры использования DDoS, настройка цепочки инструментов и требования к оборудованию.
14 мин чтения - 27 мая 2026 г.
Почему важно иметь мощный и не тарифицируемый VPS
3 мин чтения - 9 мая 2025 г.

У вас есть вопросы или вам нужно индивидуальное решение?
Гибкие варианты
Глобальный охват
Мгновенное развертывание
Гибкие варианты
Глобальный охват
Мгновенное развертывание