tcpdump auf Ubuntu: Praxis-Guide zur Paketanalyse

Einführung

Für die systematische Fehlerdiagnose und die tiefgehende Untersuchung von Datenströmen unter Linux gehört tcpdump zur absoluten Standardausrüstung jedes versierten Administrators. Statt sich mühsam durch umfangreiche Manpages zu arbeiten, vermittelt dieser praxisorientierte Leitfaden die Kernfunktionen anhand konkreter Anwendungsszenarien: von der Identifikation aktiver Schnittstellen über präzise Filterregeln bis hin zum Export und der Dekodierung vollständiger PCAP-Dateien.

Vorbereitung: Installation und Schnittstellen-Erkennung

Bevor Datenpakete mitgeschnitten werden können, müssen die benötigten Softwarepakete im System bereitstehen. Neben tcpdump richten wir zu Testzwecken auch das Übertragungswerkzeug curl ein:

apt-get update -qq && apt-get install -y tcpdump curl

Der Aufruf von tcpdump --version verifiziert die erfolgreiche Einrichtung und gibt Auskunft über die installierten Versionen des Programms sowie der zentralen Erfassungsbibliothek libpcap.
Als performanter Kommandozeilen-Sniffer ermöglicht tcpdump das verzögerungsfreie Überwachen aller Pakete, die eine Netzwerkschnittstelle passieren, und schlüsselt diese nach Protokollen auf.
⚙️ [Zentrale Parameter im Überblick]

-i : Bestimmt die Netzwerkschnittstelle, an der der Datenverkehr belauscht werden soll.
-n : Verhindert die Auflösung von IP-Adressen in Hostnamen zur Beschleunigung der Ausgabe.
-nn : Unterbindet zusätzlich die Übersetzung bekannter Portnummern in Dienstbezeichnungen.
-c : Terminiert die Paketerfassung nach einer fest definierten Anzahl empfangener Pakete.
-v : Schaltet detaillierte Paketinformationen frei (z. B. TTL, IP-ID und Header-Optionen); steigerbar über -vv oder -vvv.
-w : Schreibt Rohpakete direkt in eine PCAP-Datei zur späteren Auswertung mit Analysewerkzeugen wie Wireshark.
-r : Liest eine zuvor gesicherte PCAP-Datei zur Inspektion auf der Konsole ein.
-A : Stellt die Nutzlast (Payload) der Pakete als Klartext im ASCII-Format dar.
-X : Zeigt Paketheader und Nutzdaten gleichzeitig hexadezimal sowie als ASCII-Zeichen an.
-D : Listet sämtliche im System verfügbaren Interfaces auf, die für einen Mitschnitt bereitstehen.

tcpdump –version

Mit dem Befehl tcpdump -D lassen sich alle aufzeichnungskompatiblen Schnittstellen inklusive Status und fortlaufender Nummerierung ermitteln.
Die resultierende Ausgabe zeigt unter anderem das primäre Interface für die externe Kommunikation (eth0), das lokale Loopback-Gerät (lo) sowie das Pseudo-Gerät any, welches den Datenverkehr aller Schnittstellen aggregiert. Diese Bezeichner dienen als Wert für das Flag -i.

tcpdump -D

Erste Schritte: Lokalen Loopback-Datenverkehr aufzeichnen

Um den Erfassungsvorgang gefahrlos zu testen, wird über einen Ping-Befehl im Hintergrund lokaler ICMP-Testverkehr auf der Adresse 127.0.0.1 generiert:

ping -c 4 127.0.0.1 > /dev/null 2>&1 &

Die Anweisung tcpdump -i lo -c 4 -n bindet das Werkzeug an das Loopback-Interface (lo), schaltet die Namensauflösung ab (-n) und beendet den Vorgang nach exakt vier Paketen (-c 4).
Im Mitschnitt erscheinen die erzeugten ICMP Echo Requests und Echo Replies zwischen Sender und Empfänger (127.0.0.1) lückenlos mit Zeitstempeln, Sequenznummern und Paketlängen.

tcpdump -i lo -c 4 -n

Gezielte Filterung nach Protokollen und Portnummern

In produktiven Umgebungen führt ungefiltertes Logging schnell zur Reizüberflutung. Um ausschließlich verschlüsselten Webverkehr über Port 443 zu isolieren, wird zunächst ein HTTPS-Aufruf im Hintergrund abgesetzt:

curl -s https://example.com > /dev/null 2>&1 &

Durch tcpdump -i any -c 4 -nn 'tcp port 443' überwacht das Tool sämtliche Interfaces (-i any), verzichtet auf die Namens- und Dienstauflösung (-nn) und fängt exakt vier TCP-Pakete auf Port 443 ab ('tcp port 443').
Die Erfassung protokolliert die Kommunikation zwischen dem Client (172.18.0.2) und dem Remote-Webserver (172.66.147.243.443) mitsamt TCP-Flags, Sequenz- und Acknowledgment-Werten sowie der übertragenen Datenmenge.

tcpdump -i any -c 4 -nn ’tcp port 443’

Für eine rein protokollbasierte Selektion ohne Portbeschränkung – beispielsweise zur Diagnose von Routing- und Erreichbarkeitsproblemen – wird ein Verbindungsversuch zu einem DNS-Dienst ausgelöst:

ping -c 2 8.8.8.8 > /dev/null 2>&1 &

Der Aufruf tcpdump -i any -c 2 -n 'icmp' scannt alle Verbindungen (-i any) und filtert gezielt zwei Pakete des ICMP-Protokolls heraus ('icmp').
Aus dem Terminalprotokoll geht hervor, wie Anfragen und Antworten zwischen dem lokalen Rechner (172.18.0.2) und dem Zielhost (8.8.8.8) anhand von Prozess-IDs (id) und Sequenzzählern (seq) eindeutig zugeordnet werden.

tcpdump -i any -c 2 -n ‘icmp’

PCAP-Dateien archivieren und Paket-Payloads analysieren

Bei sporadisch auftretenden Verbindungsproblemen ist eine sofortige Sichtung am Bildschirm oft unzureichend. Das Speichern des Rohdatenstroms in einer Datei schafft hier Abhilfe. Zunächst wird erneut Testverkehr erzeugt:

ping -c 3 127.0.0.1 > /dev/null 2>&1 &

Mit tcpdump -i lo -c 3 -w /tmp/traffic_sample.pcap werden drei Pakete über das Loopback-Interface aufgezeichnet und direkt im standardisierten Binärformat unter /tmp/traffic_sample.pcap abgelegt.
Weil keine Textausgabe auf der Konsole generiert wird, arbeitet dieser Modus extrem ressourcenschonend und eignet sich ideal für Langzeitbeobachtungen oder den späteren Import in Wireshark.

tcpdump -i lo -c 3 -w /tmp/traffic_sample.pcap

Das Kommando tcpdump -r /tmp/traffic_sample.pcap -n -X öffnet die zuvor gesicherte Dump-Datei (-r), unterdrückt DNS-Abfragen (-n) und bereitet sowohl Header als auch Payload simultan in Hex-Darstellung und lesbarem ASCII auf (-X).
Diese Gegenüberstellung von Bytes und Klartext gewährt tiefen Einblick in die eigentlichen Nutzdaten und vereinfacht die Fehlersuche auf Anwendungsebene erheblich.

tcpdump -r /tmp/traffic_sample.pcap -n -X

Sobald die Diagnose abgeschlossen ist, lässt sich der temporäre Erfassungsdatensatz mit rm -f /tmp/traffic_sample.pcap sauber vom Datenträger entfernen:

rm -f /tmp/traffic_sample.pcap

Mit den vorgestellten Grundbefehlen und Filterausdrücken steht Ihnen ein schlagkräftiges Instrumentarium zur Verfügung, um Unregelmäßigkeiten im Linux-Netzwerkverkehr zügig aufzudecken und fundiert zu analysieren.