### iperf **Совместимость iPerf и iPerf3** Клиент и сервер совместимы, но нужно знать, что по умолчанию, рабочий порт для iPerf — 5001, для iPerf3 — 5201. **Установка** ```bash sudo apt install iperf ``` или ```bash sudo apt install iperf3 ``` Запускаем сервер: ```bash iperf3 -s ``` На экране появится: ``` ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ``` Сервер ждет запросов. **Все ключи запуска 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` _Размер буфера записи/чтения для TCP (по-умолчанию 128K), размер пакета для UDP (по-умолчанию 1470)_ `-P` _Число параллельных запросов_ `-R` _Обратный режим — сервер отправляет, клиент принимает_ `-w` _Размер сетевого окна_ `-C` _Установить алгоритм управления перегрузкой TCP_ `-M` _Задать максимальный размер MTU_ `-4` _Работать только для IPv4_ `-6` _Работать только для IPv6_ `-Z` _Использовать метод «нулевой копии» для отправки данных_ `-O` _Опустить первые n секунд_ `-T` _Задать префикс для каждой строки вывода_ Также самый свежий список ключей можно получить командой: ```bash man iperf3 ``` **Примеры использования iPerf** _Рассмотрим некоторые команды запросов к серверу для проверки скорости соединения._ Использование UDP ```bash iperf3 -c 192.168.0.15 -u ``` * сам сервер не нужно запускать в UDP-режиме, так как он принимает любые запросы. Альтернативные порты _Для этого необходимо сначала запустить сервер на нужном порту:_ ```bash iperf3 -s -p 443 ``` * кстати, можно запустить несколько процессов iperf одновременно, которые будут слушать на разных портах. * стоит не забывать про настройки брандмауэра. В данном примере понадобиться ввести команды `firewall-cmd --permanent --add-port=443/tcp и firewall-cmd --reload`. Теперь можно запускать клиента: ```bash iperf3 -c 192.168.0.15 -p 443 ``` Проверка скорости в течение 30 секунд с интервалами по 2 секунды ```bash iperf3 -c 192.168.0.15 -t 30 -i 2 ``` Несколько параллельных запросов ```bash iperf3 -c 192.168.0.15 -P 3 ``` Отправляем на проверку 3 Гб данных ```bash iperf3 -c 192.168.0.15 -n 3G ```