Come usare netstat in GNU / Linux

Prova Il Nostro Strumento Per Eliminare I Problemi

Netstat è un'utilità molto potente che elencherà tutte le connessioni TCP e UDP, nonché le connessioni socket unix attualmente in ascolto di connessioni e attualmente connesse. Sebbene molti utenti domestici non debbano necessariamente preoccuparsi di questo, i giocatori online o chiunque intenda ospitare qualsiasi tipo di server in futuro, ad un certo punto dovrà sicuramente occuparsi delle porte.

Netstat è utile anche per la sicurezza e la privacy, ad esempio per scoprire quali programmi 'parlano' a Internet.

Usare netstat può essere un processo estremamente semplice, oppure può diventare molto complicato e pesante, a seconda dell'utilizzo; quindi oggi vedremo alcuni degli usi più comuni di Netstat.

Come promesso (nel mio articolo ' Come trovo le informazioni sulla mia rete in Linux ? ') Ti presenterò il comando netstat. Questo comando è uno strumento molto utile per scoprire informazioni di rete come tabelle di instradamento, connessioni di rete, statistiche dell'interfaccia, connessioni mascherate e appartenenze multicast. Ma non è così semplice da usare come alcuni degli altri strumenti di 'scoperta' (come ifconfig). Con netstat hai davvero bisogno di sapere cosa stai cercando e come trovarlo. Questo articolo ti aiuterà a capire proprio questo.

Installazione?

Fortunatamente la tua distribuzione dovrebbe includere l'estensione netstat comando preinstallato. Per verificarlo, apri una finestra di terminale (è lì che utilizzerai comunque netstat) ed esegui il comando quale netstat . Questo comando dovrebbe restituire qualcosa di simile / Bin / netstat . Questo ti dirà che lo strumento è installato e dove si trova l'eseguibile.

Nozioni di base su Netstat

Il comando netstat di base ha il seguente aspetto:

netstat ARGUMENT OPTIONS

Dove ARGUMENT è il tipo di famiglia di indirizzi su cui desideri informazioni e OPTIONS sono le opzioni facoltative che specificheranno il tipo di informazioni che ti verranno restituite.

Poiché netstat offre una tale varietà di opzioni, potrebbe essere meglio se prima elenco alcune delle opzioni più utili.

  • per : Mostra lo stato di tutti i socket e le voci della tabella di routing.
  • c : Visualizza continuamente le informazioni.
  • d : Mostra lo stato di tutte le interfacce che utilizzano DHCP.
  • e : Mostra le informazioni estese.
  • g : Mostra le informazioni sull'appartenenza al gruppo multicast sia per IPv4 che per IPv6.
  • io : Visualizza una tabella di tutte le inferfaces di rete.
  • l : Limita le statistiche a un'interfaccia definita.
  • M : Mostra le tabelle di routing multicast.
  • n : Mostra gli indirizzi di rete come numeri invece dei simboli predefiniti.
  • p : Mostra le tabelle di risoluzione degli indirizzi.
  • P : Limita le statistiche a un protocollo definito.
  • r : Mostra tutte le tabelle di instradamento.
  • t : Mostra le connessioni TCP.
  • u : Mostra le connessioni UDP.
  • v : Utilizza la modalità dettagliata per l'output.

Quindi diamo un'occhiata e vediamo come possono essere usati insieme.

netstat

Da solo (nessuna opzione) questo comando stampa le statistiche generiche dell'host a cui sei attualmente connesso.

netstat -an

Questo comando visualizzerà tutte le connessioni all'host, inclusi gli indirizzi e le porte di origine e di destinazione, e le visualizzerà come numeri.

netstat -rn

Questo comando visualizzerà la tabella di instradamento per l'host in formato numerico.

netstat -r

Questo comando mostrerà la tua tabella di instradamento per il tuo host.

netstat -natp

Questo comando mostrerà le connessioni TCP attive in forma numerica.

netstat -t --ascolto

Questo ti mostrerà tutte le porte tcp su cui l'host è in ascolto.

netstat: statistica

Questo comando mostrerà varie statistiche per le interfacce del tuo host. Nota che questo comando mostrerà MOLTE statistiche.

Come puoi vedere, questo comando mostrerà un bel po 'di informazioni. Inoltre, potresti dover convogliare questo comando attraverso il comando less per vederlo più facilmente. Quel comando completo sarebbe simile a netstat --statistics | Di meno. Usarlo in questo modo ti consentirebbe di usare i tasti freccia per scorrere su e giù attraverso l'uscita.

Suggerimenti per l'utilizzo di Netstat

Uno dei modi più semplici e comuni per utilizzare netstat è controllare quali porte sono in ascolto

  • netstat -l

Il che dà qualcosa del genere sul mio sistema Antergos appena installato

netstat -l

Oppure, se stai cercando di focalizzare la tua ricerca un po 'di più, puoi aggiungere un'altra opzione per ordinare in modo specifico per diversi tipi di connessioni

  • netstat -lt # per TCP
  • netstat -lu # per UDP
  • netstat -lx # per Unix

Oppure puoi andare sull'estremo opposto dello spettro ed elencare tutte le connessioni

  • netstat -a

Se preferisci, un'altra opzione che può essere utile tenere a mente, è utilizzare l'opzione 'n'. Quando si utilizza netstat -n o netstat -ltn, ad esempio, tutti i nomi host non tenteranno più di essere risolti e verranno visualizzati solo gli indirizzi IP, come nell'esempio seguente.

netstat-ltn

Come puoi vedere, localhost nel nome, è stato risolto al suo valore numerico dopo aver utilizzato l'opzione 'n'

Un altro modo per utilizzare netstat è netstat -ie, la 'i' per le interfacce e la 'e' per 'extended' che ci aiuteranno a fornire un output più leggibile dall'uomo.

netstat -ie # Questo ci mostrerà un elenco di interfacce di rete e informazioni su ogni dispositivo.

netstat ie

Suggerimenti avanzati su Netstat

Quello che vogliamo fare è dire a netstat di darci l'output per applicazioni specifiche che stanno ascoltando le connessioni tcp. Per fare ciò emettiamo il comando:

  • netstat --tcp --listening --programs

L'output di questo comando sarebbe simile a:

Proto Recv-Q Send-Q Indirizzo locale Indirizzo esterno Stat PID / Programma
tcp 0 0 *: ssh *: * LISTEN 25469 / sshd
tcp 0 0 *: httpd *: * LISTEN 26754 / httpd
tcp 0 0 localhost: ipp *: * LISTEN -

Ora puoi effettivamente vedere alcune informazioni utili. Nell'output sopra puoi vedere che sia sshd che httpd stanno ascoltando le connessioni in entrata. Quanto sopra è solo uno snippet di come può apparire l'output. Ciò che è molto utile di questo comando è che ti mostrerà se c'è un comando o un indirizzo locale in ascolto per le connessioni in entrata che non dovrebbero essere in ascolto. Se trovi un'applicazione che non dovrebbe essere in ascolto, uccidila per sicurezza.

Itinerario

Netstat è in grado di stampare rapidamente la tabella di routing del kernel delle tue macchine con il comando:

netstat -r

L'output di questo comando sarà simile a:

Tabella di routing IP del kernel
Destination Gateway Genmask Flags Finestra MSS irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
predefinito 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

statistica

Questo è uno degli strumenti più utili per netstat. Con questo puoi scoprire esattamente le statistiche per ogni protocollo. La struttura dei comandi di base è:

netstat: statistica

che ti darà molte più informazioni di quelle che desideri. Supponiamo che tu voglia vedere solo le statistiche sul protocollo TCP. Per questo puoi emettere il comando:

netstat -t --statistics

L'output del comando precedente includerà informazioni come:

tcp:
4343 aperture connessioni attive
8 aperture di connessione passiva
5 tentativi di connessione falliti
178 ripristini di connessione ricevuti
6 collegamenti stabiliti
59075 segmenti ricevuti
60033 segmenti inviati
76 segmenti ritrasmessi
0 segmenti danneggiati ricevuti.
303 reset inviati

Oppure potresti ottenere informazioni anche su UDP con il comando:

netstat -u --statistics

Il che ti darebbe un output simile per il protocollo UDP.

Diventa creativo

E se volessi vedere tutti gli indirizzi IP univoci collegati a un server? Puoi farlo con netstat (e l'aiuto di alcuni altri strumenti) in questo modo:

netstat -nat | awk '{print $ 5}' | cut -d: -f1 | sed -e '/ ^ $ / d | uniq

L'output del comando precedente dipenderà dalla quantità di traffico ricevuta dalla tua macchina / server. Ma includerà tutti gli indirizzi IP univoci che tentano di connettersi al tuo server.

Che ne dici di controllare per vedere se il tuo server è sotto un attacco DOS? Puoi farlo con netstat in questo modo:
netstat -anp | grep 'tcp | udp' | awk '{print $ 5}' | cut -d: -f1 | ordina | uniq -c | sort -n

Il comando precedente elencherà gli indirizzi IP che richiedono il maggior numero di connessioni al tuo server. Se vedi un numero che è molto più alto di quello che dovrebbe essere, molto probabilmente sei sotto un attacco Denial of Service.

Pensieri finali

Netstat è uno di quegli strumenti di cui non penserai mai di aver bisogno, fino a quando non lo farai all'improvviso; ed è sempre bene saperlo usare in caso di necessità, almeno a un livello di base. Per maggiori informazioni su come usare il comando netstat e le sue opzioni, controlla le pagine man digitando man netstat .

Ora tu: Qual è la tua utilità preferita per controllare le informazioni di rete e perché? Fateci sapere nei commenti!

Articoli Correlati