Ako monitorovať využitie siete pre procesy v systéme Linux


Chcete zobraziť využitie siete pre všetky aktuálne aktívne procesy na vašom počítači so systémom Linux? S týmito open-source nástrojmi je to jednoduché.

Prístup na internet je nevyhnutný, ale možno sa pýtate, ktoré procesy Linuxu najviac využívajú vaše pripojenie na vašom počítači. Našťastie s niektorými bežnými linuxovými pomôckami je monitorovanie procesov, ktoré využívajú vašu šírku pásma, jednoduché. Tu sú niektoré z nich:

1. nethogy

nethogs je program, ktorý robí pre internetové pripojenia to, čo robí htop alebo top pre využitie CPU a pamäte. Ukáže vám prehľad procesov, ktoré pristupujú k sieti.

Rovnako ako top, htop alebo atop, nethogs je program na celú obrazovku, ktorý sa po niekoľkých sekundách aktualizuje, aby vám ukázal aktuálne sieťové pripojenia podľa procesov.

Inštalácia nethogov je jednoduchá. Stačí prejsť cez správcu balíkov.

Napríklad na Debiane a Ubuntu:

sudo apt install nethogs

A na Arch Linuxe:

sudo pacman -S nethogs

O rodine Red Hat:

sudo dnf install nethogs

Ak chcete spustiť nethogy, musíte byť root:

sudo nethogs

Je možné ho nastaviť tak, aby ste mohli spúšťať nethogs ako bežný používateľ pomocou tohto príkazu:

sudo setcap "cap_net_admin,cap_net_raw+pe" /path/to/nethogs

Mali by ste nahradiť "/path/to/nethogs" absolútnym názvom cesty nethogs. Môžete to nájsť pomocou príkazu which:

which nethogs

2. lsof

Zatiaľ čo lsof je pomôcka na výpis otvorených súborov, dokáže vypísať aj otvorené sieťové pripojenia. Možnosť -i uvádza zoznam internetových pripojení pripojených k spusteným procesom v systéme. V Linuxe je napokon všetko súbor.

Ak chcete zobraziť aktuálne internetové pripojenia, použite tento príkaz:

lsof -i

lsof vám zobrazí názov všetkých príkazov s otvorenými internetovými pripojeniami, PID, deskriptor súboru, typ internetového pripojenia, veľkosť, protokol a formálny názov súboru pripojenia.

Pomocou možností -i4 a -i6 môžete zobraziť pripojenia pomocou IPv4 alebo IPv6.

Je veľká šanca, že už máte lsof nainštalované. Je tiež ľahké ho nainštalovať do hlavných distribúcií Linuxu, ak nie je.

V Debiane a Ubuntu zadajte:

sudo apt install lsof

A na Arch:

sudo pacman -S lsof

O rodine distribúcií Red Hat:

sudo dnf install lsof

3. netstat

netstat je výkonný program sám o sebe, ktorý vám umožní vidieť sieťové pripojenia vo vašom systéme. Neukazuje vám, ku ktorým procesom sú pripojené sieťové pripojenia. Rovnako ako v prípade lsof to môžete vidieť pomocou možnosti príkazového riadka.

netstat je súčasťou balíka net-tools. Môžete ho nainštalovať na väčšinu linuxových distribúcií pomocou predvoleného správcu balíkov.

Napríklad na Debiane alebo Ubuntu:

sudo apt install net-tools

V systéme Arch Linux:

sudo pacman -S net-tools

Ak chcete nainštalovať netstat na Fedora, CentOS a RHEL, spustite:

sudo dnf install net-tools

Netstat môžete spustiť na príkazovom riadku. V predvolenom nastavení vám zobrazí informácie, ako je protokol, adresa a stav pripojenia, ale možnosť -p pridá stĺpec, ktorý zobrazuje ID procesu a názov príkazu.

netstat -p

Keď ho spustíte, netstat zobrazí zoznam všetkých sieťových pripojení a potom sa ukončí. Pomocou možnosti -c môžete vidieť neustále aktualizovaný zoznam pripojení:

netstat -pc

Bolo by to podobné ako použitie programu orientovaného na obrazovku, ako je nethogs, ale výhodou tohto spôsobu je, že výstup môžete preniesť do iného programu, ako je grep alebo pager, aby ste ho preskúmali:

netstat -p | grep 'systemd'

Ak chcete vidieť všetky procesy so sieťovými pripojeniami vo vašom systéme, možno budete musieť spustiť netstat ako root:

sudo netstat 

Teraz môžete vidieť, ktoré aplikácie pre Linux pohlcujú vašu šírku pásma

Linux, rovnako ako mnoho moderných operačných systémov, je úzko spojený s internetom. Niekedy môže byť ťažké zistiť, ktoré procesy využívajú vašu šírku pásma. Pomocou nástrojov ako nethogs, lsof a netstat môžete sledovať procesy, ktoré majú otvorené spojenia.

Procesy sa niekedy kazia, dokonca aj s prepojeniami. V systéme Linux môžete jednoducho ukončiť akékoľvek nečestné procesy.