Nástroj príkazového riadka LSOF je veľmi výhodný pre systémových administrátorov a vývojárov, pretože im umožňuje:
- Určite procesy, ktoré momentálne využívajú konkrétny súbor alebo port, čo je obzvlášť dôležité v prípade konfliktov portov
- Zistiť súbory, ktoré boli odstránené, ale sú stále otvorené procesmi, ktoré môžu viesť k zbytočnej spotrebe miesta; príkaz LSOF slúži na identifikáciu a riešenie takýchto prípadov
- Účinne pomáha pri odstraňovaní chýb, ako napríklad „port sa už používa“.
- Sledujte sieťovú aktivitu a otvorte sieťové pripojenia na účely monitorovania
- Preskúmajte vzory prístupu k súborom a prispejte k identifikácii potenciálnych porušení bezpečnosti
V tomto návode sa naučíte, ako používať príkaz LSOF na monitorovanie portov v reálnom čase.
Základná syntax príkazu LSOF
Syntax príkazu LSOF je nasledovná:
$ lsof [ možnosti ] [ mená ]
Možnosti sú príznaky, ktoré sa používajú s príkazom LSOF. Názvy predstavujú názvy súborov, PID (Process ID), mená používateľov alebo sieťové súbory (IPv4, IPv6). V závislosti od poskytnutých možností príkaz LSOF zobrazí zoznam otvorených súborov, ktoré zodpovedajú týmto názvom.
Monitorujte porty v reálnom čase pomocou príkazu LSOF
LSOF je štandardne súčasťou mnohých systémov Linux. Ak nie je nainštalovaný jeden z dostupných balíkov, musíte ho stiahnuť a nainštalovať ručne. Ak chcete skontrolovať inštaláciu LSOF vo vašom systéme, použite nasledujúci príkaz na zobrazenie nainštalovanej verzie:
$ lsof -v
Je dôležité poznamenať, že na použitie príkazu LSOF s príslušnými oprávneniami môžu niektoré informácie o procesoch a sieťových pripojeniach vyžadovať zvýšené oprávnenia superužívateľa a možno budete musieť použiť „sudo“ na spustenie príkazu s administrátorskými právami.
Uveďte zoznam sieťových súborov
Keď spustíte príkaz LSOF s voľbou „-i“, zobrazia sa informácie o procesoch, ktoré majú sieťové pripojenia, ako sú počúvajúce zásuvky alebo vytvorené pripojenia.
$ lsof –iPredchádzajúci príkaz zobrazí informácie o názve procesu (COMMAND), ID procesu (PID), používateľovi (USER), deskriptore súboru (FD), type pripojenia (TYPE), lokálnej a vzdialenej adrese a stave pripojenia. Mali by ste vidieť nasledujúci výstup:
Uveďte zoznam pripojení TCP
Výstup môžete filtrovať na základe špecifických kritérií, ako sú konkrétne typy pripojení alebo portov. Môžete napríklad použiť „lsof -i tcp“ na vypísanie iba procesov spojených s pripojením TCP.
$ lsof -i tcp: 1 - 1024Predchádzajúci príkaz filtruje informácie o procesoch, ktoré majú otvorené pripojenia TCP v rámci špecifikovaného rozsahu portov od 1 do 1024. Môže to byť užitočné na identifikáciu procesov, ktoré používajú dobre známe porty spojené s bežnými službami.
Monitorujte konkrétny port v reálnom čase
Pomocou LSOF môžete monitorovať konkrétny port v reálnom čase. Napríklad chcete monitorovať procesy súvisiace s „HTTP“ na porte 80, ktorý sa aktualizuje každé 3 sekundy. Ak to chcete urobiť, monitorujte port 80 v reálnom čase pomocou nasledujúceho príkazu:
$ lsof -i : 80 -r3
Monitorujte port SSHD 22 v reálnom čase
Ak chcete monitorovať všetky pripojenia SSHD, ktoré bežia na porte 22, spustite nasledujúci príkaz:
$ sudo lsof -i : 22 -r3Tento príkaz nepretržite monitoruje a každé 3 sekundy zobrazuje informácie o sieťových pripojeniach na porte 22 v reálnom čase. Toto je obzvlášť užitočné na sledovanie zmien, ako sú nové pripojenia SSH alebo odpojenia, ktoré sa vyskytujú v reálnom čase.
Monitorujte rozsah portov v reálnom čase
Ak chcete monitorovať informácie o procesoch v reálnom čase, ktoré majú otvorené pripojenia TCP v rámci špecifikovaného rozsahu portov od 1 do 1024, môžete použiť nasledujúci príkaz:
$ lsof -i tcp: 1 - 1024 -r3
Monitorujte všetky porty v reálnom čase
Pomocou príkazu LSOF môžete monitorovať všetky sieťové pripojenia v reálnom čase. Napríklad chcete spustiť nepretržité monitorovanie a zobrazenie informácií o sieťových pripojeniach v reálnom čase každých 5 sekúnd.
$ lsof -i -r5Nasledujúci výstup obsahuje podrobnosti o procesoch a ich pridružených sieťových zásuvkách v reálnom čase po každých 5 sekundách:
Podobne môžete pomocou príkazu LSOF monitorovať iba „zavedené“ spojenia:
$ lsof -i -A -r10
Záver
V tomto návode sme sa naučili monitorovať porty v reálnom čase pomocou príkazu LSOF. Tento príkaz môže tiež pomôcť správcom systému a ostatným používateľom systému Linux monitorovať sieťové pripojenia vrátane všetkých aktívnych alebo otvorených portov. Dúfame, že vám táto príručka pomôže pochopiť, ako používať príkaz LSOF s rôznymi možnosťami a monitorovať rôzne porty a procesy v reálnom čase.