Crea sito
22 Ottobre 2020

Officine Informatiche Roma

ICT SERVICES ROMA – BAZAAR INFORMATICO

Cercare servizi in ascolto su una particolare porta in Linux

4 min read
Di seguito sono elencati quattro metodi per verificare quale servizio è in esecuzione in un determinato numero di porta.

Di seguito sono elencati quattro metodi per verificare quale servizio è in esecuzione in un determinato numero di porta.

Metodo 1 – Utilizzo di netstat

Questo è il modo più comunemente usato per trovare quale servizio è in ascolto su quale porta. Netstat è un’utilità della
riga di comando utilizzata per stampare connessioni di rete, tabelle di routing, statistiche di interfaccia, connessioni
mascherate e appartenenze multicast.

Netstat è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.

Per installarlo su Arch Linux e le sue varianti, eseguire:

$ sudo pacman -S net-tools
Su CentOS, RHEL:

$ sudo yum installa net-tools
Su Fedora:

$ sudo dnf installa net-tools
Su Debian, Ubuntu:

$ sudo apt installa net-tools
Una volta installato, eseguire il comando seguente per trovare quali servizi sono in ascolto su quali porte:

$ sudo netstat -tulpn

Output:

Connessioni Internet attive (solo server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stato PID / Nome programma
tcp 0 0 127.0.0.53:53 0.0.0.0:* ASCOLTA 665 / systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* ASCOLTA 1026 / sshd
tcp 0 0 0.0.0.0:8000 0.0.0.0:* ASCOLTA 2068 / python3
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ASCOLTA 1072 / mysqld
tcp6 0 0 ::: 22 ::: * ASCOLTA 1026 / sshd
tcp6 0 0 ::: 80 ::: * ASCOLTA 1062 / apache2
udp 0 0 127.0.0.53:53 0.0.0.0:* 665 / systemd-resolve
udp 0 0 192.168.225.22:68 0.0.0.0:* 647 / systemd-network
udp 0 0 192.168.225.53:68 0.0.0.0:* 647 / systemd-network
udp6 0 0 fe80 :: a00: 27ff: feff: 546 ::: * 647 / systemd-network
udp6 0 0 fe80 :: a00: 27ff: fe7e: 546 ::: * 647 / systemd-network

trova quali servizi sono in ascolto su quali porte utilizzano netstat in Linux

Come puoi vedere, un servizio python (in questo caso simpleHTTPserver) è in ascolto sulla porta numero 8000, il servizio
mysqld è in ascolto sulla porta 3306, il servizio ssh è in esecuzione sulla porta numero 22, apache2 è in esecuzione sulla
porta 80 e così via.

Qui,

-t flag mostra le connessioni tcp.
-u flag mostra le connessioni udp.
-l flag mostra le prese di ascolto.
-p flag mostra l’ID processo (PID) e il nome del processo di qualunque cosa stia usando quella porta.
-n flag mostra gli indirizzi numerici.
Il comando sopra elenca tutti i servizi e i numeri di porta su cui sono in ascolto. Cosa succede se si desidera trovare quale
servizio è in ascolto su una determinata porta? Ecco dove il comando grep è utile! Possiamo combinare i comandi netstat e
grep per filtrare l’output per un servizio specifico, ad esempio mysqld, come di seguito.

$ sudo netstat -tulpn | grep mysqld
[sudo] password per sk:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ASCOLTA 1076 / mysqld
Vedere? Il servizio mysqld è in ascolto sul numero di porta 3306.

Se conosci già il numero di porta, ma non sai quale servizio lo sta attualmente utilizzando, sostituisci semplicemente il
nome del servizio con il numero di porta come mostrato di seguito.

$ sudo netstat -tulpn | grep -w 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ASCOLTA 1076 / mysqld
Qui, -w flag mostra solo quelle righe che contengono corrispondenze che formano parole intere. In altre parole -w mostra
la corrispondenza esatta della stringa specificata.

Puoi anche usare -i per Ignorare le distinzioni tra maiuscole e minuscole, in modo che i caratteri che differiscono solo nel
caso corrispondano tra loro

$ sudo netstat -tulpn | grep -i 3306
È così semplice

Per maggiori dettagli, consultare le pagine man.

$ man netstat

Netstat è per lo più obsoleto. L’alternativa a netstat è “ss”.

 

Metodo 2 – Utilizzo del comando “ss”

ss è un’utilità da riga di comando per analizzare i socket. È un’alternativa a netstat e l’uso di “ss” è quasi uguale a “netstat”.
Viene preinstallato su Ubuntu e le sue varianti.

Per trovare quali servizi sono in ascolto su quali porte, eseguire:

$ sudo ss -tulpn
Uscita campione:

Netid State Recv-Q Send-Q Indirizzo locale: Porta Indirizzo peer: Porta
udp UNCONN 0 0 127.0.0.53% lo: 53 0.0.0.0:* utenti: ((“systemd-resolver”, pid = 671, fd = 12))
udp UNCONN 0 0

Metodo 3 – Utilizzo di lsof

Come dice il nome, lsof è un’utilità della riga di comando per elencare tutti i file aperti appartenenti a tutti i processi attivi.

Per installarlo su Linux, utilizzare i seguenti comandi in base al tipo di distribuzione utilizzato.

Su Arch Linux:

$ sudo pacman -S lsof
Su Debian, Ubuntu:

$ sudo apt installa lsof
Su CentOS, RHEL:

$ sudo yum installa lsof
Su Fedora:

$ sudo dnf installa lsof
Per trovare quali processi sono in esecuzione su quali porte, è sufficiente specificare il numero di porta come mostrato nel seguente comando:

$ sudo lsof -i: 80
Uscita campione:

COMANDO PID UTENTE TIPO FD MISURA DISPOSITIVO / OFF NOME NOME
apache2 1062 root 4u IPv6 20452 0t0 TCP *: http (ASCOLTA)
apache2 1087 www-data 4u IPv6 20452 0t0 TCP *: http (ASCOLTA)
apache2 1088 www-data 4u IPv6 20452 0t0 TCP *: http (ASCOLTA)
apache2 1089 www-data 4u IPv6 20452 0t0 TCP *: http (ASCOLTA)
apache2 1090 www-data 4u IPv6 20452 0t0 TCP *: http (ASCOLTA)
apache2 1094 www-data 4u IPv6 20452 0t0 TCP *: http (ASCOLTA)
Trova quale servizio è in ascolto su una porta particolare usando il comando lsof su Linux

Per maggiori dettagli, consultare le pagine man.

$ man lsof

Metodo 4: utilizzo del comando fuser

fuser è ancora un’altra utility da riga di comando per identificare i processi usando file o socket. Visualizza i PID dei processi utilizzando i file o i file system specificati.

È anche disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.

Per installarlo su Arch Linux, eseguire:

$ sudo pacman -S psmisc
Su Debian, Ubuntu:

$ sudo apt installa psmisc
Su CentOS, RHEL:

$ sudo yum installa psmisc
Su Fedora:

$ sudo dnf installa psmisc
Per prima cosa dobbiamo trovare il PID di un servizio o processo in ascolto su una determinata porta. Ad esempio, troverò il PID di un processo in ascolto sulla porta 3306 usando il comando:

$ sudo fuser 3306 / tcp
Vedrai un output come di seguito.

3306 / tcp: 1076
Qui, 1076 è il PID.

E poi scopri il processo reale usando il PID usando il comando:

$ ps -p 1076 -o comm =
mysqld
In alternativa, puoi usare -v flag per visualizzare i dettagli completi in un singolo comando.

$ sudo fuser -v 3306 / tcp
COMANDO DI ACCESSO PID UTENTE
3306 / tcp: mysql 1076 F …. mysqld
Trova quale servizio è in ascolto su una porta particolare utilizzando il comando fuser su Linux

Per maggiori dettagli, consultare le pagine man.

$ man fuser
Ora conosci quattro diversi strumenti per scoprire quali processi sono in ascolto su quali porte. Tutti e quattro sono facili da usare e disponibili nella maggior parte delle distribuzioni Linux. Se conosci altri strumenti, faccelo sapere nella sezione commenti qui sotto. Controllerò e aggiornerò questo elenco di conseguenza.

Translate »