Узнать, как воспользоваться iperf в ОС Windows не так сложно. А польза от данных знаний несомненна. Материала на тему обычно встречается немного, да и объяснения там далеки от понятных. Попытаемся разобраться, как действует утилита. Для чего она предназначена. Программа работает под Windows, Linux, имеет несколько разновидностей. Настройка, если вникнуть, позволит воспользоваться всеми возможностями программы.
Что такое iperf?
Iperf представляет собой специализированное ПО, предназначенное для оценки пропускной способности канала. Тонкость состоит в том, что необходимы 2 ПК. Один будет работать как сервер, другой – как клиент. И на обоих нужны установленные iperf.
По поводу замера скорости существует 2 разновидности:
- на выходе;
- на входе.
В первом варианте компьютер будет работать как «клиент». Во втором – как «сервер».
Что умеет?
Ipref служит для замера пропускной способности канала. В утилите имеется несколько настраиваемых параметров. Работает с протоколами TCP, UDP, SCTP, IPv4, IPv6. Для сисадмина iperf – незаменимый инструмент. Главное, что ПО бесплатно, не требует расходов на покупку, лицензирование.
Различают 2 разновидности iperf: iperf2 и iperf3. Они действуют независимо друг от друга. Допускается использовать посредством Командой строки Windows. Либо в оболочке Java с графическим интерфейсом.
Установка ipref
Для начала утилиту iperf следует скачать. Она не входит в сборки Windows, не является частью ОС. Загружают iperf отдельно. Можно скачать здесь, предварительно выбрав требуемую разрядность ОС:
https://www.softslot.com/download-2898.html
Дожидаемся завершения загрузки iperf. Проще всего сразу скачивать файл инсталляции на системный диск. Казалось бы, можно запустить утилиту и пользоваться. Но нет. Ничего не получится. Следует воспользоваться Командной строкой.
Алгоритм следующий:
- Запустить Командную строку (в Windows 10 ввести «cmd» в поиске).
- Ввести «cd c:/» (если утилита находится на данном диске).
- Далее, для использования в качестве клиента, вводится сочетание: «iperf -c -t 30 -i 10». Здесь «t» задает время теста, а «i» – периодичность обновления данных.
Если будет архивный файл дистрибутива iperf, то его перед установкой потребуется распаковать. Иногда необходимо запускать утилиту под учетной записью Администратора. Список доступных команд появится после ввода «dir». Обязательно скачивается наиболее свежая версия ПО. Выбрать «двойку» или «тройку» iperf – решать самому пользователю.
Синтаксис и опции
Применительно к синтаксису ПО iperf следует понимать, что клиентская и серверная части существуют независимо друг от друга. И значит, запускаются различными командами. Вот как нужно действовать применительно к каждой ситуации:
- для сервера – $ iperf3 -s опции;
- для клиента – $ iperf3 -c адрес_сервера опции;
Когда разобрались с запуском, можно переходить к командам, опциям программы. Их перечень обширен, но и здесь не так сложно вникнуть, если захотеть. Начнем с общих.
Ввод «-p» определяет порт для подключения. «-f» означает формат данных для отображения на дисплее. Доступны килобиты, мегабиты, килобайты, мегабайты в секунду. Остальные команды перечислены ниже:
- «-i» означает интервал в демонстрации данных теста iperf;
- «-F» задает использование информации из файла (а не генерации случайных показателей);
- «-l» позволяет определить размер буфера (изначально установлено 8 килобайт);
- «-m» отсылает к сегменту, его величине;
- «-o» выводит результаты для записи в файл;
- «-p» устанавливает порт привязки (5201 в пресете);
- «-u» задает UDP сетевой протокол;
- «-w» управляет размером окна;
- «-B» привязывает к интерфейсу, хосту;
- «-J» запускает переход к JSON-формату.
Это были базовые команды. Далее перейдем к серверным.
Опции для сервера
Данные действия предназначены для управления приложением ipref на серверном компьютере. Вот что приготовили разработчики:
- «-s» задает работу в режиме сервера;
- «-D» активирует фоновый запуск;
- «-I» устанавливает путь сохранения PID-файла;
- «-1» назначает однократное клиентское подключение с последующим выходом.
Не так много, как бы хотелось. Для режима «клиент» выбор побогаче.
Опции для клиента
Как уже известно, приложение iperf может работать в 2 базовых режимах. Вот что доступно для ПК клиента:
- «—sctp» включает замену сетевого протокола TCP на SCTP;
- «-u» переключает на протокол UDP;
- «—connect-timeout» позволяет задать время начального подключения к серверу (измеряется в миллисекундах);
- «-b» означает скорость, битрейт. В режиме TCP ничем не ограничен, для UDP протокола задан от 1 мегабита в секунду;
- «-t» устанавливает время на прогонку теста. Измеряется в секундах. Изначально параметр задан в 10 секунд;
- «-R» запускает реверс. То есть измерение производится не от клиента к серверному ПК, а в обратном направлении;
- «-P» определяет число действующих потоков;
- «-w» регулирует размеры окна TCP.
Кроме того, доступно принудительное переключение на настройки протокола IPv4 (ввести «-4»), IPv6 («-6»).
Как пользоваться в операционной системе Windows
Прежде всего, следует выбрать требуемую версию приложения iperf. Она зависит от разрядности Windows, ее версии – 7, 8, 10. Когда определена нужная разновидность, скачивают дистрибутив, устанавливают ПО. Затем запускают Командную строку, это базовый режим работы iperf. Обязательно следует использовать учетную запись Администратора.
Далее принимается решение, какой параметр пропускной способности будет измеряться. То есть, станет приложение iperf определять скорость для сервера либо же для клиентского ПК.
Примеры
Проще всего понять работу приложения на конкретном примере. Тогда станет понятно, что происходит в iperf. А также, что именно, как там измеряется. Для упрощения ситуации используем сервер с конкретным адресом, 192.168.0.101. Клиентский адрес может быть каким угодно. Начинаем с запуска серверного ПК.
Используем версию iperf3, но допускается и другая. Алгоритм действий следующий:
- Ввести «iperf3 –s». Чтобы определить единицы измерения скорости, задается команда «-f». Среди наиболее часто используемых – кило, мега, гигабиты. Обозначаются, соответственно, литерами «k», «m», «g». Доступны также кило, мега, гига и терабайты. Для них выбраны символы «K», «M», «G», «T». Сочетание «iperf3 -s -f K» означает отображение скорости в килобайтах.
- Настроить порт. В базовых установках задан порт 5201. Чтобы сменить адрес, используется команда «-p». Для перехода на другой порт нужно ввести «ipref3 -s -p 4000».
- Настроить брандмауэр. Для версии ufw набирается сочетание «sudo ufw allow 5201». Соответственно, для firewalld оно будет «sudo firewall-cmd —permanent —add-port=5201/tcp» (при TCP протоколе). Для UDP меняются последние 3 символа.
- Запуск в фоне. С этим справляется назначенная литера «-D». В таком случае данные записываются в архив. Что нужно сделать: «iperf3 -s -D —logfile /var/log/ipref.log».
- Проверка работы сервера. Проводится вводом «ss». Полностью команда выглядит так: «ss -tulpn | grep 5201».
- Назначение айпи. Для IPv4 ставим символ «4». Для IPv6 – «6». Задание конкретно подключаемых айпи производится командой «iperf3 -s -4 -D —logfile /var/log/ipref.log».
Не забываем, что продолжительность теста (в секундах) выставляется командой «-t». Пропускная способность выводится в разделе «Bitrate».
Команда «iperf3 -c 192.168.0.101 -f M -i 5 -t 30» означает, что сервер работает на адресе 192.168.0.101, выдавая промежуточные значения каждые 5 секунд. Общая длительность теста равна при этом 30 секундам. Кстати, iperf работает не только под Windows, но и с другими ОС. Но об этом поговорим в следующий раз.
Обновлено: 28.06.2018
Опубликовано: 03.07.2017
Тематические термины: iPerf, Linux, CentOS, Windows
iPerf является кроссплатформенным приложением и может быть установлен на любую популярную операционную систему. В данной инструкции будет рассмотрена установка сервера на Linux CentOS и клиента как на последнем, так и Microsoft Windows.
Установка и запуск
Запуск клиента и проверка сервера
Ключи
Автозапуск
Примеры
Версия для Windows
iPerf и iPerf3
Публичные сервера
Свой публичный сервер
Возможные проблемы
Установка сервера/клиента
По сути, нет отдельного iPerf для сервера или клиента — это один и тот же программный продукт, который может запускаться в режиме сервера или выполнять клиентские команды.
Для начала выполняем установку расширенного репозитория:
yum install epel-release
Устанавливаем iPerf:
yum install iperf3
Открываем порт в брандмауэре:
firewall-cmd —permanent —add-port=5201/tcp
firewall-cmd —permanent —add-port=5201/udp
firewall-cmd —reload
* в данном примере мы открыли порт 5201 (для iPerf по умолчанию) для пакетов TCP и UDP.
Запускаем сервер:
iperf3 -s
На экране появится:
————————————————————
Server listening on 5201
————————————————————
Сервер ждет запросов.
Клиентские запросы и проверка сервера
Напомню, что клиент может быть установлен на любую систему. Также, как в первом случае, выполняем установку клиента на другой компьютер в сети.
После можно сразу выполнить команду:
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 | Задать префикс для каждой строки вывода |
Также самый свежий список ключей можно получить командой:
man iperf3
Автозапуск сервера (создание сервиса в systemd)
По умолчанию, программу нужно запускать вручную. Если мы хотим, чтобы сервер запускался автоматически и работал как служба systemd, выполняем инструкцию ниже.
Создаем юнит в systemd со следующим содержимым:
vi /etc/systemd/system/iperfd.service
[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
[Install]
WantedBy=multi-user.target
* где
- Description — описание юнита;
- After указывает на юнит, после которого может загружаться наш сервис;
- Type — тип службы;
- PIDFile — путь к pid файлу, в котором хранится номер процесса;
- ExecStart — команда, которую нужно выполнить при старте сервиса (в данном примере запускается iPerf в режиме сервера как демон и создает pid-файл);
- ExecReload — команда для перезапуска службы;
- Restart=always — опция, позволяющая автоматически перезапускать сервис, если он перестанет работать;
- опция WantedBy=multi-user.target позволяет установить для автозапуска службу в обычном многопользовательском режиме.
Перезапускаем systemd:
systemctl daemon-reload
Разрешаем созданный сервис:
systemctl enable iperfd
Запускаем его:
systemctl start iperfd
Проверяем:
systemctl status iperfd
Примеры использования iPerf
Рассмотрим некоторые команды запросов к серверу для проверки скорости соединения.
Использование UDP
iperf3 -c 192.168.0.15 -u
* сам сервер не нужно запускать в UDP-режиме, так как он принимает любые запросы.
Альтернативные порты
Для этого необходимо сначала запустить сервер на нужном порту:
iperf3 -s -p 443
* кстати, можно запустить несколько процессов iperf одновременно, которые будут слушать на разных портах.
* стоит не забывать по настройки брандмауэра. В данном примере понадобиться ввести команды firewall-cmd —permanent —add-port=443/tcp и firewall-cmd —reload.
Теперь можно запускать клиента:
iperf3 -c 192.168.0.15 -p 443
Проверка скорости в течение 30 секунд с интервалами по 2 секунды
iperf3 -c 192.168.0.15 -t 30 -i 2
Несколько параллельных запросов
iperf3 -c 192.168.0.15 -P 3
Отправляем на проверку 3 Гб данных
iperf3 -c 192.168.0.15 -n 3G
Клиент/сервер для Windows
Скачиваем iPerf под Windows с официального сайта. Распаковываем архив и запускаем командную строку (cmd). Переходим в распакованную папку (команда cd).
Можем работать с iperf. Команды такие же, как для Linux, например:
iperf3.exe -c 192.168.0.15
GUI
Для работы с iPerf в графическом интерфейсе есть различные утилиты, например Iperf3-Cygwin-GUI. Скачиваем архив, распаковываем его и запускаем iperf3cygwingui.bat.
В открывшемся окне для простой проверки нужно только прописать адрес iPerf-сервера и нажать кнопку Run Iperf3:
Однако, на моей практике, программа не заработала, а после запуска зависала (или не запускался iperf3.exe). Проблему удалось решить с помощью скачанного с официального сайта клиента (файлов iperf3.exe и cygwin1.dll), которыми я заменил одноименные файлы в папке bin.
При желании, программу можно также запустить в режиме сервера:
jPerf
Для работы в графическом интерфейсе также есть популярная программа jperf. Ее можно скачать с сайта sourceforge. Однако, она создана с использованием старой версии iperf, поэтому я не стал уделять ей много внимания. В целом, процесс и внешний вид не сильно отличается от Iperf3-Cygwin-GUI.
Совместимость iPerf и iPerf3
Клиент и сервер совместимы, но нужно знать, что по умолчанию, рабочий порт для iPerf — 5001, для iPerf3 — 5201.
Поэтому либо необходимо запускать сервер:
iperf3 -s -p 5001
* также не забываем настроить брандмауэр.
Либо запускаем клиентские запросы командой:
iperf -c 192.168.0.15 -p 5201
Публичные сервера iPerf
Актуальные публичные сервера iPerf можно найти на официальном сайте программы. Внимательно смотрите на описания серверов и рабочие порты.
Пример проверки с использованием сервера во Франции:
iperf3 -c bouygues.testdebit.info -p 5200
или в Индонезии:
iperf3 -c iperf.biznetnetworks.com
Свой публичный сервер
Сервер iPerf может обрабатывать только одно подключение одновременно на порту. Поэтому, в условиях публичного использования необходим его запуск на множестве портов одновременно.
В официальной документации это предлагается делать скриптом:
#!/bin/dash
/bin/sleep 10
/usr/bin/killall iperf3
/bin/sleep 0.1
/usr/bin/killall -9 iperf3
/bin/sleep 0.1
if [ `ps -C iperf3 | wc -l` = «1» ]
then
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5200 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5201 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5202 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5203 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5204 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5205 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5206 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5207 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5208 -D >/dev/null 2>&1
/usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5209 -D >/dev/null 2>&1
fi
* пример данного скрипта будет работать не на всех системах. При его использовании необходимо внести в него корректировки.
Мы же настроим сервер при помощи systemd. Ранее мы уже создавали один юнит для запуска iperf. Повторяем процедуру с небольшими изменениями.
Создаем юнит со следующим содержимым:
vi /etc/systemd/system/iperfd5205.service
[Unit]
Description=iPerfService
After=network.target
[Service]
Type=forking
PIDFile=/var/run/iperf3.5205.pid
ExecStart=-/bin/iperf3 -s -p 5205 -D -I /var/run/iperf3.5205.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
* если сравнить с ранее созданным юнитом, мы добавили запуск сервера на порту 5205.
Перезапускаем systemd:
systemctl daemon-reload
Разрешаем юнит и запускаем сервис:
systemctl enable iperfd5205
systemctl start iperfd5205
Повторяем шаги для других портов — создаем для каждого отдельный юнит в systemd. Для публичного сервера лучше создать побольше.
Возможные ошибки
the server is busy running a test. try again later
В данный момент сервер обрабатывает другой запрос или он завис. Если мы являемся администратором сервера, перезагружаем его, в противном случае, ждем.
Пропуская способность канала – важнейшая характеристика работы сети, влияющая на максимальный объем данных, который можно передать за единицу времени. Для измерения этого параметра применяется специальный софт. Одной из лучших программ такого плана, сочетающая удобство и функциональность, на текущий момент считается кроссплатформенная утилита iperf3. Она имеет клиент-серверную архитектуру и позволяет достаточно точно измерить скорость передачи данных между двумя узлами сети, широко используется в США, Европе, России, других странах и регионах.
Для загрузки канала программа генерирует TCP и UDP трафик, который пересылается от клиента серверу. В результате оператор узнает «исходящую» скорость. Скачать и использовать утилиту может любой пользователь Windows, поскольку разобраться в особенностях ее работы сравнительно легко. Важно лишь внимательно читать инструкцию и последовательно выполнять приведенные действия. Утилита iperf3 доступна также пользователям Linux.
Содержание
- Отличия версий iperf2 и iperf3
- Установка iperf3
- Синтаксис и опции iperf
- Пример использования
Отличия версий iperf2 и iperf3
Существуют две независимые ветки развития программы iperf. Работы по развитию iperf2 были приостановлены в конце 2000-х годов, но возобновлены в 2014-м другими разработчиками. Последняя актуальная версия данной ветки – 2.0.8. После реанимации проекта iperf2 превратился в современный инструмент со своим набором функций. Сегодня он в первую очередь ориентирован на использование трафика UDP для оценки задержки, поддержку большого перечня платформ.
Разработка iperf3 ведется параллельным курсом, и сегодня большая часть пользователей применяет именно эту версию для оценки пропускной способности сети. Два варианта программы имеют между собой достаточно много отличий в плане архитектуры, настроек, функционала. К примеру, iperf3 – это однопоточный инструмент. Предыдущая же модификация – многопоточная.
Из-за особенностей реализации каждый инструмент рекомендован для решения отдельного набора задач. Утилиту iperf2 стоит использовать для работы с параллельными потоками, двунаправленных тестов. Версия iperf3 лучше подойдет для однопоточного высокоскоростного тестирования.
Установка iperf3
Чтобы пользоваться утилитой, сначала необходимо загрузить с сайта свежую версию программы. На приведенной странице представлены сборки для ОС семейства Windows от XP до Win10. Там же можно найти варианты утилиты и для других операционных систем.
Можно распаковать загруженный архив в любую папку, но лучше выбрать для этой цели системный каталог Windows. Тогда при запуске командной строки к работе с утилитой можно приступить сразу же. К примеру, открыв окно CMD, можно сразу будет написать команду iperf3.exe -c 192.168.13.10 или любую другую.
Существуют варианты утилиты в типичном оконном Windows-исполнении. Примером такой программы служит iperf3 cygwin с gui-интерфейсом. Работать с подобными приложениями неподготовленному пользователю проще. Однако они имеют ограниченный функционал и часто выдают ошибки.
Синтаксис и опции iperf
Версии программы для Windows используют те же команды, что и в iperf3 debian и других Linux-системах. К каждой опции будет приложено пояснение на русском языке, что позволит быстро понять, как пользоваться iperf. Как было сказано выше, iperf3 может быть запущена как:
- клиентский вариант;
- сервером.
Чтобы запустить программу в качестве сервера и использовать соответствующие опции с ключами используется следующая комбинация:
iperf3 -s опции.
Сервер iperf3 запущен (с назначенным портом , на котором работает приложение. По умолчанию 5201).
Чтобы запустить клиент iperf3 windows , необходимо набрать в командной строке:
iperf3 -c адрес_сервера опции
Как видно из примера, при запуске клиентской части необходимо указать адрес сервера iperf, где утилита запущена в соответствующем серверном режиме.
Перейдем к рассмотрению общих опций программы.
- -p, —port – указывается порт, к которому необходимо подключиться (серверный порт);
- -f, —format – определяем формат вывода данных. Популярные значения: k, m, g, t (Kbits, Mbits, KBytes, MBytes), но есть и другие варианты;
- -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 – параметр позволяет задать, сколько потоков необходимо использовать;
- -4, —version4 – поддерживать исключительно протокола IPv4;
- -6, —version6 – применять только IPv6.
Здесь приведен базовый перечень опций, хотя существуют и другие, которые можно вывести на экран с помощью соответствующей команды.
Пример использования
Рассмотрим пример использования утилиты. Если мы будем запускать программу как клиент, нам потребуется серверная часть, которой можно адресовать поток данных. Для теста можно использовать публичные сервера, список которых легко найти в интернете, либо запустить серверную часть iperf3 на хосте локальной сети.
Итак, мы хотим выполнить запуск утилиты и сохранить тестовые данные в log-файле. Для этого прописываем команду с параметрами:
iperf3 -c speedtest.hostkey.ru -p5202 —logfile c:utilsiperflog.txt
В итоге выполнится 10-секундный тест, а результаты сохранятся в файле text.log. Как видно из приведенного примера, измерение скорости сети с помощью iperf не составляет большой проблемы. Для определения пропускной способности необходимо изучить колонку Bitrate. Средние значения указываются под чертой.
Либо просто запустить команду iperf3 с необходимыми ключами из командной строки:
Подводя итог, хочу сказать, что утилита iperf3 будет хорошим помощником в работе сетевого инженера при замере пропускной способности между узлами локальной или глобальной сети.
Надеюсь, данная статья была полезна для вас.
Iperf – кроссплатформенная консольная утилита с открытым исходным кодом, предназначенная для тестирования пропускной способности сети между двумя узлами. Утилита iperf позволяет генерировать нагрузочный TCP и UDP трафик между хостами. С помощью iperf вы можете быстро измерить максимальную пропускную способность сети между сервером и клиентом, провести нагрузочное тестирование канала связи, маршрутизатора, сетевого шлюза (файервола), вашей Ethernet или Wi-Fi сети.
В этой статье мы покажем, как установить и использовать утилиту iPerf для проверки скорости сети в Windows, Linux и VMware ESXi (есть версии iperf для Android, MacOS, RouterOS от MikroTik и других платформ).
Содержание:
- Установка и использование iPerf в Windows
- Установка iPerf в Linux
- Запуск iPerf в VMware ESXi
- Проверка пропускной способности сети с помощью iPerf
Утилита iPerf является кроссплатформенной и не требует установки, достаточно скопировать и запустить ее на двух устройствах, пропускную способность сети между которыми нужно оценить. iPerf работает в режиме клиент-сервер. На первом компьютере утилита iPerf запускается в режиме сервера (ожидает трафик от клиента). На втором компьютере iPerf запускается в режиме клиента, начинает генерировать TCP/UDP трафик и выполнять измерение максимальной скорости передачи данных. В большинстве случаев сейчас используется версия iPerf3 (поддерживает высокоскоростное UDP тестирование, по умолчанию используется порт 5201 TCP/UDP).
Установка и использование iPerf в Windows
Вы можете скачать iperf 3.1 для Windows по ссылке https://iperf.fr/iperf-download.php или версию iperf2 (здесь). Достаточно скачать архив iperf и распаковать в локальный каталог на диске. Установка утилиты не требуется. В архиве всего два файла: cygwin1.dll и iperf3.exe.
Вы можете скачать архив iPerf и распаковать его на диск с помощью команд PowerShell:
$iPerfZip = "https://iperf.fr/download/windows/iperf-3.1.3-win64.zip"
$TargetFolder = Join-Path $env:TEMP "iperf.zip"$iPerfPath = Join-Path $env:TEMP "iperf"
if (!(Test-Path $iPerfPath))
{ Invoke-WebRequest -Uri $iPerfZip -OutFile $TargetFolder
Expand-Archive -Path $TargetFolder -DestinationPath $iPerfPath
}
Iperf это консольная утилита и для ее запуска нужно использовать командную строку. Откройте командную строку (cmd.exe) и перейдите в каталог с утилитой. Например:
cd c:toolsiperf
Если вы запустить программу iperf3.exe без параметров, она выведет список доступных опций.
Утилита iPerf может работать в режиме сервера (параметр -s) или клиента (-c). Если вы запускаете iPerf сервер на Windows, нужно открыть входящие порт 5201 для протоколов TCP и UDP. Можно открыть порты через графический интерфейс Windows Defender Firewall или с помощью команд PowerShell. Создайте и включите правила файервола так:
New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-TCP' -Direction Inbound -Protocol TCP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule
New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-UDP' -Direction Inbound -Protocol UDP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule
Для Windows есть несколько реализаций графического интерфейса. Например, Iperf3-Cygwin-GUI и jperf.
Утилита jperf написана на Java (для работы на компьютере должна быть установлена Java-машина). Помимо графических рюшечек к CLI интерфейсу, Jperf умеет в реальном времени строить графики пропускной способности канала связи.
Для использования достаточно указать адрес сервера iPerf и запустить проверку.
В галерее скриптов PowerShell есть отдельный модуль iPerfAutomate, который можно использовать для получения данных измерения производительности сети из скриптов PowerShell. Вы можете установить модуль так:
Install-Module -Name iPerfAutomate
Установка iPerf в Linux
В дистрибутивах CentOS/RHEL/Fedora 8 пакет iperf3 включен в состав базового репозитория AppStream (в CentOS 7 iperf3 есть в EPEL). Вы можете установить его стандартной командой yum/dnf:
# dnf install iperf3
В дистрибутивах Debian/Ubuntu вы можете установить утилиту iperf3 командой:
$ sudo apt install iperf3
Если данный Linux сервер планируется использовать в качестве сервере iperf3, нужно открыть порт 5201 в firewalld (или iptables):
# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --reload
Запуск iPerf в VMware ESXi
VMware удалила утилиту iPerf в ESXi 6.7, но вернула его в 6.7U1. Проверьте, что на вашем хосте ESXi установлен iPerf. Подключитесь к консоли ESXi по SSH, перейдите в каталог
/usr/lib/vmware/vsan/bin
и проверьте, есть ли в нем файл iperf или iperf3.
Если iPerf не установлен, вы можете вручную скачать offline bundle с iperf здесь (http://vibsdepot.v-front.de/depot/bundles/iperf-2.0.5-1-offline_bundle.zip), скопируйте его на ESXi хост и установить командой:
# esxcli software vib install -d /iperf-2.0.5-1-offline_bundle.zip –no-sig-check
Утилита будет установлена в каталог /opt/iperf/bin и для ее запуска нужно указывать команду:
# /opt/iperf/bin/iperf3
Если вы запускаете iPerf сервер на хосте ESXi, нужно открыть порты 5201. По умолчанию эти порты запрещены в файерволе ESXi. Чтобы открыть их, можно временно отключить файервол:
# esxcli network firewall get# esxcli network firewall set --enabled=false
# esxcli network firewall get
Не забудьте включить файервол ESXi после окончания проверки пропускной способности сети:
# esxcli network firewall set --enabled true
При запуске iPerf в ESXi его нужно привязывать к интерфейсу vmkernel:
# esxcli network ip interface ipv4 get
Проверку доступности между хостами ESXi можно выполнить с помощью:
# vmkping IP address
Запускайте iPerf на полученном IP адресе:
# iperf -s -B 192.168.31.50
Проверка пропускной способности сети с помощью iPerf
Рассмотрим теперь несколько примеров использования iperf для тестирования пропускной способности сети. В этом примере мы будем использовать сервер с CentOS в качестве сервера iperf. Запустим утилиту iperf в серверном режиме:
# iperf3 –s
Сервер iperf запущен, он ожидает соединения на порту TCP/5201.
Server listening on 5201
Важно. Аргументы утилиты iperf регистрозависимы!
Можно запустить iperf сервер с большим размером TCP окна и на другом порту:
# iperf3 -s -w 32768 –p 5203
-w 32768 – зададим размер окна TCP в 32 KB (по умолчанию около 8 Кб)
–p 5203 – порт, на котором ожидает подключения iperf (напоминаю, что iperf2 по умолчанию слушает на порту 5001).
Можно запустить сервер iPerf в режиме службы Windows с помощью ключа -D.
В качестве клиента iperf я использую компьютер с Windows 10. Запустите командную строку и перейдите в каталог с исполняемым файлом iperf:
cd c:toolsiperf
Чтобы запустить проверку сети со стороны клиента, укажите адрес (имя) хоста, где запущен сервер iperf:
iperf3.exe -c 192.168.1.202
Клиент начнет генерировать сетевой трафик и выполнит тестирование канала в течении 10 секунд и выведет примерно такую таблицу:
- Interval – промежуток тестирования (в сек.);
- Transfer – размер переданных данных за это время;
- Bandwidth – средняя скорость передачи данных.
Если вы запустили сервер iperf с увеличенным размером TCP окна, вы можете использовать следующую команду для получения максимальной нагрузки на сеть:
iperf3.exe -c 192.168.1.202 -P 8 -t 30 -w 32768 -i 5 -f g
- -c 192.168.1.202 – IP адрес сервера iperf;
- -w 32768 — увеличиваем размер TCP окна;
- -t 30 – время в секундах, в течении которого выполняется тестирование (по умолчанию 10 секунд);
- -P 8 — число параллельных потоков (подключений), используется для получения максимальной нагрузки на канал;
- -i 5 – выводить статистику на экран каждые 5 секунд. Параметр удобно использовать при продолжительных тестах (несколько минут, часов);
- -f m — выводить результаты в Мбит/с. Здесь можно использовать атрибуты kmgKMG (килобиты, мегабиты, мегабайты и т.д.).
В нашем примере тестирование длилось 30 секунд. В итоговом отчете нас интересует значения столбца Bandwidth в последней строке [SUM]. Здесь указаны средняя скорость отправки (sender) и получения данных по сети (receiver).
В нашем случае средняя пропускная способность сети между двумя узлами – 79,7 Мбит/с. Было передано 285 Мб данных (столбец Transfer).
Можно запустить iperf в обратном режиме (сервер отправляет данные, а клиент принимает), для этого на клиенте указывается опция –R.
По-умолчанию утилита генерирует TCP трафик, если вам нужно проверить скорость сети для UDP пакетов, необходимо использовать ключ –u (сервер при этом запускается командой:
iperf3 -s –u
).
Если вам нужно проверить ваш интернет-канал (предоставляемый провайдером), можно воспользоваться одним из публичных iperf серверов (список доступен здесь):
iperf3 -c iperf.it-north.net
Обратите внимание, что iperf3 не поддерживает несколько одновременных тестов. Если сервер iperf сейчас выполняет тестирование с одним клиентов, то при попытке подключиться к нему с другого вы получите ошибку: iperf3: error — the server is busy running a test. try again later.
Если нужно оценить пропускную способность сети в обоих направлениях (в дуплексном режиме), дополнительно на клиенте нужно указать опцию –d:
iperf3.exe -c IP -P 8 -t 30 -w 32768 -d
Во время выполнения теста сете с помощью iperf вы можете следить за нагрузкой на сетевой интерфейс компьютера через Task Manager.
Важно отметить, что при тестировании Iperf используем всю доступную пропускную способность канала связи между клиентом и сервером, что может негативно повлиять на продуктивные приложения и пользователей.
Полный список опций утилиты iperf можно получить так:
iperf3 –help
Iperf – простая и удобная сетевая утилита, которая поможет вам измерить производительность сетевого подключения и максимальную скорость передачи данных между двумя устройствами.
Обновлено 07.11.2019
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами разобрали применение очень полезной утилиты Robocopy, с помощью которой мы мигрировали данные файлового сервера. В сегодняшней статье я хочу вас познакомить с утилитой Iperf, я разберу ее установку, примеры ее использования в вашей инфраструктуре. Хочу отметить, что она должна быть частью вашего административного набора программ.
Содержание статьи:
- Что такое утилита Iperf
- Виды и версии Iperf
- Где скачать Iperf
- Как установить Iperf в Windows
- Как установить Iperf в CentOS
- Как установить Iperf в Debian или Ubuntu
- Примеры использования Iperf
Что такое Iperf
В жизни каждого системного администратора наступает такая ситуация, что у него есть проблемы со скоростью сети между серверами, как физическими, так и виртуальными. В такой ситуации необходимо произвести тестирования пропускной способности сетевого канала между участниками.
Iperf — это бесплатная сетевая утилита с открытым кодом, которая позволяет вам протестировать и определить пропускную способность сети между серверами на базе Windows и Linux. Так же Iperf-у можно дать и такое определение, это инструмент для активных измерений максимально достижимой полосы пропускания в IP-сетях. Он поддерживает настройку различных параметров, связанных с синхронизацией, буферами и протоколами (TCP, UDP, SCTP с IPv4 и IPv6). Для каждого теста он сообщает о пропускной способности, потерях и других параметрах.
Виды и версии Iperf
Сама утилита работает по умолчанию в режиме командной строки, но у нее так же есть надстройка на Java, для графического интерфейса. Так же есть две независимых ветки у данного инструмента по тестированию сети. Первая ветка, это Iperf2, вторая Iperf3.
Какова история iperf3 и в чем разница между iperf2 и iperf3?
iperf2 был заброшен в конце 2000-х годов на версии 2.0.5, несмотря на некоторые известные ошибки и проблемы. Потратив некоторое время на решение проблем с iperf2, ESnet к 2010 году решила, что нужен новый, более простой инструмент, и приступила к разработке iperf3. Цель состояла в том, чтобы сделать инструмент как можно более простым, чтобы другие могли внести свой вклад в код. По этой причине было решено сделать инструмент однопоточным и не беспокоиться о обратной совместимости с iperf2.Многие запросы функций для iperf3 поступили из проекта perfSONAR ( http://www.perfsonar.net).
Затем в 2014 году Боб (Роберт) МакМахон из компании Broadcom возобновил разработку iperf2. Он исправил многие проблемы с iperf2 и добавил ряд новых функций, похожих на iperf3. iperf2.0.8, выпущенный в 2015 году, сделал iperf2 полезным инструментом. Текущее развитие iperf2 сосредоточено на использовании UDP для тестирования задержки, а также на широкой поддержке платформ.
На момент написания статьи (2019), iperf2 и iperf3 активно (хотя и независимо) разрабатываются. Я рекомендуем ознакомиться с обоими инструментами и использовать те функции, которые лучше всего соответствуют вашим потребностям.
Основные отличия Iperf2 и Iperf3
Каждый из этих инструментов имеет несколько разные функции и немного другую архитектуру, поэтому не стоит ожидать, что какой-то один инструмент будет иметь все необходимое. Лучше быть знакомым с несколькими инструментами и использовать правильный инструмент для вашего конкретного случая использования. Одно ключевое отличие заключается в том, является ли инструмент однопоточным или многопоточным. Если вы хотите протестировать производительность параллельного потока, вы должны использовать многопоточный инструмент, такой как iperf2, хотя в iperf3 так же можно сделать костыль.
Обратите внимание, что по умолчанию Iperf3 официально не поддерживается в Windows, но это не означает, что он там не будет работать, могут быть нюансы и глюки
Обратите внимание, что все три из этих инструментов находятся в активной разработке, и список уникальных функций для данного инструмента, вероятно, со временем изменится. Исходя из моего опыта, я рекомендуем следующее:
- Используйте iperf2 для параллельных потоков, двунаправленных тестов или тестов на базе MS Windows.
- Используйте nuttcp или iperf3 для высокоскоростного тестирования UDP
Где скачать Iperf
Загрузить утилиту можно из разных источников. Если мы говорим про Linux, Unix версии, то вы можете использовать ссылку с github:
https://github.com/esnet/iperf/releases
Если нужно скачать Iperf для Windows, то воспользуйтесь ссылкой с моего ресурса:
Загрузка Iperf3 Windows и с графическим интерфейсом или же с https://sourceforge.net/projects/iperf2/files/
Как установить Iperf в Windows
Чтобы установить Iperf2 или Iperf3 в операционной системе Windows, вам потребуется скачать свежую версию. На выходе у вас будет архивный файл. Далее вы распаковываете архив и получаете файл командной строки и cygwin1.dll
Скачать отдельно cygwin1.dll можно по ссылке https://sourceforge.net/projects/cygwin1-dll/files/
Далее вы открываете командную строку, желательно от имени администратора. После чего пишите команду:
cd и путь до exe файла iperf, например
cd C:Tempiperf-2.0.14a-win
После чего вывод списка файлов командой dir
аналогично делаем и в случае с третьей версией утилиты.
Как установить Iperf в CentOS 7
Хочу отметить, что в CentOS 7 и CentOS 8, придется делать слегка иначе. Производить инсталляцию я буду в последней версии CentOS 7, которую поставил ранее.
Начнем с установки Iperf2, для этого выполните команду:
У вас должна выскочить ошибка
Failed to synchronize cache for repo ‘AppStream’, ignoring this repo.
Failed to synchronize cache for repo ‘BaseOS’, ignoring this repo.
Failed to synchronize cache for repo ‘extras’, ignoring this repo.
No match for argument: iperf
Error: Unable to find a match
Давайте посмотрим список репозиториев, делается это командой:
Как видим, список будет вот такой:
CentOS-7 — AppStream
CentOS-7 — Base
CentOS-7 — Extras
Напоминаю, что утилита Iperf является дополнительным пакетом, который не входит в основные репозитории, это прекрасно описано в Вики http://fedoraproject.org/wiki/EPEL. Дополнительные пакеты для Enterprise Linux (EPEL) — это одобренный сообществом репозиторий, который указан в вики CentOS в разделе «Доступные репозитории для Linux», в котором отмечается, что хотя репозитории сообщества не связаны с проектом CentOS, эти репозитории часто рекомендованы сообществом. Выполните команду:
Как видите в файле yum.repos.d прописаны подключенные репозитории, и тут не хватает репозитория epel-release.
Давайте установим epel-release, для этого выполните:
или командой
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
Пробуем теперь посмотреть список репозиториев в файле yum.repos.d и видим, что epel появился.
Произведем установку Iperf
Все успешно выполнено. Конечно вам никто не запрещает подключить репозиторий от седьмой версии CentOS в восьмую, но они могут конфликтовать в будущем по зависимостям. Поэтому, если у вас CentOS 8, то я рекомендую сделать вот так.
Установка iperf на CentOS 8
Ранее, я так же установил CentOS 8 в тестовой среде. Хочу отметить, что если вы попытаетесь добавить репозиторий epel-release командой:
yum install epel-release или yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
То он успешно установится, но когда вы попытаетесь сделать поиск iperf по нему, то обнаружите, что восьмая ветка не содержит данной утилиты.
dnf repository-packages epel list | grep -i iperf
Как я и писал выше не желательно устанавливать epel 7 и 8 версии репозитория, я лично в такой ситуации просто выхожу подобным образом. Я открываю сайт https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/ и ищу нужный мне пакет, копирую на нужный мне прямую ссылку.
Далее я устанавливаю в CentOS 8 пакет wget, для этого выполняем:
Далее скачиваем пакет, ссылку на который мы заранее выяснили.
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/i/iperf-2.0.13-1.el7.x86_64.rpm
Далее производим установку iperf2 в системе, через выполнение команды:
rpm -ivh iperf-2.0.13-1.el7.x86_64.rpm
Так же для CentOS 8 рекомендуется включить репозиторий PowerTools, поскольку пакеты EPEL могут зависеть от пакетов из него
dnf config-manager —set-enabled PowerTools
Установка iperf3 в CentOS 7 и 8
В CentOS 8 с установкой Iperf3 еще проще, так как это пакет является уже частью стандартных репозиториев, чтобы его поставить просто введите:
Если мы имеем дело с CentOS 7 и ниже, то нужно добавлять репозиторий epel-release
Открытие портов Iperf на CentOS
После того. как вы произвели инсталляцию пакета, вам необходимо открыть порты, которые будет слушать ваша служба при подключении к ней. Напоминаю, что порты по умолчанию у iperf и iperf3, это 5201. Для решения этой задачи мы выполним две команды:
firewall-cmd —permanent —add-port=5201/tcp
firewall-cmd —permanent —add-port=5201/udp
firewall-cmd —reload
Проверим слушает ли сервер входящие подключения по порту 5210, для этого выполните:
Продолжение следует.
Iperf инструкция.
Нужно замерить ширину канала интернета или локальной сети? Тогда вам поможет программа iperf. Преимущество iperf в том, что ее не надо устанавливать и бесплатна.
Вы можете встретить две версии iperf.exe и iperf3.exe, которые не совместимы друг с другом. В обеих версиях поддерживается многопоточная работа (в версии 2 посредством запуска на разных портах, в версии 3 — параметром у клиента).
Как запустить iperf?
Программа должна быть запущена на двух компьютерах.
Первый компьютер — должен играть роль сервера (192.168.0.100), второй — роль клиента (192.168.0.200).
На «сервере» с запускаем программу и вводим команду, которая запускает ее в режиме сервера
1. Копируем файл iperf3.exe на диск C.
2. Запускаем iperf server.
cd/ iperf -s
На клиенте аналогично запускаем iperf client, но с указанием адреса сервера 192.168.0.100:
cd/ iperf -c 192.168.0.100
Измерение скорости iperf. Программа в течении 10 секунд проведет тест ширины канала и покажет результат.
C:Usersadminwin.ru>c:iperf3 -c 192.168.0.100 Connecting to host 192.168.0.100, port 5201 [ 4] local 192.168.0.200 port 53323 connected to 192.168.0.100 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.01 sec 256 KBytes 2.07 Mbits/sec [ 4] 1.01-2.02 sec 128 KBytes 1.05 Mbits/sec [ 4] 2.02-3.01 sec 256 KBytes 2.11 Mbits/sec [ 4] 3.01-4.01 sec 256 KBytes 2.08 Mbits/sec [ 4] 4.01-5.00 sec 512 KBytes 4.26 Mbits/sec [ 4] 5.00-6.01 sec 640 KBytes 5.19 Mbits/sec [ 4] 6.01-7.00 sec 640 KBytes 5.28 Mbits/sec [ 4] 7.00-8.01 sec 896 KBytes 7.33 Mbits/sec [ 4] 8.01-9.00 sec 1.12 MBytes 9.47 Mbits/sec [ 4] 9.00-10.02 sec 1.50 MBytes 12.4 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.02 sec 6.12 MBytes 5.13 Mbits/sec sender [ 4] 0.00-10.02 sec 6.03 MBytes 5.05 Mbits/sec receiver iperf Done.
Можно тонко настроить тест, используя дополнительные ключи (обратите внимание, что большиемаленькие буквы имеют значение в заданной команде):
Опции для сервера:
-s — запустить как сервер и отображать всю информацию на экран;
-D — запустить как сервис (в фоновом режиме) и не отображать информацию.
Опции клиента:
-b — используемая полоса для UDP (по умолчанию 1Mbit/sec);
-c — запустить как клиент и соединиться с сервером;
-d — тестировать линию в обе стороны;
-n — установить размер передаваемого трафика (нельзя использовать с ключом -t);
-r — производить двунаправленное тестирование по отдельности;
-t — указать время тестирования (по умолчанию 10 сек);
-F — не генерировать трафик, а передавать готовый файл;
-I — ввод данных, передаваемых из STDIN (стандартный поток ввода);
-L — порт, на котором клиент будет принимать двунаправленный трафик;
-P — запуск нескольких потоков параллельно;
-T — время жизни пакета для групповой рассылки (по умолчанию 1);
Общие опции:
-f — в каком формате показывать скорость (Kbits, Mbits, KBytes, Mbytes);
-i — с какими интервалами отображать промежуточные результаты;
-l — размер буфера (по умолчанию 8 KB);
-m — показывать максимальный размер TCP сегмента (MSS);
-p — указать порт, по которому будет происходить соединение (по умолчанию 5001);
-u — использовать UDP вместо TCP;
-w — размер окна TCP;
-B — указание для сервера, на каком интерфейсе принимать трафик;
-C — режим совместимости со старыми версиями;
-M — позволяет изменить максимальный размер TCP сегмента (MSS);
-N — меняет некоторые опции TCP (отключение алгоритма Нагла);
-V — использовать IPV6;
-h — вывод справки.
Для примера, следующие команды покажут тесты:
Замер скорости при окне TCP 2 мбита:
iperf3 -c 192.168.0.100 -w 2M
Замер скорости при запуске 10 потоков одновременно:
iperf3 -c 192.168.0.100 -P 10
Измеряем скорость сети программой Iperf
IPerf — утилита командной строки, предназначенная для тестирования пропускной способности канала связи. Она включает в себя генератор TCP и UDP трафика и используется для определения скорости прохождения трафика между двумя узлами в сети. IPerf (для Windows) представляет из себя небольшой исполняемый файл размером около 100кб, в котором содержатся клиентская и серверная части. Он не требует установки, достаточно просто скопировать ее на оба компьютера и запустить сначала серверную часть программы, а затем клиентскую.
В самом простом варианте запуск IPerf происходит следующим образом:
iperf -s — на сервере.
iperf -c 192.168.1.56 — на клиенте, где 192.168.1.56 — IP-адрес сервера.
По умолчанию используется TCP порт 5001, тестирование проходит в течение 10 секунд. Этого вполне достаточно для быстрой оценки скорости соединения, однако возможности IPerf этим не ограничиваются. Например:
iperf -s -i10 -p80 — сервер прослушивает 80 порт и выдает результат с интервалом в 10 секунд.
iperf -c 192.168.1.60 -p80 -t120 — клиент соединяется с 80 портом сервера, тестирование в течение 120 секунд.
Приведу полный список опций программы:
- -f — в каком формате показывать скорость (Kbits, Mbits, KBytes, Mbytes);
- -i — с какими интервалами отображать промежуточные результаты;
- -l — размер буфера (по умолчанию 8 KB);
- -m — показывать максимальный размер TCP сегмента (MSS);
- -p — указать порт, по которому будет происходить соединение (по умолчанию 5001);
- -u — использовать UDP вместо TCP;
- -w — размер окна TCP;
- -B — указание для сервера, на каком интерфейсе принимать трафик;
- -C — режим совместимости со старыми версиями;
- -M — позволяет изменить максимальный размер TCP сегмента (MSS);
- -N — меняет некоторые опции TCP (отключение алгоритма Нагла);
- -V — использовать IPV6;
- -h — вывод справки.
Опции для сервера:
- -s — запустить как сервер и отображать всю информацию на экран;
- -D — запустить как сервис (в фоновом режиме) и не отображать информацию.
Опции клиента:
- -b — используемая полоса для UDP (по умолчанию 1Mbit/sec);
- -c — запустить как клиент и соединиться с сервером;
- -d — тестировать линию в обе стороны;
- -n — установить размер передаваемого трафика (нельзя использовать c ключом -t);
- -r — производить двунаправленное тестирование поотдельности;
- -t — указать время тестирования (по умолчанию 10 сек);
- -F — не генерировать трафик, а передавать готовый файл;
- -I — ввод данных, передаваемых из STDIN (стандартный поток ввода);
- -L — порт, на котором клиент будет принимать двунаправленный трафик;
- -P — запуск нескольких потоков параллельно;
- -T — время жизни пакета для групповой рассылки (по умолчанию 1).
Программа IPerf очень проста и удобна в использовании, однако для эстетов тех, кто не любит работать в командной строке, есть графический интерфейс для IPerf, написанный на Java — JPerf. Установки он также не требует, но для его работы необходима установленная платформа Java.
В общем, IPerf — удобный инструмент для измерения скорости и качества сетевого соединения, который стоит всегда иметь под рукой. Программа абсолютно бесплатна, загрузить ее можно отсюда, или с сайта SourceForge.
В статье освещены следующие темы:
- Зачем проверять скорость в домашней сети?
- Знакомьтесь, iPerf
- Установка iPerf
- Подготовка iPerf на Windows
- Запуск iPerf
- Проверка IP адреса устройства
- Запуск сервера
- Запуск клиента
- Анализ полученных данных
- Измерение скорости в домашней сети
- Самые простые способы улучшить скорость сети своими руками:
- Как обжать витую пару:
Многие из нас знают, как легко проверить скорость интернет-соединения. Обычно для этого используют сервис Speedtest, проверку можно выполнить, как с веб-сайта, так и установив одноименное приложение на ПК или мобильный гаджет. Оно доступно для Windows, iOS и Android платформ. А вот как проверить скорость маршрутизатора WiFi? Или измерить скорость соединения в домашней локальной сети, чтобы понять, насколько быстро работают те или иные устройства? Об этом далее в нашем материале.
Зачем проверять скорость в домашней сети?
Для серфинга по страницам сайтов достаточно даже невысокой скорости. А вот если мы просматриваем потоковое видео, YouTube или телеканалы по технологии IPTV, то постоянное притормаживание и рывки с видео создадут нам массу неудобств. Казалось бы, что во времена быстрого WiFi и гигабитных LAN сетей не должно возникать проблем с пропускной способностью. Однако это не всегда так. Сейчас домашние сети могут быть организованы несколькими способами. Наиболее популярные из них:
- маршрутизатор, бюджетный 2.4GHz или более современный AC или WiFi6,
- маршрутизатор с ответвлениями в виде свитчей для проводного подключения, а также ретрансляторов,
- WiFi Mesh системы.
Большое количество электронных устройств, которые вносят помехи, и плохо выполненная разводка – все это способно значительно ухудшить скорость домашней сети. Именно для этого стоит измерять скорость внутри сети, чтобы обнаружить «слабые места». Кстати, чтобы еще на этапе прокладки сетевого кабеля избежать больших потерь, рекомендуем использовать недорогой универсальный тестер RJ45. С его помощью можно выполнить тестирования еще при прокладке компьютерной сети.
Скорость в локальной сети в первую очередь зависит от пропускной способности роутера, обжимки кабеля и устройств, на которых вы планируете просматривать видео. Современный маршрутизатор, качественно подготовленный кабель и современные гаджеты – залог хорошей работы домашней сети.
Как протестировать и проверить, а в случае необходимости и решить проблемы со своей сетью? Для этого мы рассмотрим вариант тестирования домашней сети по LAN/WiFi с помощью небольшого и простого инструмента iPerf.
Знакомьтесь, iPerf
iPerf проделывает отличную работу и позволяет быстро проверить пропускную способность между двумя любыми устройствами в сети, вне зависимости от платформы. Учтите, он не измеряет скорость вашего интернета, он тестирует соединение устройств внутри wifi или Ethernet. Помогает без наличия обширных знаний найти уязвимые места в сети, не привлекая специалистов измерить пропускную способность оборудования по LAN/Wi-Fi. Полученные данные позволят исправить ошибки построения сети, либо выполнить модернизацию сети своими руками.
Кроссплатформенное программное обеспечение позволяет проводить тестовый замер скорости не только на Windows, но и MAC OS, Linux, Android-гаджетах, iPhone, и iPad. Приложение измеряет скорость передачи между двумя устройствами любых платформ, не зависимо от способа их подключения, в связках:
- LAN — LAN,
- Wi-Fi — Wi-Fi,
- LAN — Wi-Fi.
Устанавливать ПО необходимо на каждое из тестируемых устройств, при этом все они могут быть как источником, так и приемником. Благодаря открытому исходному коду разработчики при необходимости могут усовершенствовать код, либо перенастроить под себя.
Установка iPerf
Прежде всего скачиваем приложение с официального сайта iperf.fr. Выбираем версию, в зависимости от операционной системы тестируемых устройств. Это может быть:
- Windows 32 или 64 bit,
- Android,
- iOS или macOS,
- Ubuntu, Debian или Mint,
- Fedora или CentOS,
- openSUSE,
- FreeBSD,
и другие варианты.
Подготовка iPerf на Windows
Для Windows присутствует 3 версии:
- Windows х64,
- Windowsх32(86),
- универсальная Windows.
Все три работают с Windows 7/8/10/11, если же пользуетесь более ранней, то можно скачать и предыдущие сборки для них, собранные с начала 2003 года. Само приложение немногим больше 1 МБ.
Его необходимо разархивировать и переместить папку на диск С:, желательно в корень. Для удобства в дальнейшем, название папки сократим до iPerf, внутри ее всего 2 файла – cygwin1.dll и iperf3.exe, библиотека и само приложение.
Запуск iPerf
Если взять смарт тв приставки и мобильные гаджеты на Android и iOS, то там приложение запускается в один клик, без дополнительных манипуляций. С Windows ситуация немного сложнее, нужно использовать интерпретатор командной строки. Запускаем его через меню «Пуск», либо на клавиатуре нажимаем «Windows key + R» и вводим «cmd», после чего и подтверждаем запуск клавишей Enter.
После запуска вводим и выполняем следующую команду:
cd C:iperf
Для перехода в директорию с приложением.
Проверка IP адреса устройства
Следующая команда нам понадобится чтобы узнать какой IP адрес предоставлен устройству в сети.
ipconfig
В полученной информации необходимо проверить поле IPv4 Address, данный IP адрес позже будем вводить на устройстве-клиенте при тестировании. Обратите внимание, если на ПК или ноутбуке присутствует несколько Ethernet-портов, либо кроме LAN есть и Wi-Fi, можно протестировать все сетевые соединения по каждому из задействованных IP-адресов устройства.
Запуск сервера
В нашем тестировании одно из устройств выступает сервером, отправляя пакеты, второе устройство является клиентом, принимая их. Выполняем команду:
iperf3.exe -s
Она открывает на тестируемом устройстве порт 5201. При запуске команды система спросит, действительно ли желаете предоставить доступ приложению, необходимо подтвердить. Для завершения команды по окончанию тестирования достаточно нажать комбинацию «CTRL+»C», которая прерывает операцию, либо по завершению всех действий можно просто закрыть окно командной строки.
Запуск клиента
Второе устройство, которое будет принимать передаваемые пакеты при тестировании как и первое, требует запуска всех команд кроме последней. Запуск Ipconfig желательно выполнить, если планируете клиент в одном из дальнейших тестов использовать как сервер. В идеале — каждую пару устройств тестировать дважды — в связке клиент-сервер, после чего сервер останавливаем нажатием комбинации «CTRL+»C», и запускаем наоборот, в связке сервер-клиент. Значения при этом могут довольно сильно отличаться, в первую очередь при тестировании беспроводной сети.
Выполняем запуск клиента:
perf3.exe -c 192.168.68.101
Зависимо от полученного ранее результата проверки, IP может отличаться от указанного в статье.
И получаем средний результат 857 Мбит/с, который далее позволяет сравнивать результаты, и добиться максимальных приближенных значений при исправлении проблем и в процессе модернизации сети.
Анализ полученных данных
Первый запуск рекомендуется делать при прямом соединении, зависимо от того, какие порты используются, получаем максимальные значения. В нашем случае это 2 мини пк на windows 10 и 11 с гигабитными портами Ethernet, соединенными напрямую. Результат будет наилучшим, и покажет максимальную пропускную способность между 2-мя ПК.
Добавление в сеть роутера, точки доступа, подключение по беспроводному каналу либо Powerline может сильно влиять на скорость, зависимо от возможностей подключаемого сетевого оборудования. Как правило, чем старее оборудование, тем ниже скорость wifi и скорость LAN.
Также влияет и ряд сторонних факторов:
- большое расстояние,
- армированные стены,
- сторонние помехи для беспроводной сети,
- неправильно проложенная или обжатая витая пара для проводного подключения,
- старая или не качественно выполненная проводка для powerline.
Измерение скорости в домашней сети
Тестирование беспроводной сети: подключение ПК Wi-Fi + ПК Wi-Fi, с помощью TP-Link Deco M4, соединение AC стандарта.
Подключение ПК Wi-Fi + Смартфон Wi-Fi, с помощью TP-Link Deco M4, соединение AC стандарта.
Подключение ПК LAN + Смартфон Wi-Fi, с помощью TP-Link Deco M4, соединение AC стандарта.
Подключение ПК LAN + ПК LAN, с помощью TP-Link Deco M4, соединение по Ethernet.
Подключение по LAN — Wi-Fi, Totolink N200RE-v3, соединение по 2.4 GHz сети.
Как видим из результатов, каждое из используемых соединений довольно значительно отличается от других. Причина — разное оборудование, и его возможности. Скорость соединения можно максимально улучшить, проведя модернизацию, либо замену устаревшего сетевого оборудования, и соответственно повысить скорость передачи данных в домашней сети.
Самые простые способы улучшить скорость сети своими руками:
- Замена витой пары, если кабель не качественный, или поврежден;
- Тестирование правильности обжима с помощью бюджетного тестера или используя более современный тестер ethernet и витой пары;
- Замена разъемов RJ45 при повреждении/окислении или для FTP экранированный разъем с колпачком;
- Инструмент для зачистки и обжима витой пары;
- Замена беспроводного маршрутизатора на более современную модель;
- При поврежденном проложенном ранее кабеле можно использовать Powerline:
- в наборе Strong Powerline Wi-Fi 500 DUO, Strong Powerline Kit 500 DUO, Strong Powerline Kit 2000 DUO
- дополнительные адаптеры: Strong Powerline Wi-Fi 500
- замена сетевой карты на гигабитную USB3.0-LAN Белая или USB3.0-LAN Черная