Come utenti Linux, a volte abbiamo bisogno di sapere su quale numero di porta è in ascolto un particolare processo. Tutte le porte sono associate a un ID processo oa un servizio in un sistema operativo. Allora come troviamo questa porta? In questo articolo presenteremo tre diversi metodi che puoi utilizzare per scoprire su quale porta è in ascolto un processo.
Abbiamo eseguito i comandi e le procedure descritte in questo articolo su un sistema Ubuntu 22.04 LTS.
Metodo 1:utilizzo del comando netstat
Netstat, l'utilità delle statistiche di rete, viene utilizzata per visualizzare informazioni sulle connessioni di rete. Ciò include informazioni sulle statistiche dell'interfaccia, tabelle di routing e molto altro. Questa utility è disponibile sulla maggior parte dei sistemi Linux, quindi la utilizziamo per scoprire quali porte stanno utilizzando determinati processi sul sistema.
Per utilizzare il comando netstat, devi installare l'utilità net-tools, se non è già installata sul tuo sistema, utilizzando il seguente comando:
$ sudo apt install net-tools
Quindi esegui il seguente comando:
$ sudo netstat -ltnp
Il comando precedente fornisce informazioni su netstat in base alle seguenti funzionalità:
- l:visualizza solo le prese di ascolto
- t:visualizza la connessione TCP
- n:visualizza gli indirizzi in forma numerica
- p:visualizza ID processo/Nome programma
Ad esempio, nell'output sopra del comando netstat, il programma Apache2 con ID processo 950 è in esecuzione sulla porta numero 80.
Puoi anche filtrare le statistiche per una porta specifica incorporando la funzione grep nel tuo comando.
Esempio:
$ sudo netstat -ltnp | grep -w ':80'
Questo comando ti dirà in modo specifico quale processo è in esecuzione sulla porta numero 80.
Metodo 2:utilizzo del comando lsof
L'utilità lsof o Elenco dei file aperti aiuta a elencare tutti i file aperti sul tuo sistema Linux. Possiamo usare questa utility per visualizzare tutti i processi aperti su una porta specifica.
Per utilizzare il comando lsof, è necessario installare l'utilità lsof se non è già installata sul sistema tramite il comando seguente:
$ sudo apt install lsof
Usiamo lsof per visualizzare il servizio in ascolto su una porta specifica.
Esempio:
$ sudo lsof -i :80
Questo comando elencherà tutti i processi che utilizzano la porta TCP numero 80.
Metodo 3:utilizzo del comando fusore
Il comando fuser mostra quali ID di processo stanno utilizzando i file, i socket oi file system con nome. Possiamo usare questo comando per visualizzare gli ID di processo in esecuzione su una porta TCP specifica.
Per utilizzare il comando fuser, devi installare l'utilità psmisc se non è già installata sul tuo sistema tramite il seguente comando:
$ sudo apt install psmisc
Vediamo tutti gli ID di processo in esecuzione sulla porta TCP 3306 tramite il seguente comando:
$ sudo fuser 3306/tcp
Puoi specificare qualsiasi numero di porta in questo comando per visualizzare i suoi processi di ascolto.
Nell'output sopra, puoi vedere che l'ID processo 975 è in ascolto su TCP 3306.
Per visualizzare a quale programma corrisponde questo ID processo, eseguire il comando seguente:
Sintassi:
$ ps -p [processID] -o comm=
Nel nostro caso:
$ ps -p [975] -o comm=
L'output mostra che l'ID di processo 975 corrisponde al nome del programma MySDLd. Pertanto, l'ID di processo 975 del programma MySQLd è in ascolto sulla porta numero 3306.
Attraverso i tre metodi che hai appreso in questo articolo, puoi facilmente visualizzare su quale porta TCP è in ascolto un processo specifico su Linux.