Доступ до Інтернету необхідний, але ви можете поставити запитання, які процеси Linux найбільше використовують ваше з’єднання на вашому комп’ютері. На щастя, за допомогою деяких поширених утиліт Linux можна легко відстежувати, які процеси використовують вашу пропускну здатність. Ось деякі з них:
1. nethogs
nethogs — це програма, яка робить для підключень до Інтернету те, що htop або top робить для використання процесора і пам’яті. Він показує знімок того, які процеси отримують доступ до мережі.
Як і top, htop або atop, nethogs – це повноекранна програма, яка оновлюється через кілька секунд і показує поточні підключення до мереж процесів.
Установка nethogs проста. Ви просто заходите через менеджер пакетів.
Наприклад, у Debian та Ubuntu:
sudo apt install nethogs
В Arch Linux:
sudo pacman -S nethogs
В родині Red Hat:
sudo dnf install nethogs
Щоб запустити nethogs, вам знадобиться root:
sudo nethogs
Можна налаштувати так, щоб ви могли запускати nethogs від імені звичайного користувача за допомогою цієї команди:
sudo setcap "cap_net_admin,cap_net_raw+pe" /path/to/nethogs
Вам слід замінити “/path/to/nethogs” на абсолютний шлях до nethogs. Ви можете знайти це за допомогою команди:
which nethogs
2. lsof
lsof – це утиліта для перегляду відкритих файлів, але вона може відображати відкриті мережеві підключення. Параметр -i перелічує підключення до Інтернету, підключені до запущених процесів у системі. Зрештою, в Linux все є файлом.
Щоб побачити поточні підключення до Інтернету, використовуйте цю команду:
lsof -i
lsof покаже вам ім’я будь-яких команд з відкритими підключеннями до Інтернету, PID, дескриптор файлу, тип підключення до Інтернету, розмір, протокол та формальне ім’я файлу підключення.
Використання параметрів -i4 та -i6 дозволяє переглядати з’єднання з використанням IPv4 або IPv6.
Цілком ймовірно, що lsof у вас вже встановлено. Його також легко встановити в основних дистрибутивах Linux, якщо це не так.
В Debian та Ubuntu введіть:
sudo apt install lsof
В Arch:
sudo pacman -S lsof
У сімействі дистрибутивів Red Hat:
sudo dnf install lsof
3. netstat
netstat сама по собі є потужною програмою, що дозволяє вам бачити мережеві підключення у вашій системі. Він не показує, до яких процесів підключено мережеві підключення. Як і у випадку з lsof, ви можете побачити це за допомогою командного рядка.
netstat є частиною пакета net-tools. Ви можете встановити його в більшості дистрибутивів Linux за допомогою менеджера пакетів за замовчуванням.
Наприклад, у Debian або Ubuntu:
sudo apt install net-tools
В Arch Linux:
sudo pacman -S net-tools
Щоб встановити netstat у Fedora, CentOS та RHEL, виконайте:
sudo dnf install net-tools
Ви можете запустити netstat з командного рядка. Типово він покаже вам таку інформацію, як протокол, адресу та стан з’єднання, але опція -p додає стовпець, у якому відображається ідентифікатор процесу та ім’я команди.
netstat -p
Коли ви запустите його, netstat просто виведе список усіх мережних підключень, а потім завершить роботу. З опцією -c ви можете побачити список підключень, що постійно оновлюється:
netstat -pc
Це було б схоже на використання графічного інтерфейсу, такий як nethogs, але перевага такого підходу полягає в тому, що ви можете передати висновок в іншу програму, наприклад, grep або пейджер, для його перевірки:
netstat -p | grep 'systemd'
Щоб побачити всі процеси з мережевими підключеннями у вашій системі, вам, можливо, доведеться запустити netstat від імені користувача root:
sudo netstat
К сожалению, эти программы показывают потребителей сети только в реальном времени. Вот если бы они показывали вошедший и исходящий трафик от каждого процесса, было бы намного информативнее.