GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di utilizzo del comando tcpdump per la risoluzione dei problemi di rete

L'utilità tcpdump consente di acquisire i pacchetti che fluiscono all'interno della rete per facilitare la risoluzione dei problemi di rete. Di seguito sono riportati diversi esempi di utilizzo di tcpdump con diverse opzioni. Il traffico viene acquisito in base a un filtro specifico. Esistono diverse opzioni, tra cui:

Opzioni Descrizione
-D Stampa un elenco di interfacce di rete.
-i Specifica un'interfaccia su cui acquisire.
-c Specifica il numero di pacchetti da ricevere.
-v, -vv, -vvv Aumenta il livello di dettaglio (verbosità).
-w Scrivi i dati acquisiti in un file.
-r Legge i dati acquisiti da un file.

Installazione dell'utilità tcpdump

Sulla maggior parte dei sistemi unix/linux non troverai il pacchetto tcpdump già installato. Per installare l'ultima versione, utilizzare il gestore di pacchetti appropriato sul sistema. Ad esempio, in caso di server CentOS/RHEL:

# yum install tcpdump

Esempi di utilizzo di tcpdump per la risoluzione dei problemi di rete

1. Visualizza l'elenco delle interfacce di rete

Per stampare un elenco di interfacce di rete disponibili su cui tcpdump può acquisire pacchetti:

# tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.any (Pseudo-device that captures on all interfaces)
5.lo [Loopback]

2. Acquisizione su un'interfaccia specifica

Come si vede dal comando 'tcpdump -D', per ogni interfaccia di rete viene stampato un numero e un nome di interfaccia. Il nome dell'interfaccia o il numero possono essere forniti a -i flag per specificare un'interfaccia su cui acquisire. Ad esempio, per acquisire i pacchetti sull'interfaccia eth0:

# tcpdump -i 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
01:26:51.118038 IP ec2-54-159-106-120.compute-1.amazonaws.com.48021 > geeklab.31297: Flags [S], seq 3960153353, win 26883, options [mss 1460,sac
kOK,TS val 2229362922 ecr 0,nop,wscale 7], length 0
01:26:51.118072 IP geeklab.31297 > ec2-54-159-106-120.compute-1.amazonaws.com.48021: Flags [S.], seq 547340507, ack 3960153354, win 26847, optio
ns [mss 8961,sackOK,TS val 5714985 ecr 2229362922,nop,wscale 7], length 0

In questo esempio, l'output è continuo finché non viene terminato premendo Ctrl + C.

3. Cattura solo un numero specifico di pacchetti

Per uscire da tcpdump dopo aver ricevuto un numero specifico di pacchetti, usa -c (count) opzione seguita dal numero di pacchetti da ricevere. L'esempio seguente acquisisce due pacchetti:

# tcpdump -i 1 -c 2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
01:37:08.956549 IP 182.100.67.76.38819 > geeklab.ssh: Flags [P.], seq 542149092:542149176, ack 774431931, win 271, options [nop,nop,TS val 26493
51 ecr 6332468], length 84
01:37:08.956575 IP geeklab.ssh > 182.100.67.76.38819: Flags [.], ack 84, win 230, options [nop,nop,TS val 6332824 ecr 2649351], length 0
2 packets captured
6 packets received by filter
0 packets dropped by kernel

Come mostrato in questo esempio, quando tcpdump termina l'acquisizione dei pacchetti, segnala quanto segue:

  • Pacchetti acquisiti :Questo è il numero di pacchetti che tcpdump ha ricevuto ed elaborato.
  • pacchetti ricevuti tramite filtro :È possibile specificare un filtro sulla riga di comando e solo i pacchetti che corrispondono al filtro definito vengono elaborati da tcpdump e contati.
  • pacchetti eliminati dal kernel :Questo è il numero di pacchetti che sono stati eliminati a causa della mancanza di spazio nel buffer. Usa l'opzione -B per impostare la dimensione del buffer.

4. Aumenta i dettagli (verbosità) dell'output

Per aumentare il dettaglio (verbosità) dell'output, usa -v opzione o -vv per un output ancora più dettagliato, o -vvv per il livello di output più dettagliato:

# tcpdump –i 1 –v
# tcpdump –i 1 -vv
# tcpdump –i 1 –vvv

5. Acquisisci i dati in un file

Utilizzo dell'utilità tcpdump con -w l'opzione consente di scrivere i dati acquisiti in un file. Ciò consente ai dati acquisiti di essere letti da altri strumenti di analisi della rete, come Wireshark. L'esempio seguente acquisisce i dati in un file denominato capture.out:

# tcpdump –i 1 –v –c2 –w capture.out

6. lettura dei dati acquisiti

Puoi anche leggere i dati acquisiti da un file utilizzando –r opzione:

# tcpdump –r capture_file

Alcuni altri esempi di comando tcpdump

Molte altre opzioni e argomenti possono essere usati con tcpdump. Di seguito sono riportati alcuni esempi specifici della potenza dell'utilità tcpdump.

1. Visualizza il traffico tra 2 host

Per visualizzare tutto il traffico tra due host (rappresentato dalle variabili host1 e host2):

# tcpdump host host1 and host2

2. Visualizza solo il traffico da un host di origine o di destinazione

Per visualizzare il traffico solo da un host di origine (src) o di destinazione (dst):

# tcpdump src host
# tcpdump dst host

3. Visualizza il traffico per un protocollo specifico

Fornisci il protocollo come argomento per visualizzare solo il traffico per un protocollo specifico, ad esempio tcp, udp, icmp, arp:

# tcpdump protocol

Ad esempio per visualizzare il traffico solo per il traffico TCP :

# tcpdump tcp

4. Filtraggio in base alla porta di origine o di destinazione

Per filtrare in base a una porta di origine o di destinazione:

# tcpdump src port ftp
# tcpdump dst port http

L'utilità tcpdump accetta anche operatori booleani (AND, NOT, OR) e raggruppamenti di operatori, consentendoti di creare filtri complessi per l'acquisizione dei dati di rete.


Linux
  1. Esempi di comandi DNF per principianti

  2. Utilizzo dello strumento SS per la risoluzione dei problemi di rete

  3. 10 esempi pratici di utilizzo del comando scp

  4. Esempi di utilizzo del comando dmsetup in Linux

  5. Esempi di comandi dsniff in Linux

Tutorial sul comando Linux tcpdump per principianti (8 esempi)

Esempi di comandi ifconfig di Linux

comando Linux tcpdump

Esempi utili di tcpdump Linux per l'amministratore di rete

10 Esempi di comandi Linux brctl per bridge di rete Ethernet

Analizzatore di pacchetti:15 esempi di comandi TCPDUMP