В Linux существует множество инструментов для мониторинга сетевой активности. Но большинство из них позволяют контролировать только сетевой трафик от вашего компьютера или конкретного интерфейса. Бывают случаи когда нужно понять какая программа наиболее активно использует сетевое соединение.
Такое может понадобиться если у вас медленный интернет и вы хотите спокойно посмотреть любимые сайты, а тут какая-то программа начинает что-то качать при чем какая не понятно. Вот для таких случаев есть инструмент NetHogs. В этой статье мы обсудим установку, настройку и особенности работы с NetHogs.
Установка NetHogs
Как сказано на man странице утилиты, NetHogs – небольшой сетевой монитор. Программа группирует сетевую активность не по протоколу или сети, а по группам процессов.
Если вдруг что-то начинает активно использовать интернет соединение, можно просто запустить NetHogs и вы сразу увидите PID виновника. Так как работа утилиты основана на подсистеме /proc, на данный момент есть версия только для Linux.
Пользователи Debian подобных систем, в том числе и Ubuntu могут установить утилиту с помощью следующей команды:
sudo apt-get install nethogs
Если вы используете другой дистрибутив, посмотрите детали установки на официальном сайте NetHogs. Для работы утилиты необходимы библиотеки pcap и ncurses, убедитесь что пакеты libncurses5-dev и libpcap0.8-dev установлены.
Как пользоваться NetHogs
1. Просмотр информации
Утилиту NetHogs очень просто использовать. Просто выполните команду nethogs в терминале без каких либо параметров и утилита отобразит сетевую активность для каждого процесса.
Как вы видите программа показывает такие детали как PID, пользователя, сетевой интерфейс, количество данных и скорость передачи или приема.
2. Обновление данных
По умолчанию NetHogs обновляет информацию каждую секунду, но вы можете использовать опцию -d для указания интервала обновления. Например, для обновления каждые три секунды наберите:
sudo nethogs -d 3
3. Выбор сетевого интерфейса
Вы можете указать NetHogs с каким сетевым интерфейсом работать, просто набрав имя интерфейса в командной строке. Например для мониторинга трафика на устройстве tun0 используйте:
sudo nethogs tun0
Можно использовать опцию -p для перехвата трафика в неразборчивом режиме (так называемый monitor mode), но это не рекомендуется.
4. Горячие клавиши
В утилите предусмотрены горячие клавиши с помощью которых можно контролировать способ представления. Например нажмите M во время выполнения программы чтобы поменять формат представления приема или передачи данных. Возможны варианты в kb/s, kb, b mb. Например, отображение в мегабайтах, полученных или переданных:
Также вы можете нажать R или S для сортировки по количеству принятых или переданных данных. И как всегда Q для выхода из программы.
Выводы
NetHogs идеально подходит для случаев, когда вы хотите, поймать и уничтожить процесс, который съедает много интернет трафика. Плюс – это утилита с открытым исходным кодом, что означает что вы можете попытаться понять как она работает или даже переписать ее под себя. Вы использовали раньше NetHogs или другой подобный инструмент? Поделитесь своими мыслями в комментариях!