GNU/Linux >> Linux Esercitazione >  >> Linux

Esercitazione sui comandi Netstat di Linux per SysAdmins [40 esempi]

L'utilità netstat (statistiche di rete) in Linux fornisce informazioni relative alle connessioni di rete. È possibile utilizzare vari comandi netstat per visualizzare le connessioni di rete attive, i dati dell'interfaccia, le tabelle di routing e così via. Queste sono informazioni essenziali per gli amministratori di rete e i professionisti di infosec. Ecco perché abbiamo preparato questa guida con un'ampia selezione di utili esempi di netstat. Dopo aver completato questa guida, sarai in grado di ispezionare tutte le informazioni relative alla rete per la tua macchina Linux. Incoraggiamo inoltre i lettori a provare questi esempi sulla propria macchina per ottenere un'esperienza più pratica.

Esempi di comandi Netstat per amministratori di rete

Le informazioni fornite da netstat facilitano l'individuazione dei problemi nelle connessioni di rete. Questo è il motivo per cui netstat è l'utilità di riferimento per la risoluzione dei problemi delle connessioni di rete per molti amministratori di sistema. Continua a leggere per scoprire come utilizzare al meglio il comando netstat.

1. Visualizza tutti i socket attivi

I socket sono strutture che fungono da endpoint durante l'invio o la ricezione di richieste di rete. Se utilizzato senza argomenti, netstat mostra un elenco di tutti i socket aperti nella tua macchina.

$ netstat

Per impostazione predefinita, questo comando mostra i socket attivi per tutte le famiglie di rete. Come potresti notare, stampa molte informazioni aggiuntive sotto l'etichetta "Unix Domain Sockets" . Questi sono gli endpoint di comunicazione dati per i processi attualmente in esecuzione sulla tua macchina.

2. Visualizza tutte le prese di ascolto e non di ascolto

Puoi usare il -a opzione di netstat per stampare un elenco di tutti i socket in ascolto e non in ascolto. Esegui il comando seguente e controlla l'output per vedere come funziona questo comando.

$ netstat -a
$ netstat --all
- -

Il –tutto l'opzione funziona come -a . L'uscita dovrebbe mostrare tutte le prese, sia attive che inattive. Le righe rappresentano i socket e la colonna ne determina i valori. Gli utenti possono visualizzare il protocollo del socket, i dati inviati/ricevuti, gli indirizzi e gli stati corrispondenti.

3. Visualizza connessioni TCP

Il TCP o Transmission Control Protocol è il protocollo Internet più utilizzato. È possibile utilizzare il seguente comando netstat per visualizzare solo le connessioni TCP attive.

$ netstat -t
$ netstat --tcp

Puoi anche utilizzare il formato lungo –tcp invece di -t . Utilizzare il comando seguente per visualizzare un elenco di tutte le connessioni di rete TCP in ascolto e stabilite.

$ netstat -at
$ netstat -all --tcp

4. Visualizza connessioni UDP

UDP o User Datagram Protocol è un altro dei principali protocolli di rete utilizzati dai nostri sistemi. È possibile utilizzare l'utilità netstat per visualizzare un elenco di socket stabiliti e in ascolto per le connessioni UDP.

$ netstat -u
$ netstat --udp

Questo esempio stampa tutte le connessioni UDP stabilite. Se desideri visualizzare tutte le connessioni stabilite e in ascolto, utilizza invece il comando seguente.

$ netstat -au
$ netstat --all --udp

5. Visualizza tutte le connessioni TCP in ascolto

Puoi visualizzare un elenco di tutte le connessioni TCP in ascolto utilizzando -l e -t bandiera del programma netstat. Dai un'occhiata al comando seguente per vedere come ciò accade.

$ netstat -lt

Mostrerà tutte le connessioni TCP che sono attivamente in ascolto per le richieste di rete in entrata. L'output dovrebbe contenere informazioni sui protocolli TCP e TCP6. Puoi anche usare la sintassi in formato lungo quando usi questo comando negli script della shell di Linux.

$ netstat --listen --tcp

6. Visualizza tutte le connessioni UDP in ascolto

Gli utenti possono adottare lo stesso approccio mostrato sopra il comando per visualizzare le connessioni UDP in ascolto. Apri il tuo emulatore di terminale Linux preferito ed esegui il comando seguente per farlo.

$ netstat -lu

Come con il comando precedente, mostrerà le connessioni per i protocolli UDP e UDP6. L'esempio seguente illustra il formato lungo.

$ netstat --listen --udp

7. Visualizza tutte le connessioni UDP-Lite in ascolto

UDP-Lite è un protocollo senza connessione basato sul protocollo UDP. Consente ai sistemi di ricevere un pacchetto di rete potenzialmente danneggiato. È possibile visualizzare le connessioni in ascolto per questo protocollo utilizzando il seguente semplice comando.

$ netstat -lU

Il -U l'opzione di netstat consente agli amministratori di specificare il protocollo udplite. Puoi anche utilizzare –udplite come formato lungo per questa opzione.

$ netstat --udplite

8. Visualizza connessioni Unix in ascolto

Abbiamo già discusso di come i sistemi Linux utilizzano il socket di dominio Unix per la comunicazione tra processi (IPC). Puoi stampare un elenco di tutte le connessioni Unix in ascolto per la tua macchina usando il seguente comando netstat.

$ netstat -lx

Il -x opzione specifica i socket di dominio Unix. Puoi usare la forma abbreviata –unix invece di -x . Questo è utile per documentare gli script della shell.

$ netstat --unix

9. Visualizza le statistiche del protocollo

L'utilità netstat offre un eccellente supporto per le statistiche del protocollo. Gli utenti possono visualizzare un'ampia gamma di informazioni dai dati statistici, come il numero di connessioni, pacchetti, segmenti danneggiati, ecc. Controlla il risultato per il comando successivo per vedere come funziona.

$ netstat -s
$ netstat --statistics

Per impostazione predefinita, questo comando mostra informazioni sui protocolli TCP, UDP, ICMP e IP. Gli amministratori di rete possono utilizzare questo output per determinare potenziali problemi nelle connessioni di rete.

10. Visualizza le statistiche del protocollo TCP

Gli utenti possono anche visualizzare le statistiche di connessione per un solo protocollo. L'esempio seguente mostra i dati statistici solo per il protocollo TCP.

$ netstat -st

Possiamo facilmente combinare i -s opzione con un selettore di protocollo e scopri i dati statistici a riguardo. L'esempio seguente stampa lo stesso output ma utilizzando la sintassi abbreviata.

$ netstat --statistics --tcp

11. Visualizza le statistiche del protocollo UDP

Possiamo visualizzare i dati statistici per il protocollo UDP nello stesso modo in cui abbiamo visualizzato le statistiche TCP. Sostituisci -t o –-tcp opzione con uno qualsiasi di -u o –udp . Dai un'occhiata ai prossimi due esempi per vedere come funziona.

$ netstat -su
$ netstat --statistics --udp

Nota che troverai anche le statistiche udplite da questi comandi. Tuttavia, se specifichi udplite utilizzando -U o –udplite opzione, non ci saranno dati UDP sull'output risultante.

12. Mostra i nomi dei programmi

È possibile utilizzare l'utilità netstat per visualizzare i programmi che hanno avviato le connessioni di rete. Questo può essere estremamente utile durante la risoluzione dei problemi di rete. Dai un'occhiata al comando seguente per vedere come funziona.

$ netstat -pt

L'output dovrebbe contenere connessioni TCP stabilite e i programmi responsabili di tali connessioni. Puoi anche utilizzare la forma abbreviata –programma invece di -p , come illustrato nell'esempio seguente.

$ netstat --program --tcp

13. Visualizza le informazioni di rete in modalità continua

Il -c o –continuo le opzioni di netstat gli consentono di visualizzare continuamente le informazioni specificate. Dai un'occhiata ai comandi seguenti per vedere come funziona.

$ netstat -tc
$ netstat --tcp --continuous

L'intervallo di aggiornamento predefinito è 1 secondo. Tuttavia, gli utenti possono ignorarlo fornendo un argomento aggiuntivo, come mostrato negli esempi seguenti.

$ netstat -tc 5
$ netstat --tcp --continuous 3

Contrariamente a molti comandi del terminale Linux, il selettore di intervallo non è preceduto da un segno di uguale per la sintassi abbreviata.

14. Visualizza le tabelle di routing

L'utilità di rete può essere utilizzata per visualizzare le tabelle di routing definite dal kernel Linux. L'output è simile a quello fornito dal comando IP di Linux.

$ netstat -r

L'output di questo comando mostra informazioni come l'indirizzo di destinazione, il gateway, la subnet mask e il nome dell'interfaccia di rete. Puoi utilizzare la sintassi abbreviata –route se vuoi documentare l'uso di questo comando negli script della shell.

$ netstat --route

15. Visualizza le statistiche dell'interfaccia

Netstat può essere utilizzato per stampare le statistiche dell'interfaccia per il tuo sistema Linux. Il comando seguente stampa le interfacce di rete disponibili e fornisce informazioni sui pacchetti trasmessi e ricevuti, sul tasso di errore e sull'MTU.

$ netstat -i
$ netstat --interfaces

Puoi utilizzare una delle opzioni per visualizzare le informazioni sull'interfaccia di rete.

16. Visualizza le statistiche dell'interfaccia in tempo reale

Per visualizzare le statistiche dell'interfaccia in tempo reale, combina -c o –continuo opzione con l'opzione interfaccia. Gli esempi seguenti aggiorneranno le statistiche dell'interfaccia di rete ogni 3 secondi.

$ netstat -ic 3
$ netstat --interfaces --continuous 3

Dovresti notare le modifiche nei campi trasmessi (TX) e ricevuti (RX). Sostituisci l'intervallo di tempo con un numero adatto alle tue esigenze. Nota che l'intervallo è in secondi, non minuti.

17. Visualizza la tabella del kernel per le interfacce

Il seguente comando netstat visualizza la tabella dell'interfaccia definita dal kernel Linux. Questo comando è simile all'output fornito dal comando ifconfig di Linux.

$ netstat -ie

La -e o –estendere l'opzione forza netstat a stampare questa tabella di interfaccia. L'esempio seguente illustra lo stesso comando utilizzando la sintassi abbreviata.

$ netstat --interfaces --extend

18. Visualizza informazioni IP

È possibile visualizzare molto facilmente le appartenenze ai gruppi IPv4/IPv6 utilizzando l'utilità netstat. Dai un'occhiata al seguente semplice esempio per vedere come funziona.

$ netstat -g
$ netstat --groups

Quindi, il -g o –gruppi opzione di netstat può visualizzare le appartenenze ai gruppi multicast.

19. Visualizza i programmi di ascolto

È possibile utilizzare il programma netstat per visualizzare quali programmi stanno attivamente ascoltando le richieste di rete in arrivo. Questo è molto utile poiché puoi determinare quali programmi sono responsabili di determinate attività di rete da questo output.

$ netstat -ap | grep "http"
$ netstat --all --program | grep "http"

Stiamo semplicemente stampando tutti i programmi di ascolto e quindi filtrando gli elenchi necessari utilizzando grep. Consulta la nostra precedente guida sui comandi grep di Linux per vedere come GREP filtra i dati convogliati.

20. Visualizza le statistiche di rete RAW

Il seguente esempio di netstat mostra come usarlo per visualizzare le statistiche di rete non elaborate. Copia il comando ed eseguilo nell'emulatore di terminale per visualizzare l'output per la tua macchina personale.

$ netstat -sw
$ netstat --statistics --raw

L'output dovrebbe contenere dati statistici per connessioni di rete grezze, inclusi IP, ICMP e udplite.

21. Visualizza le informazioni per i percorsi IPv4

È possibile utilizzare il sottocomando route di netstat per visualizzare le route IPv4 definite dal kernel. Dai un'occhiata al seguente esempio per sapere come farlo.

$ netstat -r -4
$ netstat --route --inet

Quindi, –inet è la forma abbreviata di questa opzione. Puoi anche combinare le opzioni se stai utilizzando il modulo breve.

$ netstat -r4

22. Visualizza le informazioni per i percorsi IPv6

Possiamo stampare le informazioni di routing IPv6 in modo simile al comando precedente. Usa -6 o –inet6 opzione insieme al –percorso o -r bandiera. L'esempio seguente illustra questo per i lettori.

$ netstat -r -6
$ netstat --route --inet6

Si noti che i campi di output variano tra IPv4 e IPv6. Quindi, assicurati di leggere le etichette delle colonne. L'esempio seguente combina le forme abbreviate della famiglia di indirizzi IPv6.

$ netstat -r6

23. Mostra connessioni mascherate

Le connessioni mascherate consentono a uno o più sistemi, senza IP specificati, di connettersi a Internet utilizzando gli indirizzi assegnati dal server Linux. Puoi visualizzare un elenco di connessioni di rete mascherate e le relative statistiche utilizzando il seguente comando netstat in Linux.

$ netstat -M
$ netstat --masquerade

Quando esegui uno dei comandi precedenti, netstat recupera le informazioni richieste leggendo il file system /proc/net/ip_masquerade del tuo file system Linux file.

24. Temporizzatori della Rete Display

Puoi determinare se sono presenti timer per le tue connessioni di rete utilizzando -o opzione di netstat. Questo può essere utile quando stai cercando di risolvere le richieste di rete in uscita. Dai un'occhiata ai seguenti comandi per vedere come funziona.

$ netstat -t -o | more
$ netstat --tcp --timers | more

L'uscita deve contenere se sono presenti timer e, se presenti, il loro tipo. Due barre separano i campi a tre tempi. Il primo campo è il timer per il conto alla rovescia e il secondo è per tenere traccia del numero di tentativi. Infine, l'ultimo campo tiene traccia del numero di sonde keepalive che sono state inviate dallo stack TCP.

25. Visualizza indirizzi IP anziché FQDN

Per impostazione predefinita, netstat tenta di risolvere il DNS durante la stampa delle statistiche di rete. Tuttavia, puoi facilmente disabilitarlo e stampare gli indirizzi IP associati invece del FQDN(Fully Qualified Domain Name) . Ciò è utile per il monitoraggio della rete e la risoluzione dei problemi.

$ netstat --numeric-hosts --tcp --all

Gli –host-numerici l'opzione segnala a netstat di saltare le risoluzioni DNS e stampare invece gli indirizzi IP numerici. Consulta la nostra guida sui server DNS di Ubuntu per saperne di più sul sistema dei nomi di dominio.

26. Visualizza i numeri di porta numerici

Puoi omettere le informazioni sulla porta simbolica dai tuoi output netstat utilizzando le –porte-numeriche opzione. Questa opzione forza invece netstat a stampare i numeri di porta numerici. Si prega di controllare l'esempio qui sotto per vedere come funziona.

$ netstat --numeric-ports --tcp --all

Confronta l'output con l'esempio precedente per individuare le differenze. Scoprirai che questo output contiene rappresentazioni esatte del numero di porte. Questo è il numero che segue la parte host dell'output, preceduto da due punti.

27. Visualizza l'ID utente per le connessioni di rete

L'esempio seguente mostra come visualizzare l'ID utente per l'utente che possiede le connessioni di rete. Questo può essere fatto usando due opzioni del comando netstat.

$ netstat --numeric-users --tcp -e

La -e l'opzione stampa il nome dell'utente e –utenti-numerici lo converte in numeri di identificazione. Questo è l'UID (User Identification) impostato per ogni utente dal tuo sistema Linux.

28. Visualizza gli equivalenti numerici per host, porte e utenti

Puoi combinare i tre comandi netstat di cui sopra usando un'unica opzione. Ciò forzerà netstat a stampare tutti gli host, le porte e le informazioni sull'utente utilizzando il loro equivalente numerico. Dai un'occhiata ai seguenti esempi per capire cosa intendiamo.

$ netstat -nt
$ netstat --numeric --tcp

Puoi utilizzare uno dei due –numeric o -n per fare questo. Se guardi l'output, dovresti vedere gli indirizzi IP, il numero di porta e le informazioni UID in forma numerica.

29. Visualizza informazioni aggiuntive

La -e o –estendere le opzioni dell'utilità netstat consentono agli utenti di visualizzare informazioni aggiuntive per i loro comandi. Questi possono portare alla scoperta di bug nascosti. Dai un'occhiata all'esempio qui sotto per vedere come funziona.

$ netstat -tpe

Questo comando combina -t, -p e -e opzioni per stampare le connessioni TCP stabilite, i programmi che le possiedono e alcune informazioni aggiuntive. Queste informazioni aggiuntive includono l'utente e le informazioni sull'inode. Usa la -e opzione due volte per ottenere maggiori informazioni.

$ netstat --tcp --program --extend --extend

30. Visualizza la cache di routing del kernel

La cache di routing contiene le voci di routing utilizzate più di recente. Poiché si tratta di dati memorizzati nella cache, è possibile accedere alle informazioni molto rapidamente. È possibile utilizzare il comando seguente per stampare la cache del percorso utilizzando netstat.

$ netstat -rC

Per impostazione predefinita, netstat recupera le informazioni sul percorso dall'FTB. Tuttavia, poiché i sistemi di solito utilizzano i dati memorizzati nella cache prima di cercare la tabella di routing, può essere utile sapere quali contenuti sono archiviati lì. Non esiste un formato lungo per questo parametro.

31. Visualizza informazioni per più protocolli

Netstat consente agli utenti di stampare le informazioni di rete per una serie di protocolli utilizzando -A o –protocollo opzione. Gli esempi seguenti illustrano l'utilizzo di queste opzioni.

$ netstat -A inet,inet6
$ netstat --protocol=inet,inet6

Nota la differenza tra l'utilizzo di –protocollo e -A . Le famiglie di indirizzi supportate per queste opzioni includono inet, inet6, unix, ddp, bluetooth, ecc.

32. Visualizza le informazioni SCTP

SCTP o Stream Control Transmission Protocol è un nuovo e affidabile metodo di trasferimento dei dati. Offre vantaggi sia del protocollo TCP che del protocollo UDP. Puoi scoprire tutti ascoltando le connessioni SCTP usando i seguenti semplici comandi.

$ netstat -lS
$ netstat --listen --sctp

Ricorda di non usare -s per questo compito. Mostrerà invece le statistiche di rete. Puoi scoprire l'utilizzo dettagliato di SCTP utilizzando uno qualsiasi degli esempi di comandi netstat elencati di seguito.

$ netstat -sS
$ netstat --statistics --sctp

33. Visualizza le informazioni Bluetooth

Lo standard di scambio dati wireless Bluetooth utilizza diversi protocolli di comunicazione. Il Logical Link Control and Adaptation Protocol (L2CAP) e Comunicazione a radiofrequenza (RFCOMM) sono due dei suoi protocolli principali utilizzati a livello di host. È possibile visualizzare informazioni su L2CAP utilizzando i seguenti comandi.

$ netstat -2
$ netstat --l2cap

Utilizzare i seguenti comandi per visualizzare le informazioni relative al protocollo RFCOMM.

$ netstat -f
$ netstat --rfcomm

Nota che molte implementazioni di netstat non offrono il supporto Bluetooth pronto all'uso. Se viene visualizzato il messaggio "netstat:funzione 'AF BLUETOOTH' non supportata. ", quindi dovrai ricompilare l'utilità net-tools dal sorgente.

34. Visualizza valori simbolici per host, porte e utenti

Il -N o –simbolico le opzioni del comando netstat ci consentono di stampare tutte le informazioni su host, porte e utenti in forma simbolica. Dai un'occhiata al seguente esempio per sapere come funziona.

$ netstat -atN
$ netstat --all --tcp --symbolic

L'output di questi comandi conterrà un elenco di tutte le reti TCP e l'host, la porta e gli utenti verranno specificati utilizzando il loro equivalente simbolico. Può essere utile per gli amministratori che desiderano un output dettagliato anziché numerico.

35. Disattiva il troncamento dell'indirizzo IP

Puoi usare -w o –wide opzioni dell'utilità netstat per disabilitare il troncamento degli indirizzi IP. Questo non è molto utile da solo, ma offre mezzi di compatibilità con le versioni precedenti.

$ netstat -atw
$ netstat --all --tcp --wide

Se stai scrivendo script di shell Linux, usa questa opzione per assicurarti che non tronchi gli indirizzi IP su macchine meno recenti.

36. Mostra quali servizi sono in ascolto su un porto particolare

Se sei un hacker white-hat o un professionista di infosec, potresti voler vedere quali sono in ascolto su una porta specifica. Questo può essere fatto molto facilmente combinando netstat con il comando grep in Linux. Dai un'occhiata al seguente esempio di netstat per sapere come farlo.

$ netstat -ltnp | grep ':22'

Questo comando stamperà tutti i programmi che stanno ascoltando la porta TCP 22. Questo è il numero di porta per le connessioni ssh. Sostituisci questo numero con il numero di porta di tuo interesse nella parte grep.

37. Visualizza famiglie di indirizzi non supportate

Come già discusso, netstat può funzionare con un'ampia gamma di famiglie di indirizzi. Tuttavia, non tutti sono supportati da ogni implementazione di netstat. Ad esempio, molte versioni di netstat non supportano immediatamente la famiglia di indirizzi Bluetooth. Puoi controllare facilmente le famiglie di indirizzi che non sono supportate dalla tua utility netstat.

$ netstat --verbose | grep "no support for"

Questo comando stamperà tutte le famiglie di indirizzi non supportate per la tua macchina. Se vuoi usarne qualcuno, dovrai recuperare il sorgente per net-tools e compilarlo con il supporto completo per la configurazione.

38. Visualizza le informazioni sulla versione

Puoi stampare le informazioni sulla versione per il tuo programma netstat usando il -V o –versione opzione. Questo stamperà alcune informazioni aggiuntive insieme ai dati della versione.

$ netstat -V
$ netstat --version

Quando esegui uno dei comandi precedenti, vedrai un elenco di famiglie di indirizzi supportate e non supportate. Nota che i dati di versione mostrati da questo comando rappresentano la versione di net-tools installata sulla tua macchina.

39. Visualizza la pagina della guida

La pagina della guida di netstat contiene informazioni riepilogative di tutte le opzioni disponibili e del loro utilizzo. Offre un modo conveniente per cercare le opzioni. Puoi stampare questa pagina utilizzando uno dei seguenti comandi netstat.

$ netstat -h
$ netstat --help

Se sei un amministratore di rete, troverai questa sezione molto utile.

40. Visualizza la pagina del manuale

La pagina di manuale dei comandi del terminale Linux contiene informazioni approfondite sull'utilizzo del comando e sulle opzioni disponibili. Dovresti consultare questa pagina ogni volta che vuoi saperne di più su un programma specifico. La pagina man di netstat può essere richiamata usando il comando seguente.

$ man netstat

Dai un'occhiata a questa pagina se desideri elaborare informazioni su netstat e il suo formato di output.

Pensieri finali

Il comando netstat è uno dei comandi da terminale più utilizzati dagli amministratori di sistema. Tuttavia, al giorno d'oggi è diventato obsoleto e sono emersi programmi più avanzati per subentrare. Il sostituto di netstat, in generale, è il programma ss. L'utilità IP funge da sostituto di netstat -r, netstat -i, e netstat -g. Tuttavia, netstat rimane abbastanza rilevante a causa del suo diffuso utilizzo e disponibilità sulla maggior parte delle distribuzioni Linux. Incoraggiamo vivamente i nostri lettori a utilizzare le nuove alternative. Questa copertura dei comandi essenziali di netstat può fungere da punto di riferimento per gli utenti che devono utilizzare netstat.


Linux
  1. Tutorial sul comando cd di Linux per principianti (8 esempi)

  2. Tutorial comando Linux comm per principianti (5 esempi)

  3. Tutorial sul comando della data di Linux per principianti (8 esempi)

  4. Tutorial sui comandi netstat di Linux per principianti (8 esempi)

  5. 10 esempi di base del comando Linux Netstat

Esercitazione sui comandi Linux lshw per principianti (6 esempi)

Linux nl Command Tutorial per principianti (7 esempi)

Tutorial sui comandi Linux nm per principianti (10 esempi)

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)