Nástroj příkazového řádku LSOF je velmi přínosný pro systémové administrátory a vývojáře, protože jim umožňuje:
- Určete procesy, které aktuálně využívají konkrétní soubor nebo port, což je zvláště důležité v případě konfliktů portů
- Zjistit soubory, které byly odstraněny, ale jsou stále otevřené procesy, které mohou vést ke zbytečné spotřebě místa; příkaz LSOF slouží k identifikaci a adresování takových případů
- Účinně pomáhá při odstraňování chyb, například „port je již používán“.
- Sledujte aktivitu sítě a otevřete síťová připojení pro účely monitorování
- Prozkoumejte vzorce přístupu k souborům a přispějte k identifikaci potenciálních narušení bezpečnosti
V tomto tutoriálu se naučíte, jak používat příkaz LSOF ke sledování portů v reálném čase.
Základní syntaxe příkazu LSOF
Syntaxe příkazu LSOF je následující:
$ lsof [ možnosti ] [ jména ]
Volby jsou příznaky, které se používají s příkazem LSOF. Názvy představují názvy souborů, PID (Process ID), uživatelská jména nebo síťové soubory (IPv4, IPv6). V závislosti na poskytnutých možnostech zobrazí příkaz LSOF seznam otevřených souborů, které odpovídají těmto názvům.
Monitorujte porty v reálném čase pomocí příkazu LSOF
LSOF je standardně součástí mnoha systémů Linux. Pokud není nainstalován jeden z dostupných balíčků, musíte jej stáhnout a nainstalovat ručně. Chcete-li zkontrolovat instalaci LSOF ve vašem systému, použijte následující příkaz k zobrazení nainstalované verze:
$ lsof -v
Je důležité si uvědomit, že pro použití příkazu LSOF s příslušnými oprávněními mohou některé informace o procesech a síťových připojeních vyžadovat zvýšená oprávnění superuživatele a ke spuštění příkazu s právy správce může být nutné použít „sudo“.
Seznam síťových souborů
Když spustíte příkaz LSOF s volbou „-i“, zobrazí se informace o procesech, které mají síťová připojení, jako jsou naslouchající sokety nebo navázaná připojení.
$ lsof –iPředchozí příkaz zobrazí informace o názvu procesu (COMMAND), ID procesu (PID), uživateli (USER), deskriptoru souboru (FD), typu připojení (TYPE), lokální a vzdálené adrese a stavu připojení. Měli byste vidět následující výstup:
Vypište TCP spojení
Výstup můžete filtrovat na základě specifických kritérií, jako jsou konkrétní typy připojení nebo porty. Můžete například použít „lsof -i tcp“ k vypsání pouze procesů spojených s připojením TCP.
$ lsof -i tcp: 1 - 1024Předchozí příkaz filtruje informace o procesech, které mají otevřená připojení TCP v zadaném rozsahu portů od 1 do 1024. To může být užitečné pro identifikaci procesů, které používají známé porty spojené s běžnými službami.
Monitorujte konkrétní port v reálném čase
Pomocí LSOF můžete monitorovat konkrétní port v reálném čase. Chcete například sledovat procesy související s „HTTP“ na portu 80, který se aktualizuje každé 3 sekundy. Chcete-li to provést, monitorujte port 80 v reálném čase pomocí následujícího příkazu:
$ lsof -i : 80 -r3
Sledujte port SSHD 22 v reálném čase
Chcete-li monitorovat všechna připojení SSHD, která běží na portu 22, spusťte následující příkaz:
$ sudo lsof -i : 22 -r3Tento příkaz nepřetržitě monitoruje a každé 3 sekundy zobrazuje informace o síťových připojeních na portu 22 v reálném čase. To je užitečné zejména pro sledování změn, jako jsou nová připojení SSH nebo odpojení, jak k nim dochází v reálném čase.
Sledujte rozsah portů v reálném čase
Chcete-li v reálném čase sledovat informace o procesech, které mají otevřená připojení TCP v zadaném rozsahu portů od 1 do 1024, můžete použít následující příkaz:
$ lsof -i tcp: 1 - 1024 -r3
Monitorujte všechny porty v reálném čase
Pomocí příkazu LSOF můžete sledovat všechna síťová připojení v reálném čase. Chcete například nepřetržitě sledovat a každých 5 sekund zobrazovat informace o síťových připojeních v reálném čase.
$ lsof -i -r5Následující výstup obsahuje podrobnosti o procesech a jejich přidružených síťových zásuvkách v reálném čase po každých 5 sekundách:
Podobně můžete také sledovat pouze „navázaná“ spojení pomocí příkazu LSOF:
$ lsof -i -A -r10
Závěr
V tomto tutoriálu jsme se naučili monitorovat porty v reálném čase pomocí příkazu LSOF. Tento příkaz může také pomoci správcům systému a dalším uživatelům Linuxu monitorovat síťová připojení, včetně všech aktivních nebo otevřených portů. Doufáme, že vám tato příručka pomůže pochopit, jak používat příkaz LSOF s různými možnostmi a sledovat různé porty a procesy v reálném čase.