Меню Рубрики

Iperf как пользоваться linux

Как пользоваться iperf

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

Программа состоит из клиентской и серверной части, поэтому для работы вам понадобится как минимум два компьютера, подключённых к сети. В этой статье мы рассмотрим как установить и как пользоваться iperf. Обратите внимание, что мы будем говорить об последней версии программы iperf3.

Установка iperf

Как я уже сказал, программа кроссплатформенная, поэтому вы можете использовать её как в Windows, так и в Linux. Для установки в Ubuntu или Debian выполните:

sudo apt install iperf3

А для установки iperf в CentOS или Fedora:

sudo dnf install iperf3

В Windows программа ставится немного по другому. Просто скачайте утилиту из официального сайта и распакуйте куда-нибудь. Сразу же после этого вы сможете её использовать.

Синтаксис и опции iperf

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

$ iperf3 -s опции

Для запуска клиента используется ключ -c, которому надо передать адрес сервера:

$ iperf3 -c адрес_сервера опции

Теперь давайте рассмотрим общие опции программы:

  • -p, —port — указать порт для сервера или к какому порту надо подключаться;
  • -f, —format — формат выводимых данных, доступны значения: k,m,g,t,K,M,G,T;
  • -i, —interval — интервал времени между выводами результата тестирования;
  • -F, —file — использовать данные из файла вместо генерации случайных данных;
  • -V, —verbose — вывод максимально подробной информации;
  • -J, —json — вывод в формате JSON;
  • —logfile — записывать информацию в лог файл;
  • —forceflush — очищать историю вывода перед выводом следующего результата тестирования;
  • -v, —version — версия программы.

Теперь разберемся с опциями только для серверной части:

  • -D, —daemon — запустить сервер в фоновом режиме;
  • -I, —pidfile — путь для записи PID файла процесса;
  • -1, —one-off — обработать только одно подключение клиента, а затем выйти.

У клиентской части опций чуть больше:

  • —sctp — использовать SCTP вместо TCP;
  • -u, —udp — использовать UDP вместо TCP;
  • —connect-timeout — таймаут для первого соединения с сервером в миллисекундах;
  • -b, —bitrate — битрейт, для UDP используется по умолчанию 1 Мбит/сек, для TCP не ограничено;
  • -t, —time — время одного теста в секундах, по умолчанию 10 секунд;
  • -R, —reverse — обратный тест, не клиент отправляет данные серверу, а сервер клиенту;
  • -P — количество потоков;
  • -w — размер окна TCP;
  • -4, —version4 — использовать только IPv4;
  • -6, —version6 — использовать только IPv6.

Мы рассмотрели далеко не все опции, а только самые интересные и те, которые будут использоваться в нашей статье. Для просмотра всех опций выполните такую команду после установки программы:

Теперь вы знаете как установить iperf, а также основные её опции, но на этом инструкция не заканчивается. Дальше давайте перейдем к примерам использования iperf3.

Как пользоваться iperf

Для примеров я буду использовать сервер с адресом 192.168.0.101. Адрес клиента не имеет значения. Сначала необходимо запустить серверную часть программы. Для этого выполните:

Вы можете сразу указать в каких единицах измерения хотите видеть результаты. Для этого используется опция -f. Доступны такие варианты:

  • k — килобиты;
  • m — мегабиты;
  • g — гигабиты;
  • K — килобайты;
  • M — мегабайты;
  • G — гигабайты;
  • T — терабайты.

Аналогично для сервера можно задать порт с помощью опции -p. По умолчанию он работает на порту 5201:

В любом случае, если на сервере установлен брандмауэр, то вам надо разрешить в нём подключение к порту 5201 или тому, который вы выбрали. Например, для ufw команда будет выглядеть так:

sudo ufw allow 5201

sudo firewall-cmd —permanent —add-port=5201/tcp
sudo firewall-cmd —permanent —add-port=5201/udp
sudo firewall-cmd —reload

И если вы хотите запустить программу в фоновом режиме, можете использовать опцию -D и перенаправить вывод в лог файл:

iperf3 -s -D —logfile /var/log/ipref.log

Убедится, что сервер запущен можно с помощью команды ss:

ss -tulpn | grep 5201

Обратите внимание на IP адрес, на котором слушает сервер, звездочка означает IPv4 соединения, а [::] — IPv6. Поэтому, возможно вам придется вручную указать откуда надо ждать подключений:

iperf3 -s -4 -D —logfile /var/log/ipref.log

Теперь к серверу можно подключаться. Для этого используйте опцию -c. Если вы меняли порт сервера, то здесь его надо указать с помощью опции -p:

iperf3 -c 192.168.0.101 -f K

В данном примере тест выполняется 10 секунд. Чтобы понять какая сейчас у вас пропускная способность сети следует смотреть на колонку Bitrate. Обращайте внимание на строки под чертой, они отображают среднее значение. В данном примере было передано 113 мебабайт со скоростью 11534 килобайт в секунду.

По умолчанию утилита выводит промежуточный результат каждую секунду, вы можете изменить это поведение с помощью опции -i. Например, 5 секунд:

iperf3 -c 192.168.0.101 -f M -i 5

А общую продолжительность теста можно задать с помощью опции -t. Например, 30 секунд:

iperf3 -c 192.168.0.101 -f M -i 5 -t 30

По умолчанию клиент отправляет данные серверу. Вы можете использовать опцию -R, чтобы сервер отправлял данные клиенту:

iperf3 -c 192.168.0.101 -f K -R

Если вы хотите видеть вывод сервера на клиенте, достаточно использовать опцию —get-server-output:

iperf3 -c 192.168.0.101 -f K —get-server-output

С помощью опции -P можно указать количество параллельных потоков тестирования, например, два:

iperf3 -c 192.168.0.101 -f K -P 2

Чтобы использовать UDP пакеты вместо TCP используйте опцию -u:

iperf3 -c 192.168.0.101 -f K -u

Если вы хотите узнать скорость работы вашего сетевого провайдера и у вас нет сервера в сети, можете использовать один из публичных iperf серверов. Полный список таких серверов можно найти здесь. Например:

iperf3 -c iperf.volia.net

Выводы

В этой статье мы рассмотрели как пользоваться iperf 3 для проверки пропускной способности сети, а также разобрались как узнать скорость вашего провайдера с помощью публичных серверов iperf. Как видите, всё не так уж сложно. А какие вы используете утилиты для проверки скорости работы сети? Напишите в комментариях!

Источник

Установка, настройка и использование iPerf

iPerf является кроссплатформенным приложением и может быть установлен на любую популярную операционную систему. В данной инструкции будет рассмотрена установка сервера на Linux CentOS и клиента как на последнем, так и Microsoft Windows.

Установка сервера/клиента

По сути, нет отдельного iPerf для сервера или клиента — это один и тот же программный продукт, который может запускаться в режиме сервера или выполнять клиентские команды.

Для начала выполняем установку расширенного репозитория:

yum install epel-release

yum install iperf3

Открываем порт в брандмауэре:

firewall-cmd —permanent —add-port=5201/tcp

firewall-cmd —permanent —add-port=5201/udp

* в данном примере мы открыли порт 5201 (для iPerf по умолчанию) для пакетов TCP и UDP.

На экране появится:

Сервер ждет запросов.

Клиентские запросы и проверка сервера

Напомню, что клиент может быть установлен на любую систему. Также, как в первом случае, выполняем установку клиента на другой компьютер в сети.

После можно сразу выполнить команду:

iperf3 -c 192.168.0.15

* где 192.168.0.15 — iPerf сервер.

На клиенте мы увидим что-то подобное:

[ 4] local 192.168.0.20 port 47068 connected to 192.168.0.15 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 104 MBytes 873 Mbits/sec 10 391 KBytes
[ 4] 1.00-2.00 sec 110 MBytes 921 Mbits/sec 4 393 KBytes
[ 4] 2.00-3.00 sec 111 MBytes 928 Mbits/sec 1 478 KBytes
[ 4] 3.00-4.00 sec 104 MBytes 875 Mbits/sec 5 423 KBytes

  • 192.168.0.20 — адрес клиента
  • 192.168.0.15 — адрес сервера
  • ID — идентификатор запросов, нужен для ориентирования, если к серверу идет несколько обращений.
  • Interval — промежуток времени в секундах, на протяжении которого выполнялась передача данных.
  • Transfer — сколько было передано данных за интервал времени.
  • Bandwidth — средняя скорость передачи данных за интервал времени.
  • Retr — количество повторно отправленных TCP-сегментов.
  • Cwnd — одновременно переданных данных.

Все ключи запуска iPerf

Общие для сервера и клиента:

Ключ Описание
-p Определить порт, на котором будет слушать сервер или отправлять запросы клиент
-f Формат отчетов — kmgKMG (Kbits, Mbits, KBytes, MBytes, . )
-i Задать интервал, в течение которого выполняется одна проверка
-F Указать файл, из которого будут взяты входные данные для запуска
-A Степень нагрузки на процессор
-B Указать, через какой сетевой интерфейс работать
-V Детализированные сообщения в консоли
-J Вывод в формате json
—logfile Весь вывод в отдельный лог-файл
-d Режим отладки (много сообщений)
-v Показать версию программы
-h Вызвать справку по работе с программой

Для сервера:

Ключ Описание
-s Запустить iPerf в режиме сервера
-D Запустить как демона (как службу)
-I Указать pid-файл
-1 Принять запрос от одного клиента и завершить работу

Для клиента:

Ключ Описание
-c Запустить iPerf в режиме клиента
-u Отправлять UDP-пакеты
-b Формат отчетов для bandwidth (средней скорости)
-t Количество секунд, в течение которых будет идти проверка скорости
-n Объем данных для проверки (применяется вместо времени -t)
-k Количество пакетов для проверки (вместо -t или -n)
-l Длина буфера записи/чтения
-P Число параллельных запросов
-R Обратный режим — сервер отправляет, клиент принимает
-w Размер сетевого окна
-C Установить алгоритм управления перегрузкой TCP
-M Задать максимальный размер MTU
-4 Работать только для IPv4
-6 Работать только для IPv6
-Z Использовать метод «нулевой копии» для отправки данных
-O Опустить первые n секунд
-T Задать префикс для каждой строки вывода

Также самый свежий список ключей можно получить командой:

Автозапуск сервера (создание сервиса в systemd)

По умолчанию, программу нужно запускать вручную. Если мы хотим, чтобы сервер запускался автоматически и работал как служба systemd, выполняем инструкцию ниже.

Создаем юнит в systemd со следующим содержимым:

[Unit]
Description=iPerf Service
After=network.target

[Service]
Type=forking
PIDFile=/run/iperf3.pid
ExecStart=-/bin/iperf3 -s -D -I /run/iperf3.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Mac os radio silence
  • Mac os radeon 7750
  • Mac os radeon 5570
  • Mac os quick look
  • Mac os python mysql