Introduzione
Un porto è un punto finale di comunicazione. A livello software, all'interno di un sistema operativo, una porta è un costrutto logico che identifica un processo specifico o un tipo di servizio di rete. Una porta è identificata per ogni protocollo di trasporto e combinazione di indirizzi da un numero senza segno a 16 bit, noto come numero di porta . I protocolli di trasporto più comuni che utilizzano i numeri di porta sono il TCP (Transmission Control Protocol) e l'UDP (User Datagram Protocol).
Anche la porta è un'entità logica che rappresenta un punto finale di comunicazione ed è associata a un determinato processo o servizio in un sistema operativo. In articoli precedenti, abbiamo spiegato come scoprire l'elenco di tutte le porte aperte in Linux e come verificare se le porte remote sono raggiungibili utilizzando il comando Netcat.
1. Usando lsof Command
lsof Il comando (Elenca file aperti) viene utilizzato per elencare tutti i file aperti su un Linux
Per installarlo sul tuo sistema, esegui
$ 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
Per trovare il processo/servizio in ascolto su una porta particolare, esegui il comando seguente:
[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. Utilizzo del comando netstat
Quindi netstat comando si riferisce a (statistiche di rete) utilizzato per mostrare informazioni tra cui connessioni di rete, tabelle di routing e statistiche dell'interfaccia.
Per installare 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
Puoi usarlo con grep comando per trovare il processo o il servizio in ascolto su una porta particolare in Linux come con il comando seguente:
$ netstat -ultnp | grep -w ':80'
Nel comando precedente, i flag.
l
– dice a netstat di mostrare solo i socket in ascolto.p
– abilita la visualizzazione dell'ID del processo e del nome del processo.n
– gli indica di mostrare gli indirizzi numerici.t
– gli dice di visualizzare le connessioni TCP.grep -w
– mostra la corrispondenza della stringa esatta (:80).
3. Utilizzo del comando fusore
fusore comando mostra i PID dei processi che utilizzano i file oi file system specificati.
Puoi installarlo con:
$ 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
Puoi trovare il processo/servizio in ascolto su una porta particolare eseguendo il comando:
[root@unixcop ~]# fuser 80/tcp
80/tcp: 12289 24040 24041 24042
[root@unixcop ~]#
Per trovare il nome del processo utilizzando il numero PID con il comando 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 ~]
Conclusione
In questa guida conosci i modi migliori per trovare il processo/servizio in ascolto su una particolare porta in Linux.