Wireshark – Netzwerkanalyse Grundlagen
Wireshark verstehen und gezielt einsetzen: Capture- und Display-Filter, typische Diagnose-Szenarien und tshark für die Kommandozeile.
Was ist Wireshark und wann brauchst du es?
Wireshark ist der de-facto-Standard für die Netzwerk-Paketanalyse. Das Open-Source-Tool zeichnet den gesamten Netzwerkverkehr an einer Netzwerkschnittstelle mit und zeigt jeden einzelnen Frame bis auf Byte-Ebene aufgeschlüsselt – inklusive aller Header, Protokollfelder und Nutzdaten.
Als IT-Allrounder in einem KMU brauchst du Wireshark typischerweise in Situationen, wo die normalen Diagnose-Tools (ping, tracert, nslookup) nicht mehr weiterhelfen:
- Ein Dienst bricht sporadisch ab, aber der Server-Log zeigt nichts
- Jemand klagt über VoIP-Aussetzer, die sich nicht reproduzieren lassen
- Eine neue Applikation läuft nicht, und du weisst nicht, auf welche Ports sie zugreift
- Du willst verstehen, ob ein Client wirklich ein DHCP-Angebot erhält
- Verdächtiger Traffic im Netzwerk, den du identifizieren musst
Kostenloser Open-Source-Netzwerk-Protokollanalysator für Windows, macOS und Linux.
www.wireshark.org
Installation und erste Schritte
Windows
Der Wireshark-Installer für Windows bringt automatisch Npcap mit – den Paket-Capture-Treiber, der für das Mitschneiden des Traffics zuständig ist. Beim Setup einfach die Standardoptionen belassen.
Nach der Installation startest du Wireshark und siehst sofort die Liste aller Netzwerkschnittstellen. Neben jeder Schnittstelle erscheint ein Live-Sparkline, das zeigt, ob dort gerade Verkehr fliesst. Wähle die richtige Schnittstelle – in der Regel dein aktiver LAN- oder WLAN-Adapter.
Erste Aufzeichnung starten
- Schnittstelle doppelklicken oder markieren und auf das blaue Hai-Flossen-Icon klicken
- Wireshark beginnt sofort, alle Pakete zu erfassen
- Zum Stoppen: rotes Quadrat-Icon oder Ctrl+E
- Aufzeichnung speichern: Ctrl+S → Dateiformat
.pcapng(Standard) oder.pcap(kompatibel mit älteren Tools)
Die drei Bereiche der Wireshark-Oberfläche
Die Hauptansicht ist in drei vertikale Bereiche unterteilt:
| Bereich | Inhalt |
|---|---|
| Paketliste (oben) | Alle erfassten Pakete chronologisch – Zeitstempel, Quell-IP, Ziel-IP, Protokoll, kurze Info |
| Paketdetails (mitte) | Aufgeklappter Protokollbaum des gewählten Pakets – von Ethernet über IP bis zum Application Layer |
| Paket-Bytes (unten) | Raw-Bytes im Hex- und ASCII-Format |
Ein Klick auf ein Feld im mittleren Bereich markiert die entsprechenden Bytes unten automatisch – sehr hilfreich beim Verstehen, wo genau im Paket ein bestimmter Wert steht.
Capture-Filter vs. Display-Filter
Das ist der häufigste Stolperstein für Einsteiger: Wireshark hat zwei unabhängige Filter-Systeme mit unterschiedlicher Syntax.
Capture-Filter (BPF-Syntax)
Capture-Filter werden vor dem Mitschnitt konfiguriert und bestimmen, welche Pakete überhaupt erfasst werden. Sie reduzieren die Datenmenge und entlasten die CPU – sinnvoll bei sehr hohem Traffic.
Capture-Filter eingeben: Startbildschirm → Textfeld neben der Schnittstelle, oder Ctrl+K → “Capture Options”.
# Nur Traffic von/zu einer bestimmten IP
host 192.168.1.10
# Nur einen bestimmten Port
port 443
# Nur TCP-Traffic
tcp
# Nur UDP
udp
# Einen Host ausschliessen
not host 192.168.1.1
# Nur Traffic in einem Subnetz
net 192.168.10.0/24
# Kombination: TCP-Traffic zu einem bestimmten Host
tcp and host 192.168.1.50
# Nur DHCP (UDP Ports 67 und 68)
udp port 67 or udp port 68
# Alles ausser ARP
not arp
Display-Filter (Wireshark-Syntax)
Display-Filter werden nach dem Mitschnitt angewendet und zeigen nur passende Pakete aus der bereits erfassten Datei. Sie sind wesentlich mächtiger und flexibler als Capture-Filter.
Display-Filter eingeben: das grüne Leisten-Feld oben in der Paketliste. Bei gültiger Syntax wird das Feld grün, bei ungültiger Syntax rot.
# Nach IP-Adresse filtern
ip.addr == 192.168.1.10
ip.src == 192.168.1.10
ip.dst == 192.168.1.10
# Nach IPv6
ipv6.addr == fe80::1
# Nach Protokoll
dns
http
tls
tcp
udp
icmp
arp
dhcp
smb
nbns
# Nach TCP-Port
tcp.port == 443
tcp.dstport == 80
tcp.srcport == 8080
# Nach UDP-Port
udp.port == 53
# Kombiniert mit AND und OR
ip.addr == 192.168.1.10 and tcp.port == 443
dns or dhcp
http or tls
# TCP-Analysefehler (Retransmissions, Out-of-Order etc.)
tcp.analysis.flags
# Nur TCP-Retransmissions
tcp.analysis.retransmission
# Nur TCP SYN-Pakete (Verbindungsaufbau)
tcp.flags.syn == 1 and tcp.flags.ack == 0
# Nur HTTP GET-Requests
http.request.method == "GET"
# HTTP-Responses mit Fehlercode
http.response.code >= 400
# DNS-Antworten mit NXDOMAIN (kein Eintrag gefunden)
dns.flags.rcode == 3
# TLS Client Hello (zeigt welche Zertifikate angefragt werden)
tls.handshake.type == 1
# Pakete mit einer bestimmten Zeichenkette im Inhalt
frame contains "error"
Nützliche Tastenkombinationen
| Aktion | Shortcut |
|---|---|
| Aufzeichnung starten/stoppen | Ctrl+E |
| Filter anwenden | Enter |
| Filter löschen | Ctrl+Shift+E |
| Paket als Filter setzen (Rechtsklick) | Shift+Ctrl+F |
| TCP-Stream verfolgen | Ctrl+Alt+Shift+T |
| Neue Aufzeichnung | Ctrl+N |
| Datei öffnen | Ctrl+O |
| Zu Paket springen | Ctrl+G |
| Suchen in Paketen | Ctrl+F |
Typische Diagnose-Szenarien
1. DNS-Auflösung prüfen
DNS-Probleme sind häufig: Eine Website ist nicht erreichbar, und du willst wissen, ob die Namensauflösung funktioniert oder ob das Problem tiefer liegt.
Vorgehen:
- Display-Filter setzen:
dns - Auf dem betroffenen Client
nslookup firma.choderResolve-DnsName firma.chausführen - In Wireshark: Erscheint ein DNS-Query-Paket? Kommt eine Response zurück?
Interpretation:
- Query vorhanden, Response fehlt → DNS-Server antwortet nicht (Firewall, Dienst ausgefallen)
- Response mit
NXDOMAIN→ Hostname existiert nicht (Tippfehler, fehlender DNS-Eintrag) - Response mit IP, aber kein weiterer Traffic → DNS funktioniert, Problem liegt beim Verbindungsaufbau
Filter für NXDOMAIN:
dns.flags.rcode == 3
2. TCP-Verbindungsaufbau analysieren
Eine Website oder ein Dienst ist nicht erreichbar. Du willst wissen, ob der TCP-Handshake überhaupt stattfindet.
Der normale 3-Wege-Handshake:
Client → Server: SYN
Server → Client: SYN + ACK
Client → Server: ACK
Filter für einen Verbindungsaufbau zu einem bestimmten Server:
tcp.flags.syn == 1 and ip.addr == 192.168.1.50
Typische Problemmuster:
SYNgesendet, keine Antwort → Server nicht erreichbar, Firewall blockiert, falscher PortSYNgesendet, Server antwortet mitRST→ Port offen, aber Dienst läuft nicht oder lehnt Verbindung ab- Verbindung aufgebaut, dann sofort
RST→ TLS-Fehler, Authentifizierungsproblem, Applikationsabsturz
3. DHCP-Probleme diagnostizieren
Ein Client bekommt keine IP-Adresse. Das DORA-Modell (Discover → Offer → Request → Acknowledge) lässt sich in Wireshark perfekt nachverfolgen.
Filter: dhcp
Was du siehst (Normalfall):
| Paket | Von | An | Bedeutung |
|---|---|---|---|
| DHCP Discover | 0.0.0.0 | 255.255.255.255 | Client sucht Server |
| DHCP Offer | DHCP-Server | Client | Server bietet IP an |
| DHCP Request | 0.0.0.0 | 255.255.255.255 | Client akzeptiert Angebot |
| DHCP ACK | DHCP-Server | Client | Server bestätigt Zuweisung |
Fehlerfälle:
- Nur
Discover, keineOffer→ Kein DHCP-Server erreichbar, VLAN-Problem, DHCP-Dienst ausgefallen Offerkommt, aber vom falschen Server → Rogue DHCP-Server im NetzDHCP NAKstattACK→ IP-Konflikt oder IP ausserhalb des gültigen Bereichs
4. Langsame Verbindungen und Retransmissions
Wenn Benutzer sich über eine langsame Verbindung beklagen, zeigt Wireshark oft sofort wo das Problem liegt.
Filter für TCP-Probleme:
tcp.analysis.flags
Dieser Filter zeigt alle Pakete, bei denen Wireshark eine Anomalie erkannt hat:
| Kennzeichnung | Bedeutung |
|---|---|
TCP Retransmission | Paket wurde erneut gesendet, weil kein ACK kam |
TCP Out-of-Order | Paket kam ausser der Reihe an |
TCP Dup ACK | Mehrfach-ACK, oft Zeichen von Paketverlust |
TCP Zero Window | Empfänger-Buffer voll, Übertragung pausiert |
TCP Fast Retransmission | Schnelle Neuübertragung nach Dup ACKs |
Statistics > TCP Stream Graph > Time-Sequence (tcptrace): Zeigt grafisch, wie Sequenznummern und ACKs im Zeitverlauf auseinanderlaufen. Plateaus im Graphen = keine Übertragung = Paketverlust oder Überlastung.
5. VoIP-Qualität analysieren
VoIP-Probleme (Aussetzer, Echos, Verzerrungen) haben oft eine messbare Ursache in den Paketen.
Filter für SIP-Traffic (Verbindungsaufbau):
sip
Filter für RTP-Mediendaten:
rtp
Wireshark-VoIP-Analyse:
- Menü Telephony > VoIP Calls: Zeigt alle erkannten VoIP-Calls mit Start, Ende und Status
- Menü Telephony > RTP > RTP Streams: Zeigt Jitter, Paketverlust und Sequenzfehler pro Stream
Hoher Jitter (über 30 ms) oder Paketverlust (über 1%) sind typische Ursachen für VoIP-Aussetzer. Weitere Infos auf der Wikiseite VoIP-Grundlagen.
tshark: Wireshark auf der Kommandozeile
tshark ist Wireshark ohne GUI – ideal für Server, SSH-Sessions oder wenn du Ergebnisse weiterverarbeiten willst.
Installation: tshark kommt mit dem Wireshark-Installer mit. Auf Linux:
# Debian/Ubuntu
sudo apt install tshark
# RHEL/CentOS
sudo dnf install wireshark-cli
Wichtige tshark-Befehle:
# Verfügbare Netzwerkschnittstellen anzeigen
tshark -D
# Live-Mitschnitt auf Schnittstelle eth0
tshark -i eth0
# Mit Capture-Filter (nur DNS)
tshark -i eth0 -f "udp port 53"
# 100 Pakete erfassen und speichern
tshark -i eth0 -c 100 -w /tmp/capture.pcap
# Pcap-Datei einlesen und Display-Filter anwenden
tshark -r /tmp/capture.pcap -Y "dns"
# Nur bestimmte Felder ausgeben (CSV-ähnlich)
tshark -r /tmp/capture.pcap -Y "dns" -T fields -e frame.time -e ip.src -e dns.qry.name
# Statistik: welche Protokolle kommen vor?
tshark -r /tmp/capture.pcap -qz io,phs
# Alle TCP-Retransmissions zählen
tshark -r /tmp/capture.pcap -Y "tcp.analysis.retransmission" -qz io,stat,0
# HTTP-Hosts anzeigen
tshark -r /tmp/capture.pcap -Y "http.request" -T fields -e http.host -e http.request.uri
Auf Windows (PowerShell):
# tshark liegt nach der Wireshark-Installation hier:
& "C:\Program Files\Wireshark\tshark.exe" -D
# Mitschnitt 60 Sekunden lang
& "C:\Program Files\Wireshark\tshark.exe" -i "Ethernet" -a duration:60 -w C:\Temp\capture.pcapng
# Pcap analysieren
& "C:\Program Files\Wireshark\tshark.exe" -r C:\Temp\capture.pcapng -Y "tcp.analysis.retransmission"
Colour Rules: Traffic auf einen Blick erkennen
Wireshark färbt Pakete standardmässig nach Protokoll ein – das ist auf den ersten Blick verwirrend, aber nach kurzer Eingewöhnung sehr hilfreich:
| Farbe | Bedeutung |
|---|---|
| Hellblau | UDP |
| Hellgrün | TCP |
| Dunkelblau | DNS |
| Schwarz (roter Text) | TCP-Fehler (Retransmission, RST etc.) |
| Dunkelrot | HTTP-Fehler |
| Hellgelb | ARP / ICMP |
Eigene Regeln definieren: View > Coloring Rules – z.B. eigenen Filter für den Traffic eines bestimmten Hosts mit einer auffälligen Farbe markieren.
Remote-Capture: Traffic auf entfernten Geräten mitschneiden
Manchmal kann man nicht direkt am betroffenen Gerät arbeiten. Es gibt zwei saubere Wege:
Option 1: Pcap auf dem Server erstellen und übertragen
# Auf dem Linux-Server
sudo tcpdump -i eth0 -w /tmp/server_capture.pcap -G 60 -W 1
# Datei per SCP auf dein Arbeitsgerät holen
scp admin@192.168.1.50:/tmp/server_capture.pcap C:\Temp\
Dann einfach die .pcap-Datei in Wireshark öffnen.
Option 2: SSH-Pipe (Live-Mitschnitt in Wireshark)
# Auf Linux/Mac – direkter Live-Stream von einem Remote-Host
ssh admin@192.168.1.50 "sudo tcpdump -i eth0 -w - -U" | wireshark -k -i -
Auf Windows mit WSL oder Git Bash analog möglich. Dies ermöglicht es, den Traffic eines entfernten Servers direkt in der lokalen Wireshark-GUI zu analysieren.
Troubleshooting-Checkliste
Wenn du nicht weiter weisst, gehe diese Schritte durch:
- Richtige Schnittstelle? Bei VMs oder VPN-Clients gibt es oft mehrere virtuelle Adapter – stelle sicher, dass du auf dem richtigen mitschneidest.
- Capture-Filter zu restriktiv? Fang ohne Capture-Filter an und verfeinere nachher mit Display-Filtern – so verlierst du nichts.
- Kein Traffic? Promiscuous Mode aktiviert? Haken bei Capture > Options > Promiscuous Mode setzen.
- Zu viel Traffic?
Statistics > Conversationszeigt die aktivsten IP-Paare – dort siehst du schnell, wer die Leitung füllt. - TLS-Traffic nicht lesbar? HTTPS ist verschlüsselt. Für HTTPS-Debugging besser den Browser-Proxy (
mitmproxy, Browser-DevTools) nutzen oder TLS-Session-Schlüssel exportieren (Browser-VariableSSLKEYLOGFILE). - Timestamps stimmen nicht? Bei Remote-Captures die Zeitzone beachten. In Wireshark unter Edit > Preferences > Appearance > Columns auf UTC umstellen.
Zur strukturierten Fehlersuche empfiehlt sich auch die Wikiseite Troubleshooting-Methodik.
Verwandte Themen
- TCP/IP-Grundlagen – ohne dieses Fundament sind Wireshark-Analysen schwer zu deuten
- DNS-Grundlagen – DNS-Traffic ist einer der häufigsten Analyse-Kandidaten
- DHCP-Grundlagen – den DORA-Ablauf in Wireshark live zu verfolgen macht das Protokoll greifbar
- VoIP-Grundlagen – RTP/SIP-Analyse mit der Wireshark-Telephony-Funktion
Weiterlernen
- Wireshark User’s Guide (offiziell) – die vollständige Dokumentation, sehr detailliert
- Wireshark Display Filter Reference – komplette Liste aller Protokoll-Felder und Filter
- CaptureFilters – Wireshark Wiki – alle BPF-Capture-Filter-Optionen mit Beispielen
- DisplayFilters – Wireshark Wiki – Syntax-Referenz und fortgeschrittene Filter
- tshark Manual Page – alle tshark-Optionen im Detail
- Wireshark & Network Analysis (heise academy) – deutschsprachiger Videokurs mit strukturiertem Aufbau
Videos
Kommentare
Frage, Verbesserungsvorschlag oder eigene Erfahrung zu diesem Artikel? Schreib einen Kommentar. Neue Beiträge erscheinen nach kurzer Moderation.
- Lade Kommentare …