Přehled
všichni víme, že port lze použít pouze jednu aplikaci nebo službu ve stejnou dobu. Někdy potřebujeme vědět, který proces poslouchá na konkrétním portu.
v tomto tutoriálu uvidíme různé přístupy k nalezení procesu poslechu na konkrétním portu v Linuxu.
oprávnění root
v Linuxu může podrobné informace o procesu získat pouze uživatel root nebo vlastník procesu.,
když chceme zkontrolovat proces poslechu na konkrétním portu, nevíme, komu proces patří.
se svolením root můžeme získat všechny potřebné informace o procesu, například identifikátor procesu.
proto možná budeme muset spustit naše síťové nástroje u uživatele root (nebo pomocí sudo).
pomocí netstat
příkaz netstat je členem balíčku net-tools.
v minulosti byl předinstalován v mnoha distribucích Linuxu. Balíček net-tools však nebyl aktualizován od roku 2011.,
vzhledem k nedostatku podpory moderních funkcí jádra Linuxu a dalších důvodů se balíček net-tools stal zastaralým.
to znamená, že samotný netstat je stále široce používán, takže se podívejme, jak to může pomoci.
nejprve se podívejme na příklad výstupu příkazu netstat:
s možnostmi ltnup, netstat nám ukazuje všechny použité Porty ve výše uvedeném příkladu.,
Pojďme se podívat na to, co volby znamenají:
- l – show pouze poslech zásuvky
- t – show TCP spojení
- n – ukáže adresy v číselné podobě
- u – show UDP spojení
- p – ukázat id procesu/název programu
podíváme-Li se na výše uvedený výstup, poslední sloupec je přesně to, co hledáme: PID a název Procesu naslouchání na určitém portu.
můžeme jednoduše přenést výstup netstat do příkazu grep, abychom získali informace o procesu na jednotlivém portu.,
například, pojďme se podívat, který proces naslouchá na portu 22:
root# netstat -ltnup | grep ':22'tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 575/sshd
Použití ss
V předchozí části jsme diskutovali, že net-tools balíček je zastaralý.
příkaz ss je nahrazení příkazu netstat.
Nyní se podívejme, jak používat ss příkaz zobrazit, který proces naslouchá na portu 22:
Pokud se podíváme na konkrétní možnosti, zjistíme, že možností máme přešel na velitelství ss jsou stejné, jako jsme předán netstat.,
jediný rozdíl je v tom, že jsme využívali státní filtr SS utility namísto dalšího procesu grep k filtrování výstupu.
podobně jako výstup příkazu netstat leží očekávané informace o procesu také v posledním sloupci.
pomocí příkazu lsof
příkaz lsof může vypsat všechny otevřené soubory v systému Linux.,
můžeme použít příkaz lsof najít proces pomocí konkrétní port, s -i :port_number možnosti:
root# lsof -i :22COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 575 root 3u IPv4 19373 0t0 TCP *:ssh (LISTEN)
první čtyři sloupce ve výše uvedeném výstupu řekněte nám název procesu naslouchání na portu 22 a jeho PID, majitel a deskriptor souboru.
můžeme projít více -i :port příkaz lsof zjistit procesy poslech na různé porty:
root# lsof -i :22 -i :68COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 575 root 3u IPv4 19373 0t0 TCP *:ssh (LISTEN)dhcpcd 8822 root 10u IPv4 49601 0t0 UDP *:bootpc
Použití fixační jednotky
fixační nástroj zobrazí procesy, které jsou pomocí pojmenované soubory, sockety nebo souborové systémy., Je součástí balíčku psmisc a ve výchozím nastavení je předinstalován na mnoha moderních distribucích Linuxu.
můžeme použít k zobrazení informací o procesu běžícím na konkrétním portu. Opět zjistíme PID zpracování TCP portu 22:
výše uvedený výstup je velmi přímočarý. Víme, že proces s PID 575 poslouchá na portu TCP 22.
nicméně nám neříká podrobné informace o procesu, například Jaký je název procesu 575? kdo vlastní tento proces? a tak dále.,
chceme-Li získat více informací o procesu, můžeme projít „-v“ možnost fixační příkaz mít podrobný výstup:
root# fuser -v 22/tcp USER PID ACCESS COMMAND22/tcp: root 575 F.... sshd
Pomocí fixační jednotky příkaz, můžeme také zkontrolovat běžící proces informace o více TCP nebo UDP portů v jednom záběru:
root# fuser -v 22/tcp 68/udp USER PID ACCESS COMMAND22/tcp: root 575 F.... sshd68/udp: root 8822 F.... dhcpcd
Závěr
V tomto krátkém článku, jsme se dozvěděli, čtyři různé Linux příkazového řádku nástrojů s příklady zjistit informace o procesu naslouchání na určitém portu.,
jsou to všechny velmi výkonné nástroje, které mají v našem arzenálu na příkazovém řádku Linuxu.