GNU/Linux >> Linux Esercitazione >  >> Linux

Risoluzione dei problemi di rete dalla riga di comando con TShark

Un modo per ottimizzare l'acquisizione dei pacchetti è utilizzare uno strumento di interfaccia a riga di comando e, tra tutti gli strumenti che puoi trovare, TShark è uno che devi provare. TShark è l'equivalente della GUI di Wireshark, che fornisce preziose informazioni sul traffico catturato nella tua rete.

Una cosa che lo rende eccezionale è che invece di fare clic su più pulsanti e sfogliare vari menu, puoi digitare un solo comando per ottenere le informazioni di cui hai bisogno.

Continua a leggere e non perdere mai più ore ad analizzare le tue acquisizioni di pacchetti!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri seguire, assicurati di avere quanto segue.

  • Una macchina Linux – Questo tutorial utilizza Ubuntu 20.04 LTS, ma qualsiasi distribuzione Linux funzionerà.
  • Un utente non root con privilegi sudo.
  • Wireshark installato sulla tua macchina.

Installazione di TShark su Ubuntu

TShark non viene installato sulla tua distribuzione Linux per impostazione predefinita, quindi prima di poterne approfittare, dai il via a questo tutorial installando TShark sul tuo computer.

Usando il tuo gestore di pacchetti, puoi installare sulla maggior parte delle distribuzioni Linux e dei sistemi operativi BSD. Ma per questa demo, installerai utilizzando il gestore di pacchetti APT.

1. Esegui apt update comando seguente per assicurarti che il tuo gestore di pacchetti sia aggiornato. Questo comando aggiorna l'elenco dei pacchetti del tuo sistema e le loro versioni correnti.

sudo apt update -y

2. Quindi, esegui apt install comando seguente per installare lo strumento da riga di comando TShark sul tuo computer.

sudo apt install tshark -y

3. Esegui il tshark --version di seguito comando per assicurarsi che lo strumento sia disponibile sul sistema.

tshark --version

Otterrai un output come quello qui sotto. Al momento della stesura di questo articolo, la versione corrente è la 3.4.8, ma la tua versione potrebbe essere diversa.

4. Infine, esegui tshark --help comando di seguito per vedere tutti i comandi disponibili. Comandi

tshark --help

Puoi utilizzare molti dei suoi comandi, come mostrato di seguito, per ottenere informazioni sui dati acquisiti nella tua rete. Questo output mostra solo un piccolo numero di comandi disponibili. Imparerai l'uso di base di alcuni di questi comandi nelle sezioni seguenti.

Cattura di tutti i pacchetti da un'interfaccia di rete

Ora che lo hai installato, puoi acquisire pacchetti e analizzare i dati di rete acquisiti. Puoi acquisire i dati di rete utilizzando un'interfaccia specifica, ma prima di acquisire i dati, dovrai avviare e specificare l'interfaccia di rete in cui acquisirai i dati.

1. Esegui tshark comando per elencare tutte le interfacce di rete disponibili (-D ) che T-shark riesce a trovare, anche quelli vecchi e inattivi.

sudo tshark -D 

Vedrai un elenco delle interfacce disponibili sul tuo sistema, come mostrato di seguito. Se nel tuo sistema sono installate più schede di rete, esegui sempre il comando tshark -D prima di avviare e specificare un'interfaccia.

2. Quindi, esegui ip link comando seguente (su sistemi Linux e BSD) per elencare tutte le interfacce di rete attive. Devi selezionare un'interfaccia di rete attiva da utilizzare.

Sebbene TShark elenchi tutte le interfacce di rete sul tuo sistema, non tutte potrebbero essere attive in quel momento.

sudo ip link show 

Nella maggior parte dei casi, utilizzerai un'interfaccia di rete, come una scheda ethernet. In questo esempio, annota eth0, come mostrato di seguito, per acquisire i pacchetti.

3. Infine, esegui il seguente tshark comando per selezionare un'interfaccia (-i ) e acquisire pacchetti live. Sostituisci interface con l'interfaccia che hai notato nel passaggio due.

sudo tshark -i interface

Una volta che inizi a catturare i dati, vedrai i pacchetti visualizzati in tempo reale, come mostrato di seguito. E in qualsiasi momento, puoi premere Ctrl+C per interrompere l'acquisizione dei pacchetti.

Come altri popolari strumenti di analisi dei pacchetti di reti dati, come tcpdump e Wireshark, Tshark usa pcap libreria (libpcap) per acquisire pacchetti. In questo caso, la libreria pcap viene utilizzata per acquisire i pacchetti dall'interfaccia eth0.

Come puoi vedere di seguito, stampa la forma decodificata dei pacchetti acquisiti, ogni riga in un formato leggibile dall'uomo sullo standard output (stdout) sul tuo terminale.

Cattura di un numero specifico di pacchetti

Supponiamo che tu sia interessato ad analizzare un numero specifico di pacchetti. In tal caso, invece di acquisire tutti i pacchetti, specifica il numero di pacchetti da acquisire e analizzali direttamente.

Per acquisire un numero specifico di pacchetti, aggiungi il -c opzione (conteggio pacchetti di acquisizione) nel tshark comando.

Esegui il comando seguente per acquisire i primi 10 pacchetti (-c 10 ) per verificare se i pacchetti vengono instradati a tshark correttamente. Sostituisci 10 con il numero preferito di pacchetti da acquisire.

sudo tshark -i eth0 -c 10

Se preferisci catturare i pacchetti e sopprimere la visualizzazione dei pacchetti, aggiungi il -q opzione invece. Il -q l'opzione è utile se vuoi solo vedere il numero totale di pacchetti catturati e non vuoi scorrere continuamente le uscite sul tuo terminale.

Esegui il comando seguente per acquisire i pacchetti durante la soppressione (-q ) le uscite.

sudo tshark -i eth0 -q

Non appena si preme Ctrl+C, TShark stampa il numero totale di pacchetti acquisiti nel terminale. Di seguito puoi vedere un totale di 84 pacchetti acquisiti.

Acquisizione di pacchetti specifici tramite stringa di filtro

Forse il numero di pacchetti catturati è troppo grande ed è quasi impossibile cercare una stringa specifica usando solo i tuoi occhi. In questo caso, dovrai utilizzare un filtro per catturare i pacchetti in base alla stringa di tua scelta.

Utilizzerai le espressioni del filtro di acquisizione di TShark per selezionare i pacchetti in base ai protocolli, alle coppie host/porta di origine/destinazione e così via. Ad esempio, la tua connessione SSH non funziona e desideri acquisire solo i pacchetti relativi alla connessione SSH.

Esegui il comando seguente per acquisire e filtrare i pacchetti (-f ) con il tcp port 22 stringa.

sudo tshark -i eth0 -f "tcp port 22" -c 10

Se il filtro di stringa non è sufficiente, puoi anche utilizzare il filtro di visualizzazione dopo aver eseguito un filtro di acquisizione per restringere la ricerca e analizzare pacchetti specifici. Il filtro di visualizzazione sfrutta gli operatori di confronto (!==,===,==e così via.) per testare stringhe, modelli o sequenze di byte.

Puoi anche utilizzare gli operatori booleani (and, or, not) e il raggruppamento tra parentesi per specificare espressioni più complesse.

Ad esempio, dopo aver trovato gli indirizzi IP che usi per connetterti a SSH, ora vuoi approfondire ulteriormente i pacchetti. In questo caso, utilizzerai == (Uguale (qualsiasi se più di uno)) operatore, come mostrato di seguito.

Esegui il tshark comando seguente per acquisire e visualizzare il primo 10 pacchetti filtrati (-Y ) relativo al 69.28.83.134 Indirizzo IP.

sudo tshark -i eth0 -Y 'ip.addr == 69.28.83.134' -c 10

Puoi vedere che l'output di seguito mostra solo i pacchetti relativi a 69.28.83.134 Indirizzo IP.

Salvataggio dei pacchetti acquisiti in un file

La visualizzazione dei pacchetti acquisiti in tempo reale consente di agire immediatamente per la risoluzione dei problemi. Ma forse non hai tempo per risolvere i problemi al momento. Allora perché non salvare i pacchetti catturati in un file? Ad esempio, la tua connessione SSH ha funzionato correttamente e improvvisamente la connessione non è disponibile.

Scorrere i pacchetti nel terminale non fornisce sempre informazioni per capire cosa sta causando il problema. In questo caso, puoi utilizzare TShark per salvare i pacchetti acquisiti e condividerli con i tuoi amici o colleghi che ritieni possano aiutarti.

Esegui il comando seguente per archiviare i pacchetti acquisiti in un file .pcap file. Il comando esegue le seguenti operazioni:

  • Imposta l'opzione del buffer dell'anello di acquisizione (-b ), che fa apparire la modalità file multipli. In questa modalità, TShark scrive i pacchetti acquisiti su file numerati. Una volta che la dimensione del primo file è piena, TShark passa al file successivo e così via.
  • Comanda a TShark di creare 10 file (-a files:10 ) contenente i pacchetti catturati nella modalità di funzionamento del buffer circolare, ciascun file contenente 1024 KB (1 MB). Se non aggiungi il files opzione, la modalità di funzionamento del buffer ad anello verrà eseguita per sempre fino a quando lo spazio su disco non sarà pieno o si verificherà una condizione di arresto.

Non c'è limite al numero di file che puoi usare con questa opzione. Ma si noti che la dimensione totale di tutti i file nella modalità di funzionamento del buffer ad anello non può superare i 2 GB. Una volta raggiunto questo limite, TShark si ferma e attende finché non liberi spazio su disco eliminando alcuni file prima di continuare.

  • Scrive i pacchetti in un file (-w ), in questo caso, ata.pcap , mentre esegui l'acquisizione su un'interfaccia specifica (eth0 ).
sudo tshark -i eth0 -f "tcp port 22" -b filesize:1024 -a files:10 -w ata.pcap

TShark non mostra l'avanzamento della scrittura e il conteggio continuo dei pacchetti acquisiti durante la scrittura su un file. Vedrai solo il numero di pacchetti acquisiti, come mostrato di seguito.

Ora, premi CTRL+C per interrompere il processo di scrittura a un certo punto. Avrai un nuovo file, come mostrato di seguito, contenente i pacchetti acquisiti durante la sessione.

Ora puoi condividere questo file con il tuo amico e continuare a eseguire il debug del problema insieme!

Conclusione

In questo tutorial, hai imparato a installare TShark su una macchina Ubuntu. Hai anche imparato ad aggiungere filtri per cercare pacchetti catturati specifici e scrivere i pacchetti catturati in un file.

A questo punto, conosci già TShark e le sue opzioni di base della riga di comando per gestire i pacchetti. Ora puoi iniziare a risolvere i problemi di rete da solo o farne un motivo per legare con alcuni amici!

Con questa nuova conoscenza, perché non installare Tshark insieme a Wireshark per i pacchetti di monitoraggio in AWS EC2? O forse misurare il bitrate di un flusso video?


Linux
  1. 5 Comandi per la risoluzione dei problemi di rete Linux

  2. Come accedere a un database Postgresql dalla riga di comando

  3. Non riesco a navigare in rete da Nautilus?

  4. Come tenere traccia del tempo dalla riga di comando?

  5. Scansiona la rete locale con arp-scan su Ubuntu

Gestisci il tuo calendario dal terminale Linux con il comando konsolekalendar

Impara Linux con Raspberry Pi

Fai una pausa dalla riga di comando di Linux con Nyan Cat

Scrivi una ISO sull'unità USB direttamente da Internet con BTFS

Utilizzo delle immagini Docker dalla riga di comando

Determina il nome della rete wireless dalla riga di comando in Linux