V Linuxu je port logický komunikační koncový bod, který je spojen s běžící službou v operačním systému. Porty jsou zcela spravovány operačním systémem a každý port je spojen s konkrétní službou. Porty pomáhají správcům identifikovat, které služby běží v systému.
Každý port má obvykle přiděleno číslo. Čísla portů se pohybují od 0 do 65535. Porty nižší než 1024 se označují jakoprivilegované porty a používají se pro speciální protokoly. Například webový provoz (HTTP) prochází portem 80, zatímco SSH naslouchá portu 22. Porty větší než 1024 se nazývají neprivilegované porty a lze je použít pro testovací účely. Svůj webový server můžete například nakonfigurovat tak, aby běžel na jednom z těchto portů namísto výchozího čísla portu.
V této příručce se zaměříme na to, jak můžete zjistit, které procesy na kterých portech v Linuxu naslouchají. Pro demonstrační účely jsme použili Ubuntu 20.04.
Použití příkazu netstat Linux
Linuxový příkaz Netstat je portmanem slov síť a statistika. Jak jste možná uhodli, je to nástroj příkazového řádku pro zobrazení statistik sítě a protokolu v systému Linux. Navíc vám umožňuje vytisknout směrovací tabulku, stav koncových bodů TCP a UDP a informace o vašich síťových rozhraních.
Chcete-li zobrazit, který proces naslouchá konkrétnímu portu, použijte syntaxi níže:
# netstat -pnltu | grep -w port_number
Pojďme si rozebrat seznam možností:
p – Zobrazuje název a ID procesu
n – Zobrazí adresu portu
l – Zobrazí pouze poslechové zásuvky
t – Vytiskne připojení TCP
u – Vytiskne připojení UDP
V níže uvedeném příkladu hledáme službu naslouchající na portu 80.
# netstat -pnltu | grep -w 80
Výstup indikuje, že je to služba webového serveru Apache, která naslouchá na portu 80.
Chcete-li zkontrolovat službu naslouchající na portu 3306. Proveďte:
# netstat -pnltu | grep -w 3306
Použití příkazu lsof
Příkaz lsof, zkratka pro Seznam otevřených souborů, je příkaz používaný k odhalování otevřených souborů a adresářů. Pomocí -i může odhalit služby naslouchající konkrétnímu portu.
V níže uvedeném příkladu hledáme službu naslouchající TCP portu 22, což je služba SSH (Secure Shell).
# lsof -i TCP:22
Použití příkazu fixační jednotka
Nakonec tu máme příkaz zapékací jednotky. Nástroj fixační jednotky je inteligentní nástroj příkazového řádku, který se používá k vyhledání procesů pomocí soketu, souboru nebo alternativně adresáře. Dělá také mnoho věcí, jako je zobrazení typu procesu, PID každého procesu, uživatele, který proces vlastní.
Chcete-li pomocí fixační jednotky zjistit, jak služba naslouchá portu, nejprve zjistěte PID procesu, jak je znázorněno.
# fuser 22/tcp
Poté pokračujte a vyvolejte příkaz ps, abyste odhalili název služby. Všimněte si, že 34093 je PID procesu, který jsme získali z předchozího příkazu
# ps -p 34093 -o comm=
Závěr
Ilustrovali jsme 3 způsoby, které můžete použít k odhalení procesů, které naslouchají konkrétním portům ve vašem systému Linux. Doufáme, že to nyní můžete udělat bez problémů.