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.

netstat

Ad 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_WAIT

Quindi, 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 -n

Ad 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      ESTABLISHED

Quindi 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 -t

Ad 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 ESTABLISHED

D4. Come fare in modo che netstat visualizzi solo le connessioni udp

Questo puoi farlo utilizzando l’opzione della riga di comando -u.

netstat -u

D5. Come fare in modo che netstat mostri solo i socket in ascolto?

Questo è possibile utilizzando l’opzione della riga di comando -l.

netstat -l

Ad 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 -p

Ad 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/firefox

Vedi 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 -s

In 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 -r

Di 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 wlx18a6f713679b

Nota 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.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.