Uso del comando netstat su Linux

Scopri cosa sono il comando netstat e alcuni degli esempi in tempo reale.


netstat (statistiche di rete) è uno strumento da riga di comando che visualizza connessioni di rete (sia in entrata che in uscita), tabelle di routing e una serie di statistiche dell’interfaccia di rete.

È disponibile su sistemi operativi Linux, Unix-like e Windows. netstat è potente e può essere uno strumento utile per risolvere problemi relativi alla rete e verificare le statistiche di connessione.

Se digiti netstat -help, otterrai le seguenti linee guida per l’uso.

[[Email protected] ~] # netstat -help
utilizzo: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [ritardo]

-r, –route mostra la tabella di routing
-I, –interfaces = visualizza la tabella di interfaccia per
-i, –interfaces mostra la tabella di interfaccia
-g, –groups visualizza le appartenenze ai gruppi multicast
-s, –statistics mostra statistiche di rete (come SNMP)
-M, –masquerade mostra connessioni mascherate

-v, –verbose essere prolisso
-W, –wide non tronca gli indirizzi IP
-n, –numerico non risolve i nomi
–gli host numerici non risolvono i nomi degli host
–le porte numeriche non risolvono i nomi delle porte
–gli utenti numerici non risolvono i nomi utente
-N, – simboli hardware risolti simbolici
-e, –extend mostra altre / maggiori informazioni
-p, – i programmi visualizzano il nome PID / programma per i socket
-o, –timer visualizza i timer
-c, – elenco continuo continuo

-l, – ascolto dei socket del server di ascolto del display
-a, –all mostra tutte le prese (impostazione predefinita: connessa)
-F, –fib visualizza la base di informazioni di inoltro (impostazione predefinita)
-C, –cache visualizza la cache di routing invece di FIB
-Z, –context mostra il contesto di sicurezza SELinux per i socket

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= Usa ‘-6 | -4’ o ‘-A’ o ‘-‘; impostazione predefinita: inet
Elenco di possibili famiglie di indirizzi (che supportano il routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[Email protected] ~] #

Lascia che ti mostri alcuni degli esempi del comando. I seguenti sono testati su RHEL / CentOS, ma non vedo alcun motivo per non lavorare su un’altra distro come Ubuntu.

Connessione stabilita

Se stai cercando tutte le connessioni stabilite dal server.

[[Email protected] ~] # netstat -natu | grep “STABILITO”
tcp 0 21 68.183.37.102:22 222.186.31.135:21714 STABILITO
tcp 0 36 68.183.37.102:22 52.148.155.182:49859 STABILITO
tcp 0 0 68.183.37.102:22 61.177.142.158:55481 STABILITO
[[Email protected] ~] #

Se hai molte connessioni stabilite e sei interessato a cercare uno degli IP, puoi usare un altro grep.

[[Email protected] ~] # netstat -natu | grep “STABILITO” | grep 61.177.142.158
tcp 0 1280 68.183.37.102:22 61.177.142.158:33932 STABILITO
[[Email protected] ~] #

Connessione d’ascolto

Supponiamo che tu abbia avviato un servizio e che dovrebbe essere in ascolto su un determinato IP: porta, questo sarebbe utile per verificare.

[[Email protected] ~] # netstat -an | grep ‘LISTEN’
tcp 0 0 127.0.0.1:25 0.0.0.0:* ASCOLTA
tcp 0 0 0.0.0.0:111 0.0.0.0:* ASCOLTA
tcp 0 0 0.0.0.0:22 0.0.0.0:* ASCOLTA
tcp6 0 0 ::: 111 ::: * ASCOLTA
tcp6 0 0 ::: 80 ::: * ASCOLTA
tcp6 0 0 ::: 22 ::: * ASCOLTA
[[Email protected] ~] #

Oppure, puoi usare l’argomento -l per mostrare tutte le prese di ascolto.

[[Email protected] ~] # netstat -l
Connessioni Internet attive (solo server)
Proto Recv-Q Send-Q Indirizzo locale Stato indirizzo esterno
tcp 0 0 localhost: smtp 0.0.0.0:* ASCOLTA
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* ASCOLTA
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* ASCOLTA
tcp6 0 0 [::]: sunrpc [::]: * ASCOLTA
tcp6 0 0 [::]: webcache [::]: * LISTEN
tcp6 0 0 [::]: ssh [::]: * ASCOLTA
udp 0 0 0.0.0.0:805 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp 0 0 localhost: 323 0.0.0.0:*
udp6 0 0 [::]: 805 [::]: *
udp6 0 0 [::]: sunrpc [::]: *
udp6 0 0 ip6-localhost: 323 [::]: *
Socket di dominio UNIX attivi (solo server)
Tipo di flag Proto RefCnt Tipo Stato I-Node Path
unix 2 [ACC] STREAM LISTENING 15108 / run / dbus / system_bus_socket
unix 2 [ACC] STREAM LISTENING 8202 / run / systemd / journal / stdout
unix 2 [ACC] ASCOLTO SEQPACKET 12813 / run / udev / control
unix 2 [ACC] STREAM LISTENING 17542 pubblico / pickup
unix 2 [ACC] STREAM LISTENING 15165 /var/run/rpcbind.sock
unix 2 [ACC] STREAM LISTENING 17546 public / cleanup
unix 2 [ACC] STREAM LISTENING 15605 /var/lib/gssproxy/default.sock
unix 2 [ACC] STREAM LISTENING 12706 / run / systemd / private
unix 2 [ACC] STREAM LISTENING 17549 pubblico / qmgr
unix 2 [ACC] STREAM LISTENING 17571 pubblico / flush
unix 2 [ACC] STREAM LISTENING 17553 privato / tlsmgr
unix 2 [ACC] STREAM LISTENING 17586 pubblico / showq
unix 2 [ACC] STREAM LISTENING 17556 privato / riscrivo
unix 2 [ACC] STREAM LISTENING 17559 privato / rimbalzo
unix 2 [ACC] STREAM LISTENING 17562 privato / differito
unix 2 [ACC] STREAM LISTENING 17565 privato / traccia
unix 2 [ACC] STREAM LISTENING 17568 privato / verifica
unix 2 [ACC] STREAM LISTENING 17574 privato / proxymap
unix 2 [ACC] STREAM LISTENING 17577 privato / proxywrite
unix 2 [ACC] STREAM LISTENING 17580 privato / smtp
unix 2 [ACC] STREAM LISTENING 17583 privato / relè
unix 2 [ACC] STREAM LISTENING 17589 privato / errore
unix 2 [ACC] STREAM LISTENING 17592 privato / riprova
unix 2 [ACC] STREAM LISTENING 17595 privato / scarta
unix 2 [ACC] STREAM LISTENING 17598 privato / locale
unix 2 [ACC] STREAM LISTENING 17601 privato / virtuale
unix 2 [ACC] STREAM LISTENING 17604 privato / lmtp
unix 2 [ACC] STREAM LISTENING 17607 privato / incudine
unix 2 [ACC] STREAM LISTENING 17610 private / scache
unix 2 [ACC] STREAM LISTENING 15606 /run/gssproxy.sock
[[Email protected] ~] #

Approfitta di grep per filtrare i risultati.

Numero di porta utilizzato dal PID

Sai che la tua applicazione è stata avviata e a conoscenza del PID (Process Identifier) ​​ma non sei sicuro di quale sia il numero di porta che sta utilizzando. L’esempio seguente è per PID 3937

[[Email protected] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * ASCOLTA 3937 / httpd
unix 3 [] STREAM CONNECTED 2442387 3937 / httpd
[[Email protected] ~] #

Come puoi vedere, la porta 80 viene utilizzata per PID 3937.

Statistiche di tutti i protocolli

Hai disconnessioni frequenti a causa del pacchetto scartato? -s argomento ti mostrerà le statistiche generali in cui puoi prestare attenzione ai pacchetti scartati i messaggi.

[[Email protected] ~] # netstat -s
Ip:
731422 pacchetti totali ricevuti
0 inoltrato
0 pacchetti in arrivo scartati
731399 pacchetti in entrata consegnati
787732 richieste inviate
16 abbandonato a causa della rotta mancante
ICMP:
5277 messaggi ICMP ricevuti
120 messaggio ICMP di input non riuscito.
InCsumErrors: 6
Istogramma di input ICMP:
destinazione non raggiungibile: 193
timeout in transito: 16
richieste di eco: 5060
risposte echo: 2
9355 messaggi ICMP inviati
0 messaggi ICMP non riusciti
Istogramma di output ICMP:
destinazione non raggiungibile: 4295
risposte in eco: 5060
IcmpMsg:
InType0: 2
InType3: 193
InType8: 5060
InType11: 16
OutType0: 5060
OutType3: 4295
tcp:
42 aperture di connessioni attive
35226 aperture di connessione passive
1693 tentativi di connessione falliti
645 ripristini di connessione ricevuti
2 connessioni stabilite
646705 segmenti ricevuti
648037 segmenti inviati
99463 segmenti ritrasmessi
27377 segmenti danneggiati ricevuti.
150893 ripristini inviati
InCsumErrors: 27377
udp:
74547 pacchetti ricevuti
Ricevuti 4814 pacchetti alla porta sconosciuta.
56 pacchetti ricevono errori
74584 pacchetti inviati
0 riceve errori buffer
0 invia errori buffer
InCsumErrors: 56
UdpLite:
TcpExt:
177 cookie SYN non validi ricevuti
1693 ripristini ricevuti per socket embrionali SYN_RECV
316 tempo terminato socket TCP attendere in timer veloce
3 pacchetti vengono rifiutati nelle connessioni stabilite a causa del timestamp
70248 acks ritardati inviati
6 ack ritardati ulteriormente ritardati a causa della presa bloccata
La modalità di acquisizione rapida è stata attivata 3082 volte
17 prese SYN per ASCOLTARE cadute
28179 pacchetti messi direttamente in coda per recuperare prequeue.
9802 byte ricevuti direttamente nel contesto del processo dalla pre-coda
Previsti 72106 header di pacchetto
94182 riconoscimenti che non contengono payload di dati ricevuti
40094 riconoscimenti previsti
332 volte recuperate dalla perdita di pacchetti con riconoscimenti selettivi
8 finestre di congestione recuperate senza avvio lento da DSACK
1173 finestre di congestione recuperate senza avvio lento dopo una parziale ack
1029 timeout dopo il recupero SACK
8 timeout nello stato di perdita
329 ritrasmissioni veloci
3 ritrasmessi in avanti
32 ritrasmissioni con avvio lento
44785 altri timeout TCP
TCPLossProbes: 9763
TCPLossProbeRecovery: 1732
54 Ritrasmissioni SACK fallite
3144 DSACK inviati per vecchi pacchetti
4 DSACK inviati per pacchetti fuori ordine
695 DSACK ricevuti
1 DSACK per pacchetti fuori servizio ricevuti
44 connessioni ripristinate a causa di dati imprevisti
76 connessioni ripristinate a causa della chiusura anticipata dell’utente
6079 connessioni interrotte a causa del timeout
TCPDSACKIgnoredNoUndo: 448
TCPSpuriousRTOs: 5
TCPSackShiftFallback: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
TCPOFOQueue: 4313
TCPOFOMerge: 4
TCPChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IPEXT:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
InNoECTPkts: 731338
InECT1Pkts: 3
InECT0Pkts: 1568
InCEPkts: 108
[[Email protected] ~] #

Informazioni sul routing del kernel

Hai un problema di routing? oppure, la connettività non funziona come previsto a causa della connessione che sta attraversando un percorso diverso?

Controlla rapidamente la tabella di routing.

[[Email protected] ~] # netstat -r
Tabella di routing IP del kernel
Destination Gateway Genmask Flags MSS Window irtt Iface
gateway predefinito 0.0.0.0 UG 0 0 0 eth0
10.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
68.183.32.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[Email protected] ~] #

PID utilizzato dal numero di porta

Molto utile per risolvere il problema del conflitto di porte. Diciamo che stai cercando di avviare il server Apache o Nginx, che è in ascolto sulla porta 80 ma non è possibile perché qualche altro processo già utilizza la porta 80.

[[Email protected] ~] # netstat -anlp | grep 80 | grep ASCOLTA
tcp6 0 0 ::: 80 ::: * ASCOLTA 3937 / httpd
[[Email protected] ~] #

E puoi vedere che il PID 3937 sta usando quella porta.

Se stai usando AIX, allora

netstat -Aan | grep $ portnumber

Questo mostrerà l’indirizzo del Protocol Control Block in esadecimale

Una volta che hai esadecimale, puoi eseguire di seguito per ottenere quale processo contiene un numero di porta.

rmsock $ address_of_pcb tcpcb

Elenco delle interfacce di rete

Avere più interfacce Ethernet? o non sono sicuro e vuoi scoprirlo?

[[Email protected] ~] # netstat -i
Tabella dell’interfaccia del kernel
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[Email protected] ~] #

Ascolto continuo

Un’opzione eccellente durante la risoluzione dei problemi relativi ai crash dei servizi. Supponiamo che un’applicazione si blocchi in modo casuale ogni pochi minuti. Ma non sono sicuro di quando esattamente. Puoi usare l’argomento -c che mostrerà continuamente i risultati.

[[Email protected] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * ASCOLTA 11766 / httpd
tcp6 0 0 ::: 8080 ::: * ASCOLTA 11766 / httpd
tcp6 0 0 ::: 8080 ::: * ASCOLTA 11766 / httpd
tcp6 0 0 ::: 8080 ::: * ASCOLTA 11766 / httpd

Quando interrompe l’aggiornamento, sai che si è bloccato.

Conclusione

netstat è uno dei comandi ampiamente utilizzati da sysadmin e spero che gli esempi sopra ti diano un’idea di cosa puoi fare con esso. Se stai cercando di saperne di più sull’amministrazione Linux, dai un’occhiata a questo Corso Udemy.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map