Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>[nmap iperf3 scanner]}} ====== iperf3 ====== iPerf3 — кроссплатформенная консольная клиент-серверная программа — генератор TCP, UDP и SCTP трафика для тестирования пропускной способности сети. 1 С её помощью можно измерить максимальную пропускную способность сети между сервером и клиентом или провести нагрузочное тестирование канала связи для определения уровня потерь. 2 Для установки утилиту нужно скачать с официального сайта (iperf.fr) и распаковать файлы в удобную папку. Затем открыть командную строку (клавиши Win+R), ввести cmd и перейти в папку с распакованными файлами iPerf3. 2 ===== Пример использования ===== Запуск сервера на порту по умолчанию <code bash> $ iperf3 -s </code> Запуск сервера на определённом порту <code bash> $ iperf3 -s -p 12345 </code> Запуск теста пропускной способности <code bash> $ iperf3 -c server </code> Запуск сервера в UDP-режиме с выводом результатов раз в секунду, на порту 65005 <code bash> $ iperf -u -s -i1 -p 65005 </code> Тестирование UDP c длиной 100 байт со скоростью 20 Кбит/с в течение 180 секунд (имитация VoIP трафика, запускать нужно в обе стороны). <code bash> $ iperf -u -c server_host -l100 -b20k -t180 </code> Передать 10 мегабайт данных на порт 65005 <code bash> $ iperf -n 10m -p 65005 -c server_host </code> <note tip>По умолчанию для iperf3 используется порт 5201 TCP/UDP.</note> ===== Синтаксис команды iperf3 ===== Общие опции для сервера и клиента: * -p, --port # номер порта, на котором будет работать сервер/клиент (по умолчанию используется 5201) * -f, --format [kmgKMG] формат скорости в результатах теста: k (Кбит), K (Кбайт), m (Мбит), M (Мбайт), g (Гбит), G (Гбайт) * -i, --interval # интервал между выводом результата тестирования, в секундах * -V, --verbose более детализированный вывод информации * -d, --debug вывод дополнительной информации для отладки * -v, --version показать версию * -h, --help показать справку * Основные опции для сервера: * * -s, --server запуск сервера c отображением информации на экране * -D, --daemon запуск сервера в фоновом режиме, без отображения информации на экране; будет оставаться запущенным, даже после закрытия окна программы * Основные опции для клиента: * * -c, --client <хост> запуск клиента и подключение к серверу <хосту> * -u, --udp протокол UDP вместо TCP * -b, --bandwidth #[KMG][/#] максимальная скорость в битах/сек (0 - отсутствует ограничение); по умолчанию отсутствует ограничение скорости для TCP, а для UDP составляет 1 Мбит/сек (опция /# для пакетного режима передачи данных) * -t, --time # время тестирования в секундах (по умолчанию 10 сек) * -n, --bytes #[KMG] количество байт для передачи данных (вместо ключа -t) * -l, --len #[KMG] размер буфера (по умолчанию 128 КБ для TCP, 8 КБ для UDP) * -P, --parallel # число одновременных параллельных клиентских потоков * -R, --reverse запуск в обратном режиме (Reverse mode: сервер отправляет трафик, клиент принимает) * -4, --version4 использовать только IPv4 * -6, --version6 использовать только IPv6 * -Z, --zerocopy метод отправки данных по технологии zero copу для снижения нагрузки на процессор * -O, --omit N пропустить первые n секунд (игнорировать алгоритм TCP slowstart) * --get-server-output получить результаты с сервера Приведем примеры использования команд iperf3 с разными опциями: Запуск сервера (с настройками по умолчанию): <code bash> $ iperf3 -s </code> Запуск клиента (с настройками по умолчанию): <code bash> $ iperf3 -c 192.168.1.143 </code> В наших примерах 192.168.1.143 это IP-адрес сервера iperf3. Важно! Сервер может принимать соединения одновременно только от одного клиента. Если сервер занят другим клиентом, при попытке тестирования будет появляться ошибка server is busy running a test. try again later. В таком случае нужно подождать освобождение сервера. Но также есть возможность запустить несколько экземпляров клиентов и серверов на одном и том же хосте. Для этого используйте назначение разных портов при помощи ключа -p <порт>. Например, вы можете на сервере открыть 2 окна командной строки, в одном выполнить команду: <code bash> $ iperf3 -s 5005 #(сервер будет работать на порту 5005) </code> и в другом окне: <code bash> $ iperf3 -s -p 5006 #(сервер будет работать на порту 5006) </code> Теперь на одном клиенте выполните команду для подключения к серверу, который работает на порту 5005: <code bash> $ iperf3 -c -p 5005 192.168.1.143 </code> и на втором клиенте команду для подключения к серверу, который работает на порту 5006: <code bash> $ iperf3 -c -p 5006 192.168.1.143 </code> Запуск клиента с выводом более детализированной информации: <code bash> $ iperf3 -Vc 192.168.1.143 $ iperf3 -c -V 192.168.1.143 </code> По умолчанию iperf3 работает так: сервер принимает данные, а клиент отправляет. Для тестирования входящей скорости на клиенте нужно использовать обратный режим (Reverse mode) и в команду добавить ключ -R: <code bash> $ iperf3 -c 192.168.1.143 -R </code> Чтобы увеличить длительность тестирования (по умолчанию 10 сек) используйте ключ -t <сек>: <code bash> $ iperf3 -c 192.168.1.143 -R -t 60 </code> В программе можно использовать многопоточный режим тестирования. Чтобы указать количество потоков используйте ключ -P <число> (в данном примере тестирование будет выполняться в 2 потока): <code bash> $ iperf3 -c 192.168.1.143 -R -t 60 -P 2 </code> При тестировании с настройками по умолчанию вывод результатов происходит каждую секунду. С помощью ключа -i <сек> можно изменить интервал времени для вывода результатов (в данном примере интервал увеличен до 3 секунд): <code bash> $ iperf3 -c 192.168.1.143 -R -t 60 -P 2 -i 3 </code> Можно также указать объем трафика, который необходимо передать при тестировании. Для этого используйте ключ -n <байты>[KMG] вместо ключа -t: <code bash> $ iperf3 -c 192.168.1.143 -R -n 500M -P 2 -i 3 </code> По умолчанию тестирование выполняется с помощью протокола TCP, но поддерживается также работа с протоколом UDP. Для этого используйте ключ -u: <code bash> $ iperf3 -Vc 192.168.1.143 -u -R -t 60 </code> Протокол UDP, в отличие от TCP, не использует алгоритмы контроля доставки пакетов и контроля скорости передачи, и имеет другое поведение в сети. Так как UDP не контролирует скорость передачи данных, это должно делать приложение передающее трафик. По умолчанию установлено ограничение максимальной скорости 1 Мегабит для UDP-трафика. Не указывайте слишком большую максимальную скорость для протокола UDP, т.к. это может привести к перегрузке сети (рекомендуем этот параметр устанавливать до 100 Мегабит). Установить ограничение максимальной скорости можно с помощью ключа -b <биты>[KMG]: <code bash> $ iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M </code> Также обращаем ваше внимание на ключ -l <байты>, он устанавливает длину пакета. В режиме UDP устанавливайте этот параметр не более 1400 байт. <code bash> $ iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M -l 1400 </code>СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal