MyTetra Share
Делитесь знаниями!
Проверка скорости работы сети в Linux через утилиты iperf и netcat + dd
Время создания: 22.08.2024 11:35
Текстовые метки: linux, сеть, скорость, проверка, тестирование, iperf, netcat, nc, dd, консоль, команда
Раздел: Компьютер - Linux - Сеть в Linux
Запись: xintrea/mytetra_syncro/master/base/17243157514i2az5vamx/text.html на raw.github.com

Тестирование скорости сети через iperf


Вначале надо установить пакет iperf:



>sudo apt-get install iperf



Далее, чтобы протестировать скорость прохождения пакетов между двумя компьютерами, необходимо сделать следующие действия.




Эта картинка как бы символизирует компьютерую сеть.



На компьютере №1 надо запустить iperf в режиме сервера:



> iperf -s



Эта команда запустит небольшой специальный iperf-сервер на порту с номером 5001 (это порт iperf по-умолчанию). Если необходим другой порт, то можно воспользоваться командой:



> iperf -s -p 8080



Далее, на компьютере №2 надо запустить iperf в режиме клиента, и указать к какому серверу надо подключиться:



> iperf -c 10.211.55.5



Где 10.211.55.5 - это IP-адрес компьютера №1. Если нужно указать порт, то можно команду дополнить опцией -p <Номер_порта>.


Если все сделано правильно, то клиент и сервер, спустя некоторое время необходимое для проведения замера, начнут показывать реальную скорость передачи данных по сети:



Client connecting to 10.211.55.5, TCP port 5001

TCP window size: 16.0 KByte (default)

------------------------------------------------------------

[ 1] local 10.211.55.4 port 56200 connected with 10.211.55.5 port 5001 (icwnd/mss/irtt=14/1448/1545)

[ ID] Interval Transfer Bandwidth

[ 1] 0.00-10.03 sec 4.17 GBytes 3.57 Gbits/sec



По сути, данный тест проверяет скорость прохождения TCP пакетов. Для замера скорости прохождения UDP-пакетов, надо в командах запуска сервера и клиента добавлять опцию -u.



Тестирование скорости сети через netcat и dd


Если нет утилиты iperf, можно воспользоваться утилитой netcat. На самом деле, пакет называется netcat, а сам бинарник программы называется nc, об этом надо помнить.


Вначале надо установить пакет netcat:



> sudo apt-get install netcat



Утилита dd, скорее всего уже установлена, потому что это одна из самых древних системных утилит в Linux.


Далее на компьютере №1 надо запустить сервер, который будет слушать 5001 порт и отправлять все полученные данные в /dev/null:



> nc -vvlnp 5001 > /dev/null

Ncat: Version 7.93 ( https://nmap.org/ncat )

Ncat: Listening on :::5001

Ncat: Listening on 0.0.0.0:5001


В этой команде используются следующие опции:


  • -vv - это включение подробного лога;
  • -l - командует nc включиться в режиме прослушивания порта (listen);
  • -n - использовать только IP-адреса, без DNS;
  • -p - указывает номер порта, который необходимо слушать.


На компьютере №2 запускается команда, которая будет отправлять сетевой траффик на компьютер №1:



> dd if=/dev/zero bs=1M count=1K | nc -vvn 10.211.55.4 5001

Connection to 10.211.55.4 5001 port [tcp/*] succeeded!

1024+0 records in

1024+0 records out

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.40932 s, 198 MB/s


Здесь:


  • /dev/zero - это генератор потока байт, состоящий из одних нулей. В принципе его можно заменить на /dev/random, но некоторыми упоротыми админами считается, что он работает медленнее чем /dev/zero, что влияет на конечный результат;
  • bs - это размер одного куска, выдаваемый в поток за раз (в данном случае 1Мб);
  • count - это количество кусков последовательности байт (в данном случае 1000 кусков);


Сформированный таким образом поток байт подается на вход утилиты nc, и отправляется по сети на IP-адрес 10.211.55.4 (это адрес компьютера №1) на порт 5001.


В процессе работы данной команды выдается статистика о скорости передачи байтов с одного комьютера на другой. Это и есть примерная скорость работы сети.



Итого


Описанные выше способы проверки скорости сети, по сути, работают в одном направлении. Сеть не обязательно сможет быть симметричной. Поэтому для полной картины надо запускать команды и в "зеркальном" отображении - команды, предназначенные для компьютера №1 - на компьютере №2 и наоборот.


Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования