Руководство по iperf3: тестирование скорости сети в Linux и Windows

10 мин чтения - 7 мая 2026 г.

hero section cover

Установите 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 через «Свойства системы» > «Дополнительно» > «Переменные среды». Вам также необходимо создать правило входящего трафика в брандмауэре Windows Defender, разрешающее TCP на порту 5201.

Настройка сервера

Запустите сервер с помощью команды:

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
-ZZerocopy (снижает нагрузку на ЦП при высокоскоростных соединениях)

Расширенные тесты

Двунаправленное тестирование

Флаг --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 использует для UDP значение 1 Мбит/с:

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_max134217728 (128 МБ)
net.core.wmem_max134217728 (128 МБ)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

Установите 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 сразу после настройки и после любых изменений в сети, чтобы своевременно выявить ухудшение показателей.

Рекомендации по видео

Блог

События этой недели

Другие статьи
Руководство по iperf3: тестирование скорости сети в Linux и Windows

Руководство по iperf3: тестирование скорости сети в Linux и Windows

Установите iperf3, запустите тесты пропускной способности и настройте буферы TCP для получения точных результатов в Linux и Windows. Охватывает тестирование UDP, двунаправленное тестирование и тестирование 10GbE+.

10 мин чтения - 7 мая 2026 г.

Другие статьи
background image

У вас есть вопросы или вам нужно индивидуальное решение?

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание