В случае когда соединение начинает тормозить, а ты не понимаешь, кто именно грузит сеть. Может, какой-то скрипт что-то качает? Или случайно оставил curl в фоне? В таких случаях хочется просто одной командой увидеть, какой процесс активнее всех гоняет трафик.
Для этого есть простая, но очень удобная утилита - nethogs. Она показывает, какой процесс сколько трафика использует в реальном времени. Интерфейс у неё похож на top, только вместо нагрузки на CPU - сетевой трафик.
Установка:
sudo apt install nethogs
Использование:
Запустить её можно вообще без параметров:
sudo nethogs
В этом случае она попытается определить интерфейс автоматически. Часто этого достаточно. Если ты точно знаешь, через какой интерфейс идёт трафик (чаще всего это eth0, но может быть ens18, enp0s3, wlan0, зависит от системы и типа подключения), то можешь указать его явно:
sudo nethogs eth0
После запуска ты увидишь список процессов, которые что-то скачивают или отдают. Указывается имя процесса, путь до исполняемого файла, пользователь, и скорость входящего/исходящего трафика.
Всё обновляется в реальном времени, можно наблюдать за сетевой активностью прямо на лету. Если не уверен, какой интерфейс использовать, глянь список всех с помощью команды:
ip a
Команда покажет список всех интерфейсов. Обычно нужный - это тот, где есть IP-адрес из подсети (например, 192.168.*.* или 10.*.*.*), и видно state UP.
Вывод:
Так можно удобно на сервере быстро понять, кто шумит. Или локально, если подозреваешь, что какая-то программа активно лезет в интернет. Утилита nethogs не показывает домены, IP-адреса или порты, а только процессы и их скорость. Но для локальной отладки этого обычно хватает с головой.
LinuxCamp | #utils