Как установить iperf на ubuntu
Содержание статьи:
- Что такое утилита 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?
Затем в 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:
Если нужно скачать Iperf для Windows, то воспользуйтесь ссылкой с моего ресурса:
Как установить Iperf в Windows
Чтобы установить Iperf2 или Iperf3 в операционной системе Windows, вам потребуется скачать свежую версию. На выходе у вас будет архивный файл. Далее вы распаковываете архив и получаете файл командной строки и cygwin1.dll
Далее вы открываете командную строку, желательно от имени администратора. После чего пишите команду:
cd C:\Temp\iperf-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
Давайте посмотрим список репозиториев, делается это командой:
Как видим, список будет вот такой:
Напоминаю, что утилита Iperf является дополнительным пакетом, который не входит в основные репозитории, это прекрасно описано в Вики http://fedoraproject.org/wiki/EPEL. Дополнительные пакеты для Enterprise Linux (EPEL) - это одобренный сообществом репозиторий, который указан в вики CentOS в разделе "Доступные репозитории для Linux", в котором отмечается, что хотя репозитории сообщества не связаны с проектом CentOS, эти репозитории часто рекомендованы сообществом. Выполните команду:
Как видите в файле yum.repos.d прописаны подключенные репозитории, и тут не хватает репозитория epel-release.
Давайте установим epel-release, для этого выполните:
Пробуем теперь посмотреть список репозиториев в файле yum.repos.d и видим, что epel появился.
Произведем установку Iperf
Все успешно выполнено. Конечно вам никто не запрещает подключить репозиторий от седьмой версии CentOS в восьмую, но они могут конфликтовать в будущем по зависимостям. Поэтому, если у вас CentOS 8, то я рекомендую сделать вот так.
Установка iperf на CentOS 8
Ранее, я так же установил CentOS 8 в тестовой среде. Хочу отметить, что если вы попытаетесь добавить репозиторий epel-release командой:
То он успешно установится, но когда вы попытаетесь сделать поиск iperf по нему, то обнаружите, что восьмая ветка не содержит данной утилиты.
Далее я устанавливаю в CentOS 8 пакет wget, для этого выполняем:
Далее скачиваем пакет, ссылку на который мы заранее выяснили.
Далее производим установку iperf2 в системе, через выполнение команды:
Так же для CentOS 8 рекомендуется включить репозиторий PowerTools, поскольку пакеты EPEL могут зависеть от пакетов из него
Установка iperf3 в CentOS 7 и 8
В CentOS 8 с установкой Iperf3 еще проще, так как это пакет является уже частью стандартных репозиториев, чтобы его поставить просто введите:
Если мы имеем дело с CentOS 7 и ниже, то нужно добавлять репозиторий epel-release
Открытие портов Iperf на CentOS
После того. как вы произвели инсталляцию пакета, вам необходимо открыть порты, которые будет слушать ваша служба при подключении к ней. Напоминаю, что порты по умолчанию у iperf и iperf3, это 5201. Для решения этой задачи мы выполним две команды:
firewall-cmd --permanent --add-port=5201/udp
Проверим слушает ли сервер входящие подключения по порту 5210, для этого выполните:
Утилита 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. Доступны такие варианты:
Аналогично для сервера можно задать порт с помощью опции -p. По умолчанию он работает на порту 5201:
ipref3 -s -p 4000
В любом случае, если на сервере установлен брандмауэр, то вам надо разрешить в нём подключение к порту 5201 или тому, который вы выбрали. Например, для ufw команда будет выглядеть так:
sudo ufw allow 5201
А для firewalld:
sudo firewall-cmd --permanent --add-port=5201/tcp
sudo firewall-cmd --permanent --add-port=5201/udp
sudo firewall-cmd --reload
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 серверов. Полный список таких серверов можно найти здесь. Например:
Выводы
В этой статье мы рассмотрели как пользоваться iperf 3 для проверки пропускной способности сети, а также разобрались как узнать скорость вашего провайдера с помощью публичных серверов iperf. Как видите, всё не так уж сложно. А какие вы используете утилиты для проверки скорости работы сети? Напишите в комментариях!
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
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
Общие для сервера и клиента:
Для сервера:
Ключ | Описание |
---|---|
-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
Requirements
Two networked Linux systems with iperf3 installed
Installation of iperf3
installation of iperf3 on Linux is a pretty easy task since it exists in official software repositories of most Linux distributions.
Install iperf3 on Debian/Ubuntu
Install iperf3 on RHEL/CentOS
Install iperf3 on Fedora 22 and later
Install iperf3 from source
You can also choose to install iperf3 from source by running the commands below. To download the source package run
Once downloaded, extract the package
Next, navigate into the extracted folder
Run the command to configure
Compile it using the make command
Finally, install using make install
Testing network throughput between 2 Linux servers
To set an iperf3 server
To set the RedHat system as the iperf3 server, Open the terminal and run
Output
Connecting Client to server
Now we are going to connect our Ubuntu client to the RedHat server system. To achieve this run
You will start getting the following statistics as shown below, both on the client and server
iperf3 client (Ubuntu) Output
iperf3 server (RedHat) Output
To reverse the direction of packets
To print the output in JSON format
To get help with commands run
To define interval times append the -i flag
For more usage on iperf3 commands , visit mankier
About James
Hey there! This is James, a Linux administrator and a tech enthusiast. I love experimenting with various distributions of Linux and keeping tabs on what's new in the Linux world.⚡ Popular Guides
- How to Install a Desktop and VNC on Ubuntu 16.04 13991 12
- 11 Ways to free up disk space on cPanel servers 13136 5
- Install packages in Arch Linux from AUR 12703 9
- How to install Zimbra Mail server 8.8.8 on Cent OS 7 12090 6
- How to configure a static IP on Linux 11826 6
- Installing packages from source in Arch Linux 11344 6
- How to restrict SSH access only to specific IPs 11040 16
- Installation of cPanel on your Centos 7 server 10826 5
- HOW TO INSTALL GNOME SHELL EXTENSIONS IN LINUX 10499 3
- How to install Moodle on Ubuntu 18.04 10238 10
- How to Install GitLab on CentOS 7, RHEL and Scientific Linux 10188 5
- How to install GUI on Ubuntu server 18.04 9846 3
- How to install NextCloud on Debian 10 9079 6
- How to change default Nginx port in Linux 8441 3
- How to install pgAdmin4 on Ubuntu 18.04 7121 1
- How to install Centreon on CentOS 7 7076 5
- How to test network throughput using iperf3 tool 7044 10
- How to install Yay helper on ArchLinux 6870 5
- How to install PostgreSQL 11 on Ubuntu 18.04 6826 1
- How to install Splunk on Ubuntu 18.04 6241 8
CloudCone, LLC
An unmatched stack of cloud services that collaborate to provide a scalable infrastructure for your online presence, fully managed by friendly humans.
Читайте также: