GNU/Linux >> Znalost Linux >  >> Linux

Příklady použití příkazu tcpdump pro řešení problémů se sítí

Obslužný program tcpdump vám umožňuje zachytit pakety, které proudí vaší sítí, a pomoci tak při odstraňování problémů se sítí. Následuje několik příkladů použití tcpdump s různými volbami. Provoz je zachycován na základě zadaného filtru. Existuje celá řada možností, včetně:

Možnosti Popis
-D Vytiskněte seznam síťových rozhraní.
-i Určete rozhraní, na kterém chcete zachytit.
-c Zadejte počet přijatých paketů.
-v, -vv, -vvv Zvyšte úroveň detailů (výřečnost).
-w Zapsat zachycená data do souboru.
-r Číst zachycená data ze souboru.

Instalace nástroje tcpdump

Na většině unixových/linuxových systémů nenajdete již nainstalovaný balíček tcpdump. Chcete-li nainstalovat nejnovější verzi, použijte příslušného správce balíčků ve vašem systému. Například v případě serverů CentOS/RHEL:

# yum install tcpdump

Příklady použití tcpdump pro odstraňování problémů se sítí

1. Zobrazit seznam síťových rozhraní

Chcete-li vytisknout seznam dostupných síťových rozhraní, na kterých může tcpdump zachytávat pakety:

# 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. Snímání na konkrétním rozhraní

Jak je vidět z příkazu ‚tcpdump -D‘, pro každé síťové rozhraní se vytiskne číslo a název rozhraní. Název rozhraní nebo číslo lze zadat do -i příznak k určení rozhraní, na kterém se má zachytit. Například pro zachycení paketů na rozhraní 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

V tomto příkladu je výstup nepřetržitý, dokud není ukončen stisknutím Ctrl + C.

3. Zachyťte pouze určitý počet paketů

Chcete-li ukončit tcpdump po přijetí určitého počtu paketů, použijte -c (count) možnost následovaná počtem paketů k přijetí. Následující příklad zachycuje dva pakety:

# 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

Jak ukazuje tento příklad, když tcpdump dokončí zachycování paketů, ohlásí následující:

  • zachycené pakety :Toto je počet paketů, které tcpdump přijal a zpracoval.
  • pakety přijaté filtrem :Filtr lze zadat na příkazovém řádku a tcpdump zpracuje a započítá pouze ty pakety, které odpovídají definovanému filtru.
  • pakety zahozené jádrem :Toto je počet paketů, které byly zahozeny kvůli nedostatku místa ve vyrovnávací paměti. Pomocí volby -B nastavte velikost vyrovnávací paměti.

4. Zvyšte podrobnosti (výřečnost) výstupu

Chcete-li zvýšit podrobnost (výřečnost) výstupu, použijte -v možnost nebo -vv pro ještě podrobnější výstup nebo -vvv pro nejpodrobnější úroveň výstupu:

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

5. Zachyťte data do souboru

Pomocí nástroje tcpdump s -w umožňuje zapisovat zachycená data do souboru. To umožňuje, aby byla zachycená data čtena jinými nástroji pro analýzu sítě, jako je Wireshark. Následující příklad zachycuje data do souboru s názvem capture.out:

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

6. čtení zachycených dat

Můžete také číst zachycená data ze souboru pomocí –r možnost:

# tcpdump –r capture_file

Několik dalších příkladů příkazu tcpdump

S tcpdump lze použít mnoho dalších voleb a argumentů. Následuje několik konkrétních příkladů výkonu nástroje tcpdump.

1. Zobrazit provoz mezi 2 hostiteli

Chcete-li zobrazit veškerý provoz mezi dvěma hostiteli (reprezentovanými proměnnými hostitel1 a hostitel2):

# tcpdump host host1 and host2

2. Zobrazit provoz pouze ze zdrojového nebo cílového hostitele

Chcete-li zobrazit provoz pouze ze zdrojového (src) nebo cílového (dst) hostitele:

# tcpdump src host
# tcpdump dst host

3. Zobrazit provoz pro konkrétní protokol

Zadejte protokol jako argument pro zobrazení pouze provozu pro konkrétní protokol, například tcp, udp, icmp, arp:

# tcpdump protocol

Například pro zobrazení provozu pouze pro provoz TCP:

# tcpdump tcp

4. Filtrování na základě zdrojového nebo cílového portu

Chcete-li filtrovat na základě zdrojového nebo cílového portu:

# tcpdump src port ftp
# tcpdump dst port http

Obslužný program tcpdump také přijímá logické operátory (AND, NOT, OR) a seskupování operátorů, což vám umožňuje vytvářet složité filtry pro zachycování síťových dat.


Linux
  1. Příklady příkazů DNF pro začátečníky

  2. Použití nástroje SS pro řešení problémů se sítí

  3. 10 Praktické příklady použití příkazu scp

  1. 12 Příklady IP příkazů pro uživatele Linuxu

  2. Příklady použití příkazu dmsetup v Linuxu

  3. Příklady příkazů dsniff v Linuxu

  1. Příkaz Tcpdump v Linuxu

  2. Linuxový příkaz dir pro začátečníky (10 příkladů)

  3. Příkaz Linux rm vysvětlený pro začátečníky (8 příkladů)