Linux, Networking · 8 min read · Sep 19, 2025
Tutorial sul comando netstat di Linux per principianti (8 esempi)
Se sei nuovo nella riga di comando di Linux e sei interessato ad apprendere cose di rete, ci sono molte utilità da riga di comando di cui dovresti essere a conoscenza. Uno di questi strumenti è netstat. In questo articolo, discuteremo di questo comando utilizzando alcuni esempi facili da comprendere.
Ma prima di farlo, vale la pena menzionare che tutti questi esempi sono stati testati su una macchina Ubuntu 16.04 LTS.
Comando netstat di Linux
Il comando netstat ti consente di stampare le connessioni di rete, le tabelle di routing, le statistiche delle interfacce, le connessioni mascherate e le appartenenze multicast. Di seguito è riportata la sua sintassi:
netstat [OPZIONI]Ecco come la pagina man lo spiega:
Netstat stampa informazioni sul sottosistema di rete di Linux. Il
tipo di informazioni stampate è controllato dal primo argomento, come
segue:
(nessuno)
Per impostazione predefinita, netstat visualizza un elenco di socket aperti. Se non
specifichi alcuna famiglia di indirizzi, verranno stampati i socket attivi di tutte le famiglie di indirizzi configurate.
--route , -r
Visualizza le tabelle di routing del kernel. Vedi la descrizione in route(8) per
dettagli. netstat -r e route -e producono lo stesso output.
--groups , -g
Visualizza informazioni sull'appartenenza ai gruppi multicast per IPv4 e IPv6.
--interfaces, -i
Visualizza una tabella di tutte le interfacce di rete.
--masquerade , -M
Visualizza un elenco di connessioni mascherate.
--statistics , -s
Visualizza statistiche riassuntive per ogni protocollo.Di seguito sono riportati alcuni esempi in stile Q&A che dovrebbero darti una buona idea di come funziona il comando netstat.
D1. Come utilizzare il comando netstat?
L’uso di base è abbastanza semplice: basta eseguire il comando netstat senza alcuna opzione.
netstatAd esempio, nel mio caso, è stato prodotto il seguente output:
Connessioni Internet attive (senza server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo estero Stato
tcp 0 0 192.168.1.7:59510 mails11.telegram.:https ESTABLISHED
tcp 0 0 192.168.1.7:57318 13.70.5.200:https ESTABLISHED
tcp 0 1 192.168.1.7:51238 52.114.32.7:https SYN_SENT
tcp 390 0 192.168.1.7:60392 del03s09-in-f10.1:https ESTABLISHED
tcp 0 1 192.168.1.7:51240 52.114.32.7:https SYN_SENT
tcp 0 0 192.168.1.7:50196 del03s10-in-f10.1:https TIME_WAIT
tcp 0 0 192.168.1.7:41996 maa05s05-in-f4.1e:https TIME_WAIT
tcp 0 0 192.168.1.7:56680 wa-in-f94.1e100.n:https ESTABLISHED
tcp 0 0 192.168.1.7:54578 del03s10-in-f14.1:https TIME_WAIT
tcp 0 0 192.168.1.7:51310 del03s10-in-f2.1e:https TIME_WAITQuindi, per impostazione predefinita, il comando visualizza un elenco di tutti i socket aperti.
D2. Come fare in modo che netstat mostri indirizzi numerici?
Per impostazione predefinita, il comando netstat cerca di determinare nomi simbolici di host, porte o utenti. Questo può rallentare lo strumento. Tuttavia, se ti va bene con valori numerici, puoi far sì che lo strumento produca valori numerici utilizzando l’opzione della riga di comando -n.
netstat -nAd esempio, nel mio caso, è stato prodotto il seguente output:
Connessioni Internet attive (senza server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo estero Stato
tcp 0 0 192.168.1.7:59510 149.154.171.22:443 ESTABLISHED
tcp 0 0 192.168.1.7:57318 13.70.5.200:443 ESTABLISHED
tcp 0 0 192.168.1.7:51682 52.114.32.7:443 TIME_WAIT
tcp 0 0 192.168.1.7:54884 172.217.161.14:443 TIME_WAIT
tcp 0 0 192.168.1.7:35112 172.217.161.5:443 ESTABLISHED
tcp 0 0 192.168.2.97:45662 148.251.237.53:21 ESTABLISHED
tcp 0 0 192.168.1.7:50892 149.154.164.224:443 ESTABLISHED
tcp 0 0 192.168.1.7:58772 172.217.194.189:443 TIME_WAIT
tcp 0 1 192.168.1.7:47728 144.76.158.93:443 SYN_SENT
tcp 0 1 192.168.1.7:47730 144.76.158.93:443 SYN_SENT
tcp 0 0 192.168.1.7:59548 149.154.171.22:443 ESTABLISHED
tcp 0 0 192.168.1.7:35818 169.55.74.50:443 ESTABLISHED
tcp 0 0 192.168.1.7:50888 149.154.164.224:443 ESTABLISHED
tcp 0 0 192.168.1.7:44156 152.195.11.6:443 ESTABLISHED
tcp 0 0 192.168.1.7:58478 52.229.174.94:443 ESTABLISHED
tcp 52 0 127.0.0.1:60342 127.0.1.1:139 ESTABLISHED
tcp 0 0 192.168.1.7:58820 172.217.161.3:443 ESTABLISHED
tcp 0 0 192.168.1.7:45588 52.175.17.224:443 TIME_WAIT
tcp 0 0 192.168.1.7:50890 149.154.164.224:443 ESTABLISHED
tcp 0 0 192.168.1.7:58192 52.77.195.144:443 ESTABLISHED
tcp 0 0 192.168.1.7:54224 172.217.31.2:443 ESTABLISHED
tcp 0 0 127.0.1.1:139 127.0.0.1:60342 ESTABLISHED
tcp 0 0 192.168.1.7:34500 192.241.190.153:443 ESTABLISHED
tcp 0 0 192.168.1.7:54888 172.217.161.14:443 ESTABLISHEDQuindi puoi vedere che solo valori numerici sono stati prodotti nell’output (nella colonna Indirizzo estero) questa volta.
D3. Come fare in modo che netstat visualizzi solo le connessioni tcp?
Questo puoi farlo utilizzando l’opzione della riga di comando -t.
netstat -tAd esempio, nel mio caso, è stato prodotto il seguente output:
Connessioni Internet attive (senza server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo estero Stato
tcp 0 0 192.168.1.7:44236 152.195.11.6:https ESTABLISHED
tcp 0 0 192.168.1.7:59510 mails11.telegram.:https ESTABLISHED
tcp 0 0 192.168.1.7:57318 13.70.5.200:https ESTABLISHED
tcp 0 0 192.168.1.7:42706 maa05s05-in-f4.1e:https ESTABLISHED
tcp 0 0 192.168.1.7:51984 del03s10-in-f2.1e:https ESTABLISHED
tcp 0 0 192.168.1.7:51786 52.114.32.7:https ESTABLISHED
tcp 0 0 192.168.1.7:52294 xx-fbcdn-shv-01-m:https ESTABLISHED
tcp 0 0 192.168.1.7:54372 del03s01-in-f2.1e:https ESTABLISHED
tcp 0 1 192.168.1.7:47788 hyperserver.semse:https SYN_SENT
tcp 0 0 192.168.1.7:52298 xx-fbcdn-shv-01-m:https ESTABLISHED
tcp 0 0 192.168.1.7:51840 149.154.164.224:https TIME_WAIT
tcp 0 0 192.168.1.7:35258 del03s10-in-f1.1e:https ESTABLISHED
tcp 0 0 192.168.2.97:45662 blog.gsmarena.com:ftp ESTABLISHED
tcp 0 0 192.168.1.7:50728 del03s10-in-f10.1:https TIME_WAIT
tcp 0 0 192.168.1.7:56468 del03s09-in-f3.1e:https ESTABLISHED
tcp 0 0 192.168.1.7:50892 149.154.164.224:https ESTABLISHED
tcp 0 0 192.168.1.7:45670 52.175.17.224:https ESTABLISHED
tcp 0 0 192.168.1.7:55180 del03s10-in-f14.1:https TIME_WAIT
tcp 0 1 192.168.1.7:47790 hyperserver.semse:https SYN_SENT
tcp 0 0 192.168.1.7:59548 mails11.telegram.:https ESTABLISHED
tcp 0 0 192.168.1.7:35818 32.4a.37a9.ip4.st:https ESTABLISHED
tcp 0 0 192.168.1.7:50888 149.154.164.224:https ESTABLISHED
tcp 0 0 192.168.1.7:33360 del03s10-in-f13.1:https TIME_WAIT
tcp 0 0 192.168.1.7:52332 207.46.140.70:https ESTABLISHED
tcp 0 0 192.168.1.7:58478 52.229.174.94:https ESTABLISHED
tcp 0 0 192.168.1.7:54374 del03s01-in-f2.1e:https TIME_WAIT
tcp 0 0 192.168.1.7:50216 104.24.1.68:https TIME_WAIT
tcp 52 0 localhost:60342 ansh:netbios-ssn ESTABLISHED
tcp 0 0 192.168.1.7:50890 149.154.164.224:https ESTABLISHED
tcp 0 0 192.168.1.7:55200 del03s10-in-f14.1:https TIME_WAIT
tcp 0 0 192.168.1.7:54224 del03s01-in-f2.1e:https ESTABLISHED
tcp 0 0 ansh:netbios-ssn localhost:60342 ESTABLISHED
tcp 0 0 192.168.1.7:55212 del03s10-in-f14.1:https TIME_WAIT
tcp 0 1 192.168.1.7:47800 hyperserver.semse:https SYN_SENT
tcp 0 0 192.168.1.7:45668 52.175.17.224:https ESTABLISHED
tcp 0 0 192.168.1.7:58878 del03s10-in-f3.1e:https TIME_WAIT
tcp 0 0 192.168.1.7:34500 do-11.lastpass.co:https ESTABLISHED
tcp 0 0 192.168.1.7:41844 a23-35-40-198.dep:https ESTABLISHEDD4. Come fare in modo che netstat visualizzi solo le connessioni udp
Questo puoi farlo utilizzando l’opzione della riga di comando -u.
netstat -uD5. Come fare in modo che netstat mostri solo i socket in ascolto?
Questo è possibile utilizzando l’opzione della riga di comando -l.
netstat -lAd esempio, il seguente output è stato prodotto nel mio caso:
Connessioni Internet attive (solo server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo estero Stato
tcp 0 0 ansh:domain *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 *:microsoft-ds *:* LISTEN
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
tcp6 0 0 [::]:microsoft-ds [::]:* LISTEN
tcp6 0 0 [::]:netbios-ssn [::]:* LISTEN
...
...
...D6. Come fare in modo che netstat mostri nome e PID dei programmi?
Nel caso tu voglia che netstat mostri il nome degli ID di processo dei processi a cui appartiene ciascun socket, utilizza l’opzione della riga di comando -p.
netstat -pAd esempio:
Connessioni Internet attive (senza server)
Proto Recv-Q Send-Q Indirizzo locale Indirizzo estero Stato PID/Nome programma
tcp 0 0 192.168.1.7:57318 13.70.5.200:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:36732 13.76.170.95:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:52050 149.154.164.224:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:55974 del03s10-in-f14.1:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:52074 149.154.164.224:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:60590 mails11.telegram.:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:52254 149.154.164.224:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.2.97:45662 blog.gsmarena.com:ftp ESTABLISHED 3160/filezilla
tcp 0 0 192.168.1.7:35818 32.4a.37a9.ip4.st:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:52528 52.114.32.7:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:55950 del03s10-in-f14.1:https ESTABLISHED 3247/firefox
tcp 68 0 localhost:60342 ansh:netbios-ssn ESTABLISHED 2625/gvfsd-smb-brow
tcp 0 0 192.168.1.7:44974 152.195.11.6:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:36730 13.76.170.95:https ESTABLISHED 3247/firefox
tcp 0 0 ansh:netbios-ssn localhost:60342 ESTABLISHED -
tcp 0 0 192.168.1.7:52732 del03s10-in-f2.1e:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:60314 52.229.174.94:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:53072 207.46.140.70:https ESTABLISHED 3247/firefox
tcp 0 0 192.168.1.7:34500 do-11.lastpass.co:https ESTABLISHED 3247/firefoxVedi l’ultima colonna per le informazioni su PID/nome programma.
D7. Come fare in modo che netstat stampi statistiche di rete?
Questo può essere fatto utilizzando l’opzione della riga di comando -s.
netstat -sIn questo caso, lo strumento produce informazioni come il totale dei pacchetti ricevuti, scartati, consegnati e molto altro. Di seguito è riportato un esempio di output quando è stata utilizzata l’opzione della riga di comando -s.
Ip:
592215 pacchetti totali ricevuti
41 con indirizzi non validi
0 inoltrati
0 pacchetti in arrivo scartati
580699 pacchetti in arrivo consegnati
539118 richieste inviate
627 pacchetti in uscita scartati
482 scartati a causa di percorso mancante
2 frammenti falliti
Icmp:
2337 messaggi ICMP ricevuti
6 messaggi ICMP in ingresso falliti.
Istogramma ICMP in ingresso:
destinazione irraggiungibile: 2337
3917 messaggi ICMP inviati
0 messaggi ICMP falliti
Istogramma ICMP in uscita:
destinazione irraggiungibile: 3917
IcmpMsg:
InType3: 2337
OutType3: 3917
Tcp:
10943 aperture di connessioni attive
127 aperture di connessione passive
38 tentativi di connessione falliti
467 ripristini di connessione ricevuti
34 connessioni stabilite
443643 segmenti ricevuti
414589 segmenti inviati
6929 segmenti ritrasmessi
428 segmenti errati ricevuti.
11713 ripristini inviati
...
...
...D8. Come fare in modo che netstat visualizzi la tabella di routing del kernel?
Questo può essere fatto utilizzando l’opzione della riga di comando -r.
netstat -rDi seguito è riportato l’output prodotto nel mio caso:
Tabella di routing IP del kernel
Destinazione Gateway Genmask Flags MSS Window irtt Interfaccia
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlx18a6f713679b
link-local * 255.255.0.0 U 0 0 0 wlx18a6f713679b
192.168.1.0 * 255.255.255.0 U 0 0 0 wlx18a6f713679bNota che netstat -r e route -e producono lo stesso output.
Conclusione
Quindi, come avrai capito fino ad ora, il comando netstat è uno strumento molto importante. Fornisce molte funzionalità: abbiamo appena grattato la superficie qui. Una volta che hai finito di esercitarti su tutto ciò di cui abbiamo discusso in questo tutorial, vai alla pagina man dello strumento per ulteriori informazioni.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.