English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Alcuni usi comuni del comando netstat su Linux

Introduzione

Il comando Netstat viene utilizzato per visualizzare vari dettagli di rete come connessioni di rete, tabella di路由, stato dell'interfaccia (Interface Statistics), connessioni mascherate, membri multicast (Multicast Memberships) e altro ancora.

Significato delle informazioni di output

Dopo aver eseguito netstat, il risultato dell'output è:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Indirizzo Locale Indirizzo Esterno Stato
tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE
Sockets di dominio UNIX attivi (senza server)
Proto RefCnt Flags Type State I-Node Path
unix 1 [ ] STREAM CONNECTED 16178 @000000dd
unix 1 [ ] STREAM CONNECTED 16176 @000000dc
unix 9 [ ] DGRAM 5292 /dev/log
unix 1 [ ] STREAM CONNECTED 16182 @000000df

Considerato nel suo complesso, l'output di netstat può essere diviso in due parti:

Una è la connessione internet attiva, detta connessione TCP attiva, in cui "Recv-Q" e "Send-Q" indicano il %0A coda di ricezione e coda di invio. Questi numeri dovrebbero essere generalmente 0. Se non lo sono, significa che i pacchetti si accumulano nella coda. Questo tipo di situazione si vede solo in rare occasioni.

L'altro è Active UNIX domain sockets, noto come interfacce di socket di dominio Unix attivo (simili ai socket di rete, ma utilizzabili solo per la comunicazione locale, con un aumento della prestazione fino al doppio).

Proto mostra il protocollo utilizzato per la connessione, RefCnt indica il numero di processi collegati a questa interfaccia, Types mostra il tipo di interfaccia, State mostra lo stato corrente dell'interfaccia, Path indica il nome del percorso utilizzato dall'altro processo per connettersi all'interfaccia.

parametri comuni

-a (all) mostra tutte le opzioni, per default non mostra le opzioni relative a LISTEN.
-t (tcp) mostra solo le opzioni correlate a tcp.
-u (udp) mostra solo le opzioni correlate a udp.
-n rifiuta di mostrare gli alias, trasforma tutti i numeri in numeri.
-l elenca solo i servizi in stato di Listen (ascolto).

-p mostra il nome del programma che ha stabilito la connessione.
-r mostra le informazioni di routing, la tabella di routing.
-e mostra informazioni estese, come uid ecc.
-s effettua una statistica per protocollo.
-c esegui il comando netstat ogni un certo periodo di tempo.

suggerimento: lo stato LISTEN e LISTENING possono essere visti solo con -a o -l

esempi di comandi utili 

1. Elenca tutti i port (inclusi quelli in ascolto e non)

  elenca tutti i port netstat -a

# netstat -a | more
 connessioni Internet attive (server e stabilite)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State
 tcp  0  0 localhost:30037   *:*      LISTEN
 udp  0  0 *:bootpc    *:*
connessioni UNIX domain attive (server e stabilite)
 Proto RefCnt Flags  Type  State   I-Node Path
 unix 2  [ ACC ]  STREAM  LISTENING  6135  /tmp/.X11-unix/X0
 unix 2  [ ACC ]  STREAM  LISTENING  5140  /var/run/acpid.socket

  elenca tutti i port tcp netstat -at

# netstat -at
 connessioni Internet attive (server e stabilite)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State
 tcp  0  0 localhost:30037   *:*      LISTEN
 tcp  0  0 localhost:ipp   *:*      LISTEN
 tcp  0  0 *:smtp     *:*      LISTEN
 tcp6  0  0 localhost:ipp   [::]:*     LISTEN

  elenca tutti i port udp netstat -au

# netstat -au
 connessioni Internet attive (server e stabilite)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State
 udp  0  0 *:bootpc    *:*
 udp  0  0 *:49119     *:*
 udp  0  0 *:mdns     *:*

2. Elenca tutti i Sockets in stato di ascolto

  mostra solo i port in ascolto netstat -l

# netstat -l
 Connessioni Internet attive (solo server)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State
 tcp  0  0 localhost:ipp   *:*      LISTEN
 tcp6  0  0 localhost:ipp   [::]:*     LISTEN
 udp  0  0 *:49119     *:*

  solo elenca tutti i port tcp in ascolto netstat -lt

# netstat -lt
 Connessioni Internet attive (solo server)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State
 tcp  0  0 localhost:30037   *:*      LISTEN
 tcp  0  0 *:smtp     *:*      LISTEN
 tcp6  0  0 localhost:ipp   [::]:*     LISTEN

  Visualizza solo tutti i port udp in ascolto netstat -lu

# netstat -lu
 Connessioni Internet attive (solo server)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State
 udp  0  0 *:49119     *:*
 udp  0  0 *:mdns     *:*

  Visualizza solo tutti i port UNIX in ascolto netstat -lx

# netstat -lx
 Sockets UNIX attivi (solo server)
 Proto RefCnt Flags  Type  State   I-Node Path
 unix 2  [ ACC ]  STREAM  LISTENING  6294  private/maildrop
 unix 2  [ ACC ]  STREAM  LISTENING  6203  public/cleanup
 unix 2  [ ACC ]  STREAM  LISTENING  6302  private/ifmail
 unix 2  [ ACC ]  STREAM  LISTENING  6306  private/bsmtp

3. Visualizza le informazioni di统计 per ogni protocollo

  Visualizza tutte le informazioni di统计 su i port netstat -s

# netstat -s
 Ip:
 11150 pacchetti totali ricevuti
 1 con indirizzi non validi
 0 inoltrati
 0 pacchetti in arrivo scartati
 11149 pacchetti in arrivo consegnati
 11635 richieste inviate
 Icmp:
 0 messaggi ICMP ricevuti
 0 messaggi ICMP in input falliti.
 Tcp:
 582 aperture di connessioni attive
 2 tentativi di connessione falliti
 Ricevuti 25 reset di connessione
 Udp:
 Received 1183 packets
 Received 4 packets to an unknown port.
 .....

  Display statistics of TCP or UDP ports netstat -st or -su

# netstat -st 
# netstat -su

4. Display PID and process name in netstat output netstat -p

netstat -p can be used with other switches to add 'PID/Process name' to the netstat output, making it very convenient to find the program running on a specific port during debugging.

# netstat -pt
 Active Internet connections (w/o servers)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name
 tcp  1  0 ramesh-laptop.loc:47212 192.168.185.75:www  CLOSE_WAIT 2109/firefox
 tcp  0  0 ramesh-laptop.loc:52750 lax:www ESTABLISHED 2109/firefox

5. Do not display host, port, and username (host, port or user) in netstat output

When you don't want to display the host, port, and username, use netstat -n. Numbers will be used instead of those names.

This can also speed up the output because it does not need to perform comparison queries.

# netstat -an

If you just don't want to display one of these three names, use the following command

# netsat -a --numeric-ports
# netsat -a --numeric-hosts
# netsat -a --numeric-users

6. Continue to output netstat information

netstat will output network information every second.

# netstat -c
 Active Internet connections (w/o servers)
 Proto Recv-Q Send-Q Local Address   Foreign Address   State
 tcp  0  0 ramesh-laptop.loc:36130 101-101-181-225.ama:www ESTABLISHED
 tcp  1  1 ramesh-laptop.loc:52564 101.11.169.230:www  CLOSING
 tcp  0  0 ramesh-laptop.loc:43758 server-101-101-43-2:www ESTABLISHED
 tcp  1  1 ramesh-laptop.loc:42367 101.101.34.101:www  CLOSING
 ^C

 7. Visualizzare le famiglie di indirizzi non supportate dal sistema (Address Families)

netstat --verbose

Alla fine dell'output, ci saranno informazioni come le seguenti

netstat: non è supportato `AF IPX` su questo sistema.
netstat: non è supportato `AF AX25` su questo sistema.
netstat: non è supportato `AF X25` su questo sistema.
netstat: non è supportato `AF NETROM` su questo sistema.

8. Visualizzare le informazioni di routing di base netstat -r

# netstat -r
 Tabella di instradamento IP del kernel
 Destination  Gateway   Genmask   Flags MSS Window irtt Iface
 192.168.1.0  *    255.255.255.0 U   0 0   0 eth2
 link-local  *    255.255.0.0  U   0 0   0 eth2
 default   192.168.1.1  0.0.0.0   UG  0 0   0 eth2

Attenzione: utilizzare netstat -rn per visualizzare il formato numerico, non consultare il nome dell'host.

9. Trovare il porto di esecuzione del programma

Non tutti i processi possono essere trovati, quelli senza permessi non vengono visualizzati, utilizzare i permessi di root per visualizzare tutte le informazioni.

# netstat -ap | grep ssh
 tcp  1  0 dev-db:ssh   101.174.100.22:39213  CLOSE_WAIT -
 tcp  1  0 dev-db:ssh   101.174.100.22:57643  CLOSE_WAIT -

Trovare il processo in esecuzione sul porto specificato

# netstat -an | grep ':80'

10. Mostra la lista delle interfacce di rete

# netstat -i
 Tabella delle interfacce del kernel
 Iface  MTU Met  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg
 eth0    1500 0     0   0   0 0       0   0   0   0 BMU
 eth2    1500 0   26196   0   0 0     26883   6   0   0 BMRU
 lo    16436 0     4   0   0 0       4   0   0   0 LRU

Mostra dettagli, come ifconfig utilizza netstat -ie:

# netstat -ie
 Tabella delle interfacce del kernel
 eth0   Link encap:Ethernet HWaddr 00:10:40:11:11:11
 UP BROADCAST MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
 Memory:f6ae0000-f6b00000

11. Analisi IP e TCP

  Visualizza l'indirizzo IP che connette di più ai porti dei servizi

wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
18 221.136.168.36
3 154.74.45.242
2 78.173.31.236
2 62.183.207.98
2 192.168.1.14
2 182.48.111.215
2 124.193.219.34
2 119.145.41.2
2 114.255.41.30
1 75.102.11.99

  Elenco degli stati TCP

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'
stabilito)
Foreign
LISTEN
TIME_WAIT
ESTABLISHED
TIME_WAIT
SYN_SENT

  Prima di tutto, prendiamo tutti gli stati, quindi usiamo uniq -c per contarli e poi ordiniamoli.

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c
143 ESTABLISHED
1 FIN_WAIT1
1 Foreign
1 LAST_ACK
36 LISTEN
6 SYN_SENT
113 TIME_WAIT
1 stabilito)

  L'ultimo comando è il seguente:

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

Analisi dell'access.log per ottenere gli indirizzi IP dei primi 10 visitatori

awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -10

Le seguenti sono alcune delle comuni applicazioni del comando netstat su Linux che ho presentato all'autore, spero possano essere utili a tutti!

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, di proprietà dei rispettivi autori, il contenuto è stato contribuito e caricato dagli utenti di Internet autonomamente, il sito web non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale correlata. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una email a notice#oldtoolbag.com (al momento dell'invio dell'email, sostituisci # con @) per segnalare e fornire prove pertinenti. Una volta verificata, il sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare