tcpdump(1)

Från Wiki.linux.se
Version från den 7 september 2025 kl. 04.26 av Admin (diskussion | bidrag)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

tcpdump(1)

NAMN

tcpdump – dumpa/visa nätverkstrafik

SYNOPSIS

tcpdump [ -AbdDefghHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] [ -c count ] [ --count ]
        [ -C file_size ] [ -E spi@ip algo:secret,... ] [ -F file ] [ -G rotate_seconds ]
        [ -i interface ] [ --immediate-mode ] [ -j tstamp_type ] [ --lengths ]
        [ -m module ] [ -M secret ] [ --number ] [ --print ] [ --print-sampling nth ]
        [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ --skip count ]
        [ -T type ] [ --version ] [ -V filelist ] [ -w file ] [ -W filecount ]
        [ -y datalinktype ] [ -z postrotate-cmd ] [ -Z user ]
        [ --time-stamp-precision micro|nano | --micro | --nano ]
        [ expression ]

BESKRIVNING

tcpdump skriver en textbeskrivning av paket som matchar ett BPF-filter (se pcap-filter(7)). Det kan också spara råpaket till fil (-w) och/eller läsa från tidigare inspelning (-r/-V). Kräver ofta särskilda rättigheter för att läsa från nätverksinterface.

FLAGGOR

Flagga Beskrivning
-i iface Välj interface (any för alla). -D listar tillgängliga; -L listar länktyper; -J listar tidsstämpeltyper.
--immediate-mode Leverera paket omedelbart (mindre buffring – bra för interaktiv visning).
-c n / --count Stoppa efter n paket / skriv endast antal vid läsning av fil(er).
'-s snaplen Snapshottlängd (standard 262144). För liten längd kan trunkera nyttolast.
-w fil / -r fil / -V lista Skriv råpcap/pcapng till fil, läs från fil, eller läs filnamn från lista/STDIN.
-C MB / -G sek / -W antal Roterande inspelningsfiler: efter storlek, tid eller begränsat antal. Kombineras med -w.
-z kommando Kör post-rotationskommando (t.ex. gzip) på stängd fil (ej Windows).
-B KiB Ställ OS-fångstbuffertstorlek.
-p Sätt inte interfacet i promiscuous-läge (kan redan vara promisc av annan orsak).
-nn / -n / -N Ingen namnuppslagning (host/port/proto). -N tar bort domändel vid värdnamn.
-e Skriv länklagerhuvud (t.ex. MAC-adresser).
-y linktype Välj datalänktyp (se -L).
out|inout Välj riktning (ej på alla plattformar).
-t / -tt / -ttt / -tttt / -ttttt Kontroll av tidsstämpelutskrift (ingen; epoch; delta; datum+tid; delta mot första).
nano / --micro / --nano Precision i utskrift och fångst (beroende av plattform/hårdvara).
-j tstype Sätt tidsstämpeltyp (se pcap-tstamp(7)).
-U / -l Paketbuffrad (-U) / radbuffrad (-l) utskrift. --print tvingar tolkad utskrift även vid -w.
'--print-sampling n Tolka/skriv endast vart n:te paket (snabbare parsing). Aktiverar --print och -S.
'--skip n Hoppa över n paket innan skriv/visning.
-v / -vv / -vvv Mer detaljerad tolkning (protokollfält, checksummor, extra felkontroller).
-x / -xx / -X / -XX Skriv nyttolast: hex (utan/med länkhuvud) / hex+ASCII (utan/med länkhuvud).
-A Visa nyttolast som ren ASCII (praktiskt för HTTP).
-O Inaktivera BPF-optimering (felsökning).
-F fil Läs filteruttryck från fil (kommandoradsfilter ignoreras då).
-T typ Tvinga tolkning som viss applikation (t.ex. dns, snmp, rpc, quic, vxlan m.fl.).
-E spi@ip algo:secret Dekryptera IPsec ESP (debug; synlig nyckel på kommandorad – varning).
-M secret Validera TCP-MD5 (RFC 2385) med delad hemlighet.
-K Verifiera inte IP/TCP/UDP-checksummor (användbart om NIC offloadar checksummor).
-S Använd absoluta TCP-sekvensnummer (ej relativa).
-g / --ip-oneline Ingen radbrytning efter IP-huvud i verbosläge.
--lengths Skriv fångad/ursprunglig paketlängd i början av raden.
-Z user Släpp root-rättigheter till användare efter öppning av input/output.
--version / -h / --help Versionsinfo / hjälptext.

Tips: Kombinationen -nnvvXS är ofta nyttig för djup felsökning; -i any -nn -s0 -w cap.pcap för bred inspelning.

EXEMPEL

  • Alla paket till/från värden sundown:
 tcpdump host sundown
  • Endast initiala SYN (etableringar):
 tcpdump 'tcp[13] & 2 == 2'
  • HTTP-data (port 80) med nyttolast, ej rena ACK/SYN/FIN:
 tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
  • Spara roterande filer om 100 MB, max 10 st:
 tcpdump -i any -w web.pcap -C 100 -W 10 'tcp port 80'
  • Läs flera filer listade i en textfil:
 tcpdump -V filelist.txt -nn --count

FILTER

Filteruttryck följer pcap-filter(7). Du kan ge uttrycket som ett enda citerat argument eller flera argument (konkateneras med mellanslag).

SE ÄVEN

pcap(3PCAP), pcap-savefile(5), pcap-filter(7), pcap-tstamp(7), tcpkill(8), tcpnice(8), dsniff(8)

ANMÄRKNINGAR

  • Högprecisionsstämplar (nano) beror på OS/NIC-stöd.
  • Inspelning under hög last kan tappa paket utan tillräckliga buffertar (se -B, -s, --immediate-mode).
  • any-interface fångas inte promiscuous-läge och fler protokolltyper kan förekomma än väntat.

Vanliga tcpdump-recept

DNS

  • Alla DNS (UDP/TCP 53), utan namnuppslagning:
tcpdump -nn port 53
  • Endast DNS-frågor (QR=0):
tcpdump -nn 'udp port 53 and udp[10] & 0x80 = 0'
  • Endast DNS-svar (QR=1):
tcpdump -nn 'udp port 53 and udp[10] & 0x80 != 0'
  • DNS över TCP:
tcpdump -nn tcp port 53
  • DNS över TLS (DoT, port 853):
tcpdump -nn tcp port 853
  • DNS över HTTPS (DoH, port 443 + filter):
tcpdump -nn 'tcp port 443 and (dst port 443 and (tcp[((tcp[12]&0xf0)>>2)] = 0x16))'

DHCP / BOOTP

  • Klient/Server (67/68):
tcpdump -nn port 67 or port 68
  • DHCPv6 (546/547):
tcpdump -nn 'udp port 546 or udp port 547'

mDNS & LLMNR

  • mDNS (224.0.0.251:5353 / ff02::fb:5353):
tcpdump -nn port 5353
  • LLMNR (UDP 5355):
tcpdump -nn port 5355

HTTP / HTTPS (TLS)

  • HTTP (80) med payload i ASCII:
tcpdump -nnA tcp port 80
  • HTTP(S) data (uteslut rena ACK/SYN/FIN):
tcpdump -nn 'tcp port 80 or 443 and (((ip[2:2]-((ip[0]&0xf)<<2))-((tcp[12]&0xf0)>>2)) > 0)'
  • TLS ClientHello + försök extrahera SNI:
tcpdump -nn -s0 -A 'tcp port 443 and tcp[((tcp[12]&0xf0)>>2)] = 0x16'

QUIC (HTTP/3)

  • Standardport 443/UDP:
tcpdump -nn udp port 443
  • Tolka som QUIC:
tcpdump -nn -T quic udp port 443

ICMP / ICMPv6

  • Ping (ICMP echo/echo-reply):
tcpdump -nn 'icmp and (icmp[icmptype] = icmp-echo or icmp[icmptype] = icmp-echoreply)'
  • All ICMPv6:
tcpdump -nn icmp6
  • NDP (Neighbor Solicitation/Advertisement): = Sidslut =

Orginalhemsidan på Engelska :https://linux.die.net/man/1/wipe 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.

tcpdump -nn 'icmp6 and (ip6[40] = 135 or ip6[40] = 136)'

ARP

  • Alla ARP:
tcpdump -nn arp
  • ”Vem har …”:
tcpdump -nn 'arp[7] = 1'

TCP-handskakning och flaggor

  • Endast initiala SYN (utan ACK):
tcpdump -nn 'tcp[13] & 2 = 2 and tcp[13] & 16 = 0'
  • SYN+ACK:
tcpdump -nn 'tcp[13] & 18 = 18'
  • RST:
tcpdump -nn 'tcp[13] & 4 != 0'
  • PSH:
tcpdump -nn 'tcp[13] & 8 != 0'

TCP-prestanda

  • Paket med nyttolast:
tcpdump -nn 'tcp[((tcp[12]&0xf0)>>2):1] != 0'
  • Retransmissions (heuristik):
tcpdump -nnvv 'tcp[tcpflags] & (tcp-ack|tcp-rst) = tcp-ack and tcp[13] & 0x3F = 0'

E-postprotokoll

  • SMTP / IMAP / POP3 (klartext före STARTTLS):
tcpdump -nnA 'tcp port 25 or 110 or 143'

SSH

  • Handshake/nyckelutbyte (för analys av latens, ej innehåll):
tcpdump -nn tcp port 22

NTP

  • NTP (UDP 123):
tcpdump -nn udp port 123

SMB/CIFS

  • SMBv1/v2/v3 (137/138/139/445):
tcpdump -nn 'port 137 or port 138 or port 139 or port 445'

VPN / IPsec / WireGuard

  • ESP:
tcpdump -nn proto 50
  • IKEv2:
tcpdump -nn 'udp port 500 or udp port 4500'
  • WireGuard (UDP 51820):
tcpdump -nn udp port 51820
  • OpenVPN (UDP 1194):
tcpdump -nn udp port 1194

Multicast / IGMP

  • IGMP:
tcpdump -nn igmp

Kubernetes / etcd

  • etcd (2379-2380):
tcpdump -nn port 2379 or port 2380
  • Kube-apiserver (6443):
tcpdump -nn port 6443

Trådlöst (802.11)

  • Monitorläge + radiotagg (om stöds):
tcpdump -I -i wlan0 -y IEEE802_11_RADIO
  • Assoc/beacon/probe (management):
tcpdump -nn -I -i wlan0 'type mgt'

Spara till fil

  • Spara till cap.pcap:
tcpdump -i any -s0 -w cap.pcap
  • Rotera filer, 200 MB, max 20, med gzip:
tcpdump -i any -s0 -w cap.pcap -C 200 -W 20 -z gzip


Tcpdump – snabböversikt

Protokoll / Tjänst Port(ar) Exempelkommando
DNS 53 (UDP/TCP) tcpdump -nn port 53
DHCP / BOOTP 67–68 (UDP) tcpdump -nn port 67 or port 68
DHCPv6 546–547 (UDP) tcpdump -nn 'udp port 546 or udp port 547'
mDNS 5353 (UDP) tcpdump -nn port 5353
LLMNR 5355 (UDP) tcpdump -nn port 5355
HTTP 80 (TCP) tcpdump -nnA tcp port 80
HTTPS / TLS 443 (TCP) tcpdump -nn tcp port 443
QUIC / HTTP/3 443 (UDP) tcpdump -nn udp port 443
ICMP (ping) tcpdump -nn icmp
ICMPv6 tcpdump -nn icmp6
ARP tcpdump -nn arp
SMTP / E-post 25 (TCP) tcpdump -nnA tcp port 25
POP3 110 (TCP) tcpdump -nnA tcp port 110
IMAP 143 (TCP) tcpdump -nnA tcp port 143
SSH 22 (TCP) tcpdump -nn tcp port 22
NTP 123 (UDP) tcpdump -nn udp port 123
SMB/CIFS 137–139, 445 (TCP/UDP) tcpdump -nn 'port 137 or 138 or 139 or 445'
IPsec ESP – (proto 50) tcpdump -nn proto 50
IPsec IKEv2 500, 4500 (UDP) tcpdump -nn 'udp port 500 or 4500'
WireGuard 51820 (UDP) tcpdump -nn udp port 51820
OpenVPN 1194 (UDP) tcpdump -nn udp port 1194
IGMP tcpdump -nn igmp
etcd (Kubernetes) 2379–2380 (TCP) tcpdump -nn port 2379 or port 2380
Kube-apiserver 6443 (TCP) tcpdump -nn port 6443
Wi-Fi (802.11) – (monitorläge) tcpdump -I -i wlan0 -y IEEE802_11_RADIO
Spara till fil tcpdump -i any -s0 -w cap.pcap

Tcpdump – avancerade filter

Scenario Exempelkommando Förklaring
Endast TCP SYN (nya anslutningar) tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0' Matchar bara första SYN (inte SYN/ACK).
Endast TCP RST tcpdump 'tcp[tcpflags] & tcp-rst != 0' Fångar återställningspaket (anslutningar som avslås).
Endast TCP FIN tcpdump 'tcp[tcpflags] & tcp-fin != 0' Matchar stängning av anslutningar.
DNS-frågor (UDP) tcpdump -nn -s0 -v udp port 53 and 'udp[10] & 0x80 = 0' Filtrerar enbart frågor (inte svar).
DNS-svar (UDP) tcpdump -nn -s0 -v udp port 53 and 'udp[10] & 0x80 != 0' Filtrerar enbart svar.
HTTP GET-förfrågningar tcpdump -nnA -s0 tcp port 80 and 'tcp[((tcp[12]&0xf0)>>2):4] = 0x47455420' Söker efter strängen "GET " i nyttolasten.
HTTPS SNI (Client Hello) tcpdump -nn -s0 -v -A tcp port 443 and 'tcp[((tcp[12]&0xf0)>>2)] = 0x16' Matchar TLS handskakning (typ 0x16).
Endast ICMP Echo Request (ping) tcpdump 'icmp[icmptype] = icmp-echo' Matchar ping-förfrågningar.
Endast ICMP Echo Reply (pong) tcpdump 'icmp[icmptype] = icmp-echoreply' Matchar ping-svar.
IPv6 Neighbor Solicitation tcpdump 'icmp6 and ip6[40] = 135' ICMPv6 typ 135.
IPv6 Neighbor Advertisement tcpdump 'icmp6 and ip6[40] = 136' ICMPv6 typ 136.
DHCP Discover tcpdump -nn -v udp and (port 67 or port 68) and 'udp[242] = 1' Matchar DHCPDISCOVER (option 53 = 1).
DHCP Request tcpdump -nn -v udp and (port 67 or port 68) and 'udp[242] = 3' Matchar DHCPREQUEST (option 53 = 3).
SYN-flood detektering tcp-ack) = tcp-syn' Visar många rena SYN kan tyda på attack.
Spåra endast ett IP tcpdump host 192.168.1.10 All trafik till/från 192.168.1.10.
Uteslut ett IP tcpdump not host 192.168.1.1 All trafik förutom till/från gateway.
Fångar endast ingress tcpdump inbound Trafik som anländer till maskinen.
Fångar endast egress tcpdump outbound Trafik som lämnar maskinen.
Spara rå dump för vidare analys tcpdump -s0 -w filnamn.pcap Full capture utan filtrering, för senare analys i Wireshark.

Tcpdump – felsökningsrecept

Scenario Exempelkommando Vad du kan se
DNS fungerar inte tcpdump -nn -i eth0 udp port 53 Ser om DNS-förfrågningar lämnar maskinen och om svar kommer tillbaka.
Kontrollera om HTTP-trafik blockeras tcpdump -nn -i eth0 tcp port 80 Ser om paket till/från port 80 passerar brandväggen.
Felsöka HTTPS-anslutningar tcpdump -nn -i eth0 tcp port 443 Ser om TLS-handshake sker och om klienten får svar.
Identifiera SYN flood tcp-ack) = tcp-syn' Massor av rena SYN-paket utan svar kan tyda på SYN-flood.
Hitta paket till/från specifik server tcpdump -nn host 192.168.1.10 All trafik till/från den servern.
Uteslut trafik till gateway tcpdump -nn not host 192.168.1.1 All trafik förutom mot routern.
Kontrollera ICMP (ping) tcpdump -nn icmp Ser om pingförfrågningar och svar går igenom.
Spåra långsam SSH-inloggning tcpdump -nn tcp port 22 Ser om paket utbyts och om det blir fördröjningar i handskakningen.
Debugga DHCP (får ingen IP) tcpdump -nn -v udp port 67 or port 68 Ser DHCP Discover/Offer/Request/Ack mellan klient och server.
Upptäck ARP-problem tcpdump -nn arp Ser ARP-förfrågningar och svar (kan avslöja felaktig eller saknad ARP).
Misstänkt hög trafik från en klient tcpdump -nn src host 192.168.1.50 All trafik som en specifik klient skickar ut.
Se om portscanning pågår tcpdump -nn and dst host 192.168.1.10 Många anslutningsförsök till olika portar kan tyda på scanning.
Fånga all trafik för senare analys tcpdump -s0 -w capture.pcap Skriver full dump till fil som kan öppnas i Wireshark.
Kontrollera om brandvägg droppar svar tcpdump -nn tcp and src port 80 Om du ser att svar skickas men klienten inte får dem, blockeras något på vägen.
Debugga NFS-problem tcpdump -nn port 2049 Ser NFS-förfrågningar och svar.
Misstänkt SNMP-trafik tcpdump -nn udp port 161 Visar SNMP-requests och ev. okända enheter som pollar.
Identifiera VPN-handshake (IKE) tcpdump -nn udp port 500 Ser IPsec/IKE-förhandlingar.
Debugga SMTP (mejl skickas ej) tcpdump -nn tcp port 25 Ser om klienten pratar med mailservern.

Sidslut

Orginalhemsidan på Engelska :https://linux.die.net/man/1/wipe 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.