Definicja: tcpdump przechwytuje pakiety sieciowe z interfejsu w trybie promiscuous (nasłuch wszystkich pakietów, nie tylko kierowanych do hosta) i wyświetla je w terminalu lub zapisuje do pliku.
tcpdump -i eth0
tcpdump -i eth0 icmp
tcpdump -i eth0 port 80
tcpdump -i eth0 -w capture.pcap
tcpdump -r capture.pcap
tcpdump -X -c 5
Jest dostępne w Linux i macOS.
tcpdump wymaga uprawnień root (sudo).
tcpdump to narzędzie do przechwytywania i analizy pakietów sieciowych w czasie rzeczywistym.
W Windows odpowiednikiem jest npcap z narzędziem tshark (część Wireshark).
Składnia filtrów BPF: [proto] [dir] [type] [value].
Przykład: tcpdump -i eth0 src 10.0.0.5 and tcp port 443.
Dla ICMP pokazuje typ i kod.
Przykładowy wynik: 16:30:00.123456 IP 192.168.1.10.54321 > 142.250.185.78.80: Flags [S], seq 123456, win 65535, options [mss 1460]. Oznacza to: TCP SYN (flag S) z portu 54321 na 80, MSS 1460.
Aby znaleźć GUID interfejsu w Windows: tshark -D.
tcpdump używa wyrażeń BPF (Berkeley Packet Filter) do filtrowania pakietów.
Przykłady: host 192.168.1.1 (tylko z/do hosta), src 192.168.1.1 (tylko źródłowy), dst 192.168.1.1 (tylko docelowy), port 80 (HTTP), portrange 1-1024, icmp (tylko ICMP), tcp (tylko TCP), udp (tylko UDP). Łączenie: and, or, not.
Wynik tcpdump pokazuje: znacznik czasu, protokół (IP, ICMP), adresy źródłowy i docelowy, flagi TCP (S=SYN, . =ACK, P=Push), numery sekwencyjne, okno, opcje.
W Windows tshark (część Wireshark) jest odpowiednikiem tcpdump. tshark -i \Device\NPF_{GUID} -f "port 80" -c 10.
Wireshark oferuje graficzny interfejs do analizy ruchu, dekodowanie protokołów, podążanie za strumieniami, filtry wyświetlania.
Wireshark jest zalecany do analizy offline plików pcap, tcpdump do szybkiego podglądu w terminalu.