tcpdump(8)
tcpdump(8) – fånga och visa nätverkstrafik
Namn
tcpdump – dumpar (beskriver/fångar) paket på ett nätverksgränssnitt.
Synopsis
tcpdump [flaggor] [uttryck]
Exempel (kort): tcpdump -nn -i eth0 -w filer.pcap 'port 53'
Beskrivning
tcpdump skriver en människoläsbar beskrivning av paket som matchar ett BPF-filter (”uttryck”). Med -w sparar du råpaket till fil; med -r läser du från fil i stället för live. Utan -c kör den tills du avbryter (Ctrl-C). Vid avslut skrivs räkningar för fångade, filtrerade och (ev.) av kärnan tappade paket.
Flaggor
| Flagga | Argument | Beskrivning | Noteringar |
|---|---|---|---|
| -A | – | Skriv nyttolast i ASCII | Praktiskt för t.ex. HTTP-text |
| -B | buffer_size | OS-buffert för fångst (KiB) | Större kan minska tapp |
| -c | count | Avsluta efter N paket | Kombineras ofta med -w |
| -C | file_size | Rotera utfil när storlek nås (MB som standard) | Används med -w |
| -d | – | Dumpa kompilerat filter (läsbart) och avsluta | Felsök filter |
| -dd | – | Dumpa filter som C-array | |
| -ddd | – | Dumpa filter som decimaltal | |
| -D | – | Lista fångstbara gränssnitt | Använd index med -i |
| -e | – | Skriv länk-header (MAC m.m.) | Ethernet/802.11 |
| -E | spi@ip algo:hemlighet | Dekryptera IPv4 ESP (debug) | Risk: nyckel syns i ps
|
| -f | – | Skriv ”utländska” IPv4-adresser numeriskt | Undvik DNS-häng |
| -F | fil | Läs filter från fil | Ignorerar uttryck på CLI |
| -G | sekunder | Rotera -w-fil varje N sekunder | Lägg gärna tidsformat i filnamn |
| -i | interface | Välj gränssnitt | any = alla (ej promisc)
|
| -I | – | Monitor-läge (802.11) | Kan koppla ned Wi-Fi |
| -K | – | Verifiera ej IP/TCP/UDP-checksummor | Nödvändigt vid hw-offload |
| -l | – | Radbuffra stdout | Bra med tee/tail -f
|
| -L | – | Lista länktyper för -i (ev. beroende av -I) | |
| -m | modul | Ladda SMI MIB-modul(er) | SNMP-tolkning |
| -M | secret | TCP-MD5 verifiering (RFC 2385) | |
| -n | – | Inga namnuppslag (hosts) | Snabbare, mindre brus |
| -nn | – | Inga namn alls (hosts/portar/protokoll) | Rekommenderas vid felsökning |
| -N | – | Ta bort domändel vid namn | ”nic” i st. f. ”nic.ddn.mil” |
| -O | – | Stäng av filteroptimering | Endast om du misstänker bugg |
| -p | – | Sätt inte promisc-läge | Gränssnitt kan ändå vara promisc |
| -q | – | Kortare, tystare utskrift | |
| -R | – | Tolka ESP/AH som äldre RFC1825-1829 | Legacy |
| -r | fil | Läs paket från fil (-) = stdin | pcap/pcapng |
| -S | – | Visa absoluta TCP-sekvensnummer | Standard visar relativa |
| -s | snaplen | Snaplängd (default 262144 el. 65535) | proto]” |
| -T | typ | Tvinga tolkning som viss protokolltyp | t.ex. dns, snmp, tftp
|
| -t | – | Ingen tidsstämpel | |
| -tt | – | Rå epoksekunder | |
| -ttt | – | Delta mot föregående rad | μs/ns beroende på bygg |
| -tttt | – | Datum + klockslag | |
| -ttttt | – | Delta mot första rad | |
| -u | – | Skriv NFS-handles odekod. | |
| -U | – | Paketbuffra ut (flusha per paket) | Gäller -w eller utskrift |
| -v | – | Mer verbos | TTL, ID, options; checksumkontroller |
| -vv | – | Ännu mer verbos | Mer NFS/SMB-fält |
| -vvv | – | Max verbos | Fulla telnet-options, m.m. |
| -w | fil | Skriv råpaket till fil (-)=stdout | Öppna i Wireshark |
| -W | count | Begränsa antal roterade filer | Cyklar/överskriver |
| -x | – | Dumpa nyttolast (utan länk-hdr) i hex | |
| -xx | – | Dumpa inkl. länk-hdr i hex | |
| -X | – | Hex + ASCII (utan länk-hdr) | Bra för textprotokoll |
| -XX | – | Hex + ASCII inkl. länk-hdr | |
| -y | typ | Välj datalänktyp (se -L) | |
| -z | kommando | Kör kommando på roterad fil | t.ex. -z gzip
|
| -Z | user | Släpp rootprivilegier till user | Ofta default -Z tcpdump
|
Uttryck (BPF-filter): välj vilka paket som fångas. Exempel: host 192.0.2.10, port 443, tcp[tcpflags] & (tcp-syn|tcp-fin) != 0. Se även pcap-filter(7).
Snabba exempel
- Alla paket till/från värd:
tcpdump -nn host 192.168.1.10 - DNS (UDP 53):
tcpdump -nn udp port 53 - HTTP:
tcpdump -nn tcp port 80 - HTTPS-handshake:
tcpdump -nn tcp port 443 - Endast datasändande HTTP (ej SYN/FIN/ACK-only):
tcpdump 'tcp port 80 and (((ip[2:2]-((ip[0]&0xf)<<2))-((tcp[12]&0xf0)>>2)) != 0)' - ICMP (ping m.m.):
tcpdump -nn icmp - DHCP:
tcpdump -nn -v udp port 67 or port 68 - SYN-floodindikator:
tcpdump -nn 'tcp[tcpflags] & (tcp-syn|tcp-ack) = tcp-syn' - Fånga allt till fil:
tcpdump -s0 -w capture.pcap - Läs från fil:
tcpdump -nn -r capture.pcap
Utdata (kortfattat)
-evisar länk-hdr (t.ex. MAC-adresser).- IPv4-rader börjar ofta med IP (om länk-hdr ej skrivs).
- TCP-rad:
src > dst: Flags [SFP.RWE.] seq a:b ack n win w len L(+ ev. options). - Fragment visas som
(frag id:size@offset[+]). - Tidsstämplar styrs av
-t/-tt*.
Tips
- Kör nästan alltid med
-nn(snabbare, mindre brus). - Öka snaplen med
-s0om du saknar nyttolast i pcap. - Vid hårdvaru-checksummor som ”ser trasiga ut”: använd
-K. - Rotera stora fångster:
-G(tid) eller-C(storlek) +-W.
Se även
pcap(3PCAP), pcap-savefile(5), pcap-filter(7)
Sidslut
Orginalhemsidan på Engelska :https://linux.die.net/man/8/tcpdump
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.