04 October 2024
© Ігор Стецюк
У цій статті ми розглянемо інструменти для моніторингу мережної активності, які працюють у командному рядку. Вони призначені для аналізу мережного трафіку, вимірювання його швидкості як реального часу. Розглянемо основні елементи керування, а також деякі опції та параметри. Також до кожного огляду будуть прикріплені приклади та результати роботи. Статтю можна використовувати як для вивчення, так і для довідкового посібника.
Різновид програм у статті буде широким, деякі відображають інформацію для кожного процесу окремо, що дозволяє легко виявити зловживача, інші програми показують загальну картину, будують графіки, виводять активні з'єднання. Різні інструменти використовують різні механізми аналізу, одні беруть дані з "/sys/class/net/*/* та /proc/net/dev" постійно читаючи інформацію з цих файлів Інші використовують бібліотеку "libpcap" захоплюючи всі пакети, потім розраховуючи їх розмір обчислюють навантаження мережі.
Є дуже простим інструментом для перегляду завантаження каналу. Екран програми розділений на дві частини, вгорі відображається вхідний трафік, що в нижній частині вихідний. Клавішами "вгору - вниз", "вліво - вправо" "PageUp - PageDown", "Enter", "Tab" можна в режимі реального часу перемикатися на наступний або попередній мережевий інтерфейс. Клавіша "F2" (викликає/приховує) меню налаштувань, після зміни параметрів їх можна зберегти у профіль користувача за допомогою клавіші "F5"< /strong>, налаштування пишуться у файл "~/.nload", за бажання його можна редагувати будь-яким редактором. Також можна використовувати стандартні налаштування "F6" або вибрати з доступних варіантів, в режимі редагування "F2" використовуємо клавіші "+ (плюс) або - (мінус)".
Розглянемо опції:nload [-a period] [-i max_scaling] [-m] [-o max_scaling] [-t interval] [-u h|H|b|B|k|K|m|M|g|G] [-U h|H|b|B|k|K|m|M|g|G] [devices]
$nload wlp5s2 -i 5000 -o 5000 -U G -t 400
Установка:
fedora або centos (Epel)
$ sudo yum install nload -y
ubuntu або debian
$sudo apt-get install nload
archlinux
$sudo pacman -S nload
Iftop призначений для вимірювання даних, що проходять через мережеві сокети, на відміну від nload він вимагає прав root і використовує бібліотеку "libpcap" захоплюючи пакети мережного адаптера, що проходять, а потім проводить розрахунки для вимірювання пропускної спроможності каналу Дозволяє швидко виявити напрямок трафіку, відображаючи смугу завантаження для кожного з'єднання (спеціально для dkws.org.ua).
Інтерфейс програми розбитий на колонки: у першій колонці вказана адреса сервера, у другій - віддалений клієнт, напрямок потоків позначені стрілками (<= і =>), наступні три колонки вказують у інтервалі 2, 10, 40 секунд середню швидкість. У верхній частині загальна шкала мережної активності, внизу різні загальні дані.
Є можливість сортування за висновками в інтервалах 2, 10, 40 секунд, для цього натискаємо цифри 1,2,3 або стрілки (< = або =>), зробити паузу, натиснувши (shift+p) виконати інші налаштування (про них ви можете прочитати в самій програмі натиснувши клавішу (h)).
Расдивимося деякі основні опції:
Приклад:
$sudo iftop -nNP -i eth0
Установка:
fedora або centos
$sudo yum install iftop -y
ubuntu або debian
$sudo apt-get install iftop
archlinux
$sudo pacman -S iftop
$sudo yaourt -S aur/iftop-devel
Iptraf призначено для моніторингу мережевої активності в режимі реального часу та ведення статистики мережевих інтерфейсів. Показує окремі мережеві з'єднання та кількість даних, що передаються між ними. Для роботи програми потрібні права root, є підтримка логування.
Працювати з програмою можна як в інтерактивному режимі, часто так воно і є, так і в режимі запуску з певними параметрами. Меню програми логічне та інтуїтивно зрозуміле, особливу увагу приділяти інтерфейсу не будемо.
Розглянемо основні опції:
$sudo iptraf-ng -i all -t1 -L /home/igor/iptraf.log
centos (base repo)
$sudo yum install iptraf
fedora або centos (з epel)
$sudo yum install iptraf-ng -y
ubuntu або debian
$sudo apt-get install iptraf iptraf-ng
archlinux
$sudo pacman -S iptraf-ng
$sudo yaourt -S aur/iptraf
$sudo yaourt -S aur/iptraf-ipv6
Nethogs є одним із найкращих інструментів дослідження мережної активності кожного процесу на вашому комп'ютері, водночас він є ще й дуже простим інструментом. Для запуску програми потрібні права суперкористувача.
У вікні програми відображаються активні мережеві (спеціально для dkws.org.ua) процеси, зазначений їх PID, користувач під яким запущений процес, програма, що виробляє мережну активність, інтерфейс, обсяг даних (прийняті та відправлені). З керування в інтерактивному режимі можливе змінювати режим відображення даних (kb/s, kb, b, mb) клавішею "m", відсортувати за даними отримання "r" та відправлення "s", "q" вихід.
Розглянемо основні опції:
Приклад:
$sudo nethogs cscotun0 wlp5s2
Установка:
fedora or centos (from epel)
$ sudo yum install nethogs -y
ubuntu or debian (default repos)
$ sudo apt-get install nethogs
archlinux
$sudo pacman -S nethogs
Опції:
$bmon -p wlp5s2,cscotun0
fedora or centos (from repoforge)
$ sudo yum install bmon
ubuntu or debian
$ sudo apt-get install bmon
archlinux
$sudo yaourt -S bmon
Slurm дрібна утиліта для моніторингу мережного інтерфейсу в режимі реального часу будує ASCII графіки. Підтримує 3 різні стилі відображення, кожен з яких може бути активований за допомогою s, s і l ключа. З багів помітив, що параметр Interface Speed: завжди unknown.
Опції:Приклад:
$slurm -i wlp5s2 -z -t foo
Установка:
debian or ubuntu
$ sudo apt-get install slurm
fedora or centos
$ sudo yum install slurm -y
archlinux
$sudo yaourt -S slurm
TCPTrack проста програма на основі Libpcap для підрахунку смуги пропускання мережного з'єднання. Підтримує стандартні PCAP фільтри, які можна використовувати для моніторингу конкретного мережного з'єднання. В інтерактивному режимі (спеціально для dkws.org.ua) можна поставити моніторинг на паузу, корисно за великого завантаження мережі "p", сортувати "s" і вийти з програми < b>"q".
Опції:
Приклад:
sudo tcptrack -f -i eth0 -r 5 -d
Установка:
debian or ubuntu
$ sudo apt-get install tcptrack
fedora or centos (з repoforge repository)
$ sudo yum install tcptrack -y
archlinux
$sudo yaourt -S tcptrack
Vnstat відрізняється від усіх раніше розглянутих утиліт. Працює у фоновому режимі як демон, і веде запис об'єму даних мережі. Vnstat більше нагадує інструмент для отримання історичних звітів про те, як багато трафіку використовується щодня або протягом останнього місяця. Опцій у програмі багато, тому ми розглянемо лише основні, детальніше можете переглянути в man vnstat
Опції:
Приклад:
$vnstat
vnstat -h -i eth0
Установка:
debian or ubuntu
$ sudo apt-get install vnstat
fedora or centos (from epel)
$ sudo yum install vnstat-y
archlinux
$sudo pacman -S vnstat
Bwm-ng є простим інструментом моніторингу в режимі реального часу. Найзручніше їм користуються в інтерактивному режимі, ключі запуску ви можете подивитися в man bwm-ng. (спеціально для dkws.org.ua)
Опції в інтерактивному режимі:
Приклад:
$bwm-ng
Установка:
debian or ubuntu
$ sudo apt-get install bwm-ng
fedora or centos (from epel)
$ sudo yum install bwm-ng
archlinux
$sudo pacman -S bwm-ng
Крихітна утиліта, що відображає об'єм трафіку, що проходить через мережеві інтерфейси. Так як програма дуже схожа на bwm-ng і пакети доступні тільки для ubuntu використовувати її навряд чи є сенс.
Приклад:
$cbm
Установка:
debian or ubuntu
$ sudo apt-get install
Ще один невеликий і простий інструмент, який просто добре будує графіки вхідного та вихідного трафіку через вказаний інтерфейс.
Опції:speedometer -r wlp5s2 -t wlp5s2 -f ./file -k 256
debian or ubuntu
$ sudo apt-get install speedometer
archlinux
$sudo yaourt -S speedometer
Pktstat відображає всі активні з'єднання в реальному часі та швидкість, з якою дані передаються через них. Він також відбиває тип з'єднання, тобто. TCP або UDP, інформація про HTTP-запити.
Опції:
Приклад:
$ sudo pktstat -i wlp5s2 -nt
Установка:
debian or ubuntu
$ sudo apt-get install pktstat
archlinux
$sudo yaourt -S pktstat
Netwatch створений для моніторингу мережевих підключень, заснований на програмі під назвою "statnet", але був суттєво модифікований з Ethernet акцентом. Це динамічна програма, яка відображає стан Ethernet на основі кожного типу з'єднання. Має можливість моніторингу сотень статистик сайту одночасно. Також доступний моніторинг кількості з'єднань на (спеціально для dkws.org.ua) порту (неослужби) та адресу призначення. Зовнішні мережеві зв'язки підраховуються та відображається швидкість передачі.
Опції:
Навігація в інтерактивному режимі:
Приклад:
sudo netwatch -e wlp5s2 -n
Установка:
debian or ubuntu
$ sudo apt-get install netdiag
archlinux
$sudo pacman -S netwatch
Як NetWatch і pktstat, trafshow моніторить поточні активні з'єднання, їх протокол та швидкість передачі даних. Це все можна відфільтрувати за допомогою PCAP фільтрів.
Опції:
Приклад:
sudo trafshow -i eth0
Установка:
debian or ubuntu
$ sudo apt-get install trafshow
fedora or centos (from epel)
$ sudo yum install trafshow
archlinux
$sudo yaourt -S trafshow
Команда NETLOAD просто виводить невеликий звіт про поточне навантаження трафіку, а також загальну кількість байт, переданих з моменту запуску програми.
Опції:
Приклад:
sudo netload eth0
Установка:
debian or ubuntu
$ sudo apt-get install netdiag
Маленька утиліта, яка відображає завантаженість мережного інтерфейсу.
Опції:
Приклад:
ifstat -latTwq
Установка:
debian or ubuntu
$ sudo apt-get install ifstat
fedora or centos (Repoforge)
$ sudo yum install ifstat
Dstat є відмінним інструментом для моніторингу стану системи, аналізу продуктивності та діагностики збоїв. З допомогою плагінів дозволяє підключати різноманітні модулі для моніторингу різних служб (mysql, nfs, postfix і т.д.). У цій статті ми розглянемо лише моніторинг мережі
Опції:Приклад:
dstat -nt
Установка:
debian or ubuntu
$ sudo apt-get install dstat
fedora or centos
$ sudo yum install dstat
archlinux
$sudo pacman -S dstat
Jnettop призначений для моніторингу вузлів/портів, які займають найбільше трафіку.
Опції:
Приклад:
sudo jnettop -i wlp5s2 -x "dst host 192.168.0.108"
Установка:
debian or ubuntu
$ sudo apt-get install jnettop
fedora or centos (from epel)
$ sudo yum install jnettop
archlinux
$sudo yaourt -S jnettop
Iperf є інструментом виконання вимірювань пропускної спроможності мережі. Він може випробувати TCP/UDP пропускну здатність. Щоб виконати тест Iperf, користувач повинен запустити сервер і клієнт.
Опції глобальні:
Приклад:
на сервері: iperf -s -p22000
на клієнті: iperf -p22000 -c 192.168.0.108 -P5 -t60
Установка:
debian or ubuntu
$ sudo apt-get install iperf
fedora or centos
$ sudo yum install iperf
archlinux
$sudo yaourt -S iperf