7
сентябрь
2021
16:02

Тестирование скорости передачи данных с помощью SSH и iPerf

7 сентябрь 2021 16:02

Простой способ проверить скорость Интернет или локальной сети - при помощи команды iPerf.

Введение

В Linux существуют три программы для тестирования скорости - iPerf (порт 5001) и iPerf3 (порт 5201).
В статье рассмотрена первая программа iPerf, но с таким же успехом можно применить инструкцию к программе iPerf3, заменив номер порта 5001 на 5201.

План действий

  1. На сервере настроить брандмауэр, добавив разрешающее правило для сервера iPerf
  2. Настроить проброс портов (для локальной сети пропускаем)
  3. На клиенте установить iperf
  4. Подключиться к серверу по SSH
  5. Запустить сервер iperf
  6. С клиента выполнить тест скорости передачи данных

Шаг 1. Разрешаем порт 5001 для тестирования скорости

На сервере выполняем настройку брандмауэра:

sudo ufw allow 5001

где 5001 - порт по умолчанию для сервиса iPerf.

Шаг 2. Проброс портов

Для локальной сети или VPN пункт проброса наружу порта 5001 пропускаю.

Для Интернета необходимо открыть и выполнить переадресацию 2 секретных порта на роутере:
1) для управления ПК по SSH (переадресация на порт сервера 22) - порт с номером 22334.
2) для тестирования скорости (переадресация на порт 5001 сервера iPerf по умолчанию) - порт с номером 12345.

Шаг 3. Установка клиента/сервера iPerf

На стационарном компьютере - сервере Ubuntu Linux и на клиенте - нетбуке под управлением MX Linux) выполнил одну и ту же команду:

sudo apt-get install iperf

Шаг 4. Подключение по SSH к серверу

В локальной сети:

ssh user@192.168.1.8 -p 22334

Если извне:

ssh user@123.45.67.89 -p 22334

где: user - имя пользователя на сервере, 123.45.67.8 - заменить на IP адрес сервера SSH в Интернет ("белый" IP адрес), 22334 - секретный порт для управления по SSH.

Ввёл пароль и попал в консоль сервера.

Шаг 5. Запуск сервера iPerf

Через сеанс SSH на сервере запустил программу с ключом "-s"

iperf -s

Оставил сеанс ssh работать. IP-адрес сервера в локальной сети статический - 192.168.1.8.

Шаг 6. Тестирование скорости передачи данных с помощью iPerf внутри локальной сети

Запустил другой экземпляр (окно) терминала на клиенте.

На клиенте в локальной сети выполнил следующую команду:

iperf -c 192.168.1.8 -n 10M 

Где 192.168.1.8 - IP адрес сервера в локальной сети, 10M - размер пакета данных для измерения скорости,
а порт по умолчанию 5001.

Либо, если используется iperf3, команда следующая:

iperf3 -c 192.168.1.8 -n 10M 

Результат:

$ iperf -c 192.168.1.8 -n 10M

Client connecting to 192.168.1.8 TCP port 5001
TCP window size: 110 KByte (default)
------------------------------------------------
[ 1] local 192.168.1.101 port 49772 connected with 192.168.1.8 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.0000-1.1685 sec 10.0 MBytes 71.8 Mbits/sec

Шаг 7. Измерение с помощью iPerf скорости извне локальной сети

Серверная часть остается той же:

iperf -s

Клиентская часть: вызов команды с "белым" IP-адресом (123.45.67.8) и ключом "-p" - номер порта, проброшенного на сервер iPerf.

iperf -c 123.45.67.8 -p 12345  -n 10M 

Итог:

Научился измерению скорости между двумя точками.
В дальнейшем, т.к. настройка выполнена, для измерения скорости можно выполнять лишь шаги 4, 5 и 7.

Отличия iperf и iperf3

Программы были написаны в разное время.
iperf3 - более свежая порты первой 5001, а последней iperf3 - порт 5201.

iperf3 как служба

iPerf3 в systemd (подсистеме инициализации и управления службами в Linux) можно запустить как службу:

systemctl enable --now operf3.service

После выполнения указанной команды, заданная служба iperf3 будет разрешена и сразу запущена.
Узнать состояние службы можно при помощи команды

systemctl status iperf3.service

Как говорилось выше, внешний порт для подключения по протоколу iperf3 - 5201/TCP.
Если служба iperf3.service запущена, команду "iperf3 -s" для запуска сервера iperf3 выполнять не нужно, так как компьютер при запущенной службе iperf3.service всегда откликается на запросы к порту 5201 при выполнении команды с другого компьютера - клиента iperf3 -c ip_адрес_сервера -n 10M.

Последнее изменение: 21.08.2022



Похожие публикации