Úvod
port je komunikační koncový bod. Na úrovni softwaru je v rámci operačního systému port logická konstrukce, která identifikuje konkrétní proces nebo typ síťové služby. Port je identifikován pro každou kombinaci přenosového protokolu a adresy pomocí 16bitového čísla bez znaménka, známého jako číslo portu . Nejběžnější přenosové protokoly, které používají čísla portů, jsou Transmission Control Protocol (TCP) a User Datagram Protocol (UDP).
Port je také logická entita, která představuje koncový bod komunikace a je spojena s daným procesem nebo službou v operačním systému. V předchozích článcích jsme vysvětlili, jak zjistit seznam všech otevřených portů v Linuxu a jak zkontrolovat, zda jsou vzdálené porty dosažitelné pomocí příkazu Netcat.
1. Pomocí příkazu lsof
lsof příkaz (List Open Files) se používá k zobrazení seznamu všech otevřených souborů v systému Linux
Chcete-li jej nainstalovat do systému, spusťte
$ sudo apt-get install lsof #for Debian, Ubuntu and Mint
$ sudo yum install lsof #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/lsof #for Gentoo Linux
$ sudo pacman -S lsof #for Arch Linux
$ sudo zypper install lsof #for OpenSUSE
Chcete-li najít proces/službu naslouchající na konkrétním portu, spusťte níže příkaz:
[root@unixcop ~]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 12289 root 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24040 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24041 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
httpd 24042 apache 4u IPv6 70310 0t0 TCP *:http (LISTEN)
[root@unixcop ~]#
2. Pomocí příkazu netstat
Takže netstat příkaz odkazuje na (statistiky sítě) používané k zobrazení informací včetně síťových připojení, směrovacích tabulek a statistik rozhraní.
Instalace netstat:
$ sudo apt-get install net-tools #for Debian/Ubuntu & Mint
$ sudo dnf install net-tools #for CentOS/RHEL/Fedora and Rocky Linux
$ pacman -S netstat-nat #for Arch Linux
$ emerge sys-apps/net-tools #for Gentoo
$ sudo dnf install net-tools #for Fedora
$ sudo zypper install net-tools #for openSUSE
Můžete jej použít s grep příkaz k vyhledání procesu nebo služby naslouchající na konkrétním portu v Linuxu jako u níže uvedeného příkazu:
$ netstat -ultnp | grep -w ':80'
Ve výše uvedeném příkazu jsou příznaky.
l
– řekne netstatu, aby zobrazoval pouze naslouchající zásuvky.p
– umožňuje zobrazení ID procesu a názvu procesu.n
– přikáže mu zobrazit číselné adresy.t
– říká, že má zobrazit připojení TCP.grep -w
– zobrazuje shodu přesného řetězce (:80).
3. Použití příkazu fixační jednotky
fixační jednotka příkaz zobrazuje PID procesů používajících zadané soubory nebo systémy souborů.
Můžete jej nainstalovat pomocí:
$ sudo apt-get install psmisc #for Debian, Ubuntu and Mint
$ sudo yum install psmisc #for RHEL/CentOS/Fedora and Rocky Linux
$ sudo emerge -a sys-apps/psmisc #for Gentoo Linux
$ sudo pacman -S psmisc #for Arch Linux
$ sudo zypper install psmisc #for OpenSUSE
Proces/službu naslouchající na konkrétním portu můžete najít spuštěním příkazu:
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]#
Chcete-li najít název procesu pomocí čísla PID pomocí příkazu ps :
$ ps -p 2053 -o comm=
$ ps -p 2381 -o comm=
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]# ps -p 12289 -o comm=
httpd
[root@unixcop ~]# ps -p 24040 -o comm=
httpd
[root@unixcop ~]
Závěr
V této příručce znáte nejlepší způsoby, jak najít proces/službu naslouchající na konkrétním portu v Linuxu.