Во многих случаях может понадобиться отследить нагрузку на сеть, посмотреть сколько данных передается и какие пользователи, программы или компьютеры занимают канал. Особенно часто такие задачи возникают перед системными администраторами, перед которыми стоит задача отслеживать работу сети целой компании. Но также это может быть полезно и обычным пользователям.
В этой статье мы рассмотрим как выполняется мониторинг сети Linux. Для этого можно использовать различные утилиты. Начиная от сетевых анализаторов, таких как Wireshark и tcpdump до более простых инструментов, таких как iptraf.
Содержание статьи
- Как работает мониторинг сети?
- Мониторинг сети с помощью iptraf
- Мониторинг сети с помощью других утилит
- Выводы
Как работает мониторинг сети?
Все данные, которые распространяются через интернет передаются в виде пакетов определенного размера. Данные разделяются на части определенного размера и из них составляются пакеты, которые будут отправлены в ядро системы а затем в сеть, где пройдут путь из многих компьютеров и маршрутизаторов пока достигнут цели. С помощью специального программного обеспечения мы можем отслеживать сколько пакетов и какого размера проходит через наш компьютер и неважно, были они созданы локальной программой или получены из сети.
Таким образом, очень просто можно узнать какая сейчас нагрузка на сеть, какие программы или сервисы создали пакеты, и даже что содержится в этих пакетах и что делает пользователь.
Мониторинг сети с помощью iptraf
iptraf - это одна из самых лучших программ для мониторинга сети в Linux. Она предоставляет очень удобный интерактивный интерфейс, с помощью которого можно наглядно увидеть всю необходимую информацию, причем достаточно подробно. Утилита не поставляется по умолчанию, но она достаточно популярна, поэтому вы можете установить ее из официальных репозиториев. Для этого в Ubuntu выполните команду:
sudo apt install iptraf
А в CentOS / Red Hat выполните:
sudo yum install iptraf
После установки утилиты для ее запуска просто наберите в терминале iptraf-ng:
iptraf-ng
Перед вами откроется интерактивный интерфейс на основе Ncurses, в котором необходимо выбрать нужное действие. Здесь доступны монитор пропускной способности сети, статистика по интерфейсу, статистика по сбоям и монитор локальной сети.
Обратите внимание на нижнюю часть окна, там отображается описание выбранного действия, а также находятся подсказки по горячим клавишам.Например, для просмотра сетевых соединений и статистики трафика для каждого из них выберите IP traffic monitor. Затем вам будет необходимо выбрать сетевой интерфейс, например, enp2s0:
Дальше вы увидите все IP адреса, с которыми сейчас выполняется взаимодействие. Здесь можно увидеть направление отправки пакетов, количество пакетов и общий объем переданных или полученных данных в байтах.
С помощью других пунктов меню можно посмотреть статистику по интерфейсу или статистику по работе локальной сети. Утилита даже может работать в неразборчивом режиме, чтобы собирать максимум данных про локальную сеть.
Также поддерживаются фильтры, которые позволяют отфильтровывать информацию только по определенному критерию. Например, чтобы создать фильтр откройте меню Filters, затем выберите IP..., а дальше Apply new filter:
Затем нужно указать имя фильтра:
На следующем этапе вы можете расписать нужные параметры фильтрации:
Чтобы применить фильтр нужно выбрать Apply filter и выбрать имя фильтра из списка:
Теперь в любом пункте статистики будет отображаться только та информация, которая подходит под созданный фильтр.
Мониторинг трафика Linux чаще всего выполняется администраторами именно с помощью этой утилиты. Видео про использование утилиты:
Мониторинг сети с помощью других утилит
Самая мощная программа для мониторинга сети - это iptraf. Она предоставляет всю необходимую для администраторов информацию. Но, кроме нее, существуют и другие продукты. Рассмотрим их более подробно.
1. iftop
Утилита имеет более простой интерфейс и отображает намного меньше информации. Она выводит ip адреса отправителя и получателя, а также количество переданных или полученных данных за несколько последних секунд:
iftop
Установить программу в Ubuntu можно командной:
sudo apt install iftop
Хотя здесь отображается информация по каждому соединению, программа не может идентифицировать программу, которая создает пакеты.
2. nload
nload - это очень простая утилита, которая отображает только скорость входящих и исходящих соединений. Это позволяет сделать примитивный анализ сети linux и определить нагрузку. Отображается текущая скорость, максимальная и минимальная скорость за период работы. Также данные о скорости выводятся в виде графика, поэтому вам будет достаточно беглого взгляда, чтобы понять что происходит.
nload
Для установки программы в Ubuntu используйте команду:
sudo apt install nload
3. nethogs
Nethogs - это достаточно интересная утилита для мониторинга сетей, которая выделяется среди других. С помощью нее можно посмотреть какой процесс создает тот или иной трафик. Здесь отображаются PID процессов и имена пользователей, отсортированные по занимаемой пропускной способности сети:
nethogs
Программа, как и другие доступна из официальных репозиториев, поэтому у вас не возникнет проблем с установкой:
sudo yum install nethogs
4. bmon
Утилита bmon позволяет отображать достаточно подробно статистику по каждому сетевому интерфейсу. Она работает похоже на nload и выводит график кроме текстовой информации:
bmon
Для установки программы выполните:
sudo apt install bmon
5. Vnstat
Vnstat отличается от всех инструментов, рассмотренных выше. Программа работает постоянно в фоновом режиме и собирает информацию об использовании сети в лог файл. Далее можно посмотреть какой была нагрузка за определенный период. Для установки утилиты выполните:
sudo apt install vnstat
Далее необходимо запустить сервис, для этого выполните такую команду:
sudo systemctl start vnstat
Далее необходимо немного подождать, пока утилита соберет данные и можно просматривать статистику:
vnstat
Здесь будет отображаться информация о нагрузке на сеть с указанием дат и периодов. Также вы можете посмотреть доступную информацию в реальном времени. Для этого используйте опцию -l:
vnstat -l
Видео про использование и настройку vnstat:
6. bwm-ng
Это еще одна утилита, очень простая в использовании, которая позволяет следить за сетевой нагрузкой в режиме реального времени. Отображаются все доступные сетевые интерфейсы в системе:
bwm-ng
Для установки утилиты выполните такую команду:
sudo apt install bwm-ng
7. speedometer
Это еще один простой инструмент, который позволяет выполнить мониторинг сети и выводит данные в виде красивых графиков. Для установки программы выполните:
sudo pip install speedometer
Как видите, она есть в официальных репозиториев не всех дистрибутивов, зато вы можете установить программу из репозитория python.
speedometer -r enp2s0f0 -t enp2s0f0
Опция -r указывает интерфейс, с которого необходимо отображать количество полученных пакетов, а опция -t - отправленных.
8. netwatch
Netwatch - это небольшая утилита, которая входит в набор инструментов Netdiag и показывает сетевые соединения между локальной и удаленными системами, а также скорость, с которой будут передаваться данные. Для установки программы используйте:
sudo apt install netdiag
Затем для запуска:
netwath
9. ifstat
Утилита ifstat показывает пропускную способность сети, измеряя количество переданных и принятых пакетов. Вывод утилиты можно использовать и анализировать в других программах. Утилита не выводит информацию об ip адресах или других параметрах, а только скорость. Для установки используйте:
sudo apt install ifstat
Для запуска:
ifstat
10. trafshow
Это утилита, очень похожа на iftop, которая отображает не только скорость передачи, но и сами соединения. Здесь выводится информация по соединениях, размеры пакетов и протокол. Для установки программы наберите:
sudo apt install trafshow
Осталось запустить программу:
trafshow
Выводы
В этой статье мы рассмотрели команду Iptraf, а также еще несколько полезных утилит, с помощью которых можно выполнять мониторинг сети linux на сервере или домашнем компьютере. Некоторые из этих инструментов можно использовать даже в корпоративной среде. В качестве альтернативы вы можете использовать инструменты с веб-интерфейсом. Некоторые из них перечислены в статье системы мониторинга Linux. А какие инструменты мониторинга используете вы? Напишите в комментариях!
Можно еще добавить в обзор такую программу как iperf для тестирования пропускной способности.
Отличная программа, к тому же кросс-платформенная
1. у вас на картинке iptraf-ng, а инсталировать и запускать предлагаете iptraf (который, к слову, более глючный). разные репозитории?
2. что iptraf-ng, что iptraf у меня запускаются под рутом
да и nethogs без бубна не запустится
Подскажите пожалуйста программу или какое-либо простое решение для мониторинга, грубо говоря "кто сколько качает сейчас".
Спасибо!
Может сразу поставить полноценное решение в виде Pfsense?
Он и полноценный роутер, и прокси, и VPN -сервер и др. Там же увидите детальные отчеты кто, откуда и сколько качал траффика.
Установить trafshow.sudo apt-get install netdiag .Запуск: sudo trafshow
После установки:
-bash: iptraf: command not found
Получается статья - фуфло
sudo iptraf-ng
Подскажите а какую программу можно установить в Ubuntu 18.04 чтобы постоянно показывала скорость интернета в шторке? А то бывает ждешь и не понятно, грузится что то или нет, или все зависло и нужно перезагрузить страницу (в браузере)
А почему после установки команда iptraf не работает ? Почему нужно писать iptraf-ng ?? Это майкрософт проплатил чтобы разработчики симлинков не делали ? Извините, но в линуксе бил гейтс купил наверно даже больше чем в фармацевтике.
Для себя нашел утилиту bandwich
https://github.com/imsnif/bandwhich
С её помощью можно смотреть какому процессу принадлежат конкретные соединения.
Может кто знает программы с подобным функционалом? Я пока к сожалению альтернатив не нашел.