tcpdump-Filter-Generator

Klick dir tcpdump-Filter aus Bausteinen zusammen, statt BPF-Syntax auswendig zu lernen. Du bekommst den fertigen Befehl für tcpdump, tshark oder Wireshark samt Erklärung in Klartext.

Läuft komplett lokal im BrowserGeprüft gegen libpcapKostenlos, ohne Anmeldung

Beispiele zum Start

Filter bauen

Regeln hinzufügen, per UND/ODER verknüpfen, mit NICHT umkehren. Gruppen erzeugen Klammern.

tcpdump-Filter verstehen

tcpdump verwendet die Filtersyntax von libpcap, oft BPF-Syntax genannt (Berkeley Packet Filter). Dieselbe Syntax gilt für Mitschnittfilter in Wireshark, tshark und dumpcap. Ein Filter besteht aus einfachen Bausteinen, die du mit and, or und not verknüpfst.

Die Bausteine: Typ, Richtung, Protokoll

tcp dst port 443
src net 10.0.0.0/8
ether host 00:11:22:33:44:55

Verknüpfen und Klammern

and und or sind in libpcap gleich stark und werden von links nach rechts ausgewertet. a or b and c bedeutet deshalb (a or b) and c. Setz Klammern, sobald du beides mischst. Im Generator entsteht jede Klammer aus einer Gruppe.

Den Filter immer in einfache Anführungszeichen setzen, sonst wertet die Shell Klammern und Sonderzeichen selbst aus:

sudo tcpdump -nn -i eth0 'host 10.0.0.5 and (port 80 or port 443)'

TCP-Flags filtern

Mit tcp[tcpflags] greifst du auf die Flags im TCP-Header zu. tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn liefert nur das erste Paket jedes Verbindungsaufbaus: SYN gesetzt, ACK nicht gesetzt. Diese Schreibweise funktioniert nur für IPv4, weil libpcap den TCP-Header bei IPv6 nicht über die Erweiterungs-Header hinweg findet.

Häufige Filter

ZweckFilter
Verkehr eines Hostshost 192.168.1.10
Verkehr zwischen zwei Hostshost 10.0.0.5 and host 10.0.0.20
Web ohne eigene SSH-Sitzung(port 80 or port 443) and not port 22
DNSport 53
DHCPudp portrange 67-68
Verbindungsaufbautcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn
Verbindungsabbrüchetcp[tcpflags] & tcp-rst != 0
Pingicmp[icmptype] == icmp-echo
Pakete in VLAN 100vlan 100 and host 10.1.1.1
Große Pakete (MTU-Probleme)greater 1400

Tipps aus der Praxis

FAQ

Wie speichere ich einen Mitschnitt für Wireshark?

Trag unter Optionen einen Dateinamen bei „In Datei schreiben (-w)“ ein, z. B. mitschnitt.pcap. tcpdump schreibt dann die Rohpakete in diese Datei, die du direkt in Wireshark öffnen kannst.

Warum meldet tcpdump „syntax error“?

Meist wertet die Shell Klammern oder Sonderzeichen aus, weil der Filter nicht in Anführungszeichen steht. Der Generator setzt den Filter deshalb immer in einfache Anführungszeichen. Andere Ursachen sind Tippfehler in Schlüsselwörtern oder fehlende Klammern.

Funktioniert der Filter auch in Wireshark?

Ja, als Mitschnittfilter (Capture Filter), denn Wireshark nutzt dafür ebenfalls libpcap. Anzeigefilter in Wireshark verwenden eine andere Syntax, etwa ip.addr == 10.0.0.5 statt host 10.0.0.5.

Warum findet mein Filter bei VLAN-Verkehr keine Pakete?

Bei Paketen mit VLAN-Tag verschiebt sich der IP-Header um 4 Byte. Setz die VLAN-Regel deshalb an den Anfang, z. B. vlan 100 and host 10.0.0.5. Auf manchen Linux-Systemen entfernt die Netzwerkkarte den Tag schon vorher, dann brauchst du kein vlan.

Werden meine Eingaben irgendwohin übertragen?

Nein. Der Generator läuft vollständig in deinem Browser. Der Teilen-Link speichert den Filter im Teil hinter dem #, und diesen Teil schickt der Browser nicht an den Server.