Wireshark — přední analyzátor síťového provozu s otevřeným zdrojovým kódem, používaný k zachycování a inspekci paketů v reálném čase. Nástroj podporuje více než dva tisíce síťových protokolů a funguje na všech hlavních platformách. Podle Wireshark User Guide (2026) se tento nástroj používá pro diagnostiku sítí, ladění API a analýzu zabezpečení ve vývoji mobilních a webových aplikací.
Hlavní body
Wireshark — program s otevřeným zdrojovým kódem (GPLv2), který zachytává datové pakety procházející síťovým rozhraním počítače. Je založen na knihovně libpcap (Unix) nebo Npcap (Windows) pro zachytávání na úrovni linkové vrstvy modelu OSI.
Síťová karta v běžném režimu přijímá pouze rámce adresované její adrese MAC. Wireshark přepne rozhraní do režimu promiscuous, ve kterém systém zpracovává všechny procházející rámce bez ohledu na příjemce. Zachycená data se předávají do jádra přes raw socket, načež je knihovna libpcap zkopíruje do uživatelského prostoru pro analýzu.
Wireshark používá modulární architekturu: každý protokol je implementován jako samostatný disektor — zásuvný modul, který parsuje binární data a zobrazuje je ve strukturované podobě. K roku 2026 jsou v programu implementovány disektory pro 2 874 protokolů, včetně HTTP/2, QUIC, gRPC a MQTT. Disektory fungují přes systém stromu protokolů — každý paket se rozebírá vrstvu po vrstvě: od rámce Ethernet až po aplikační vrstvu.
// Příklad jednoduchého disektoru pro vlastní protokol
static int dissect_custom(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, void *data) {
proto_item *ti = proto_tree_add_item(tree, hf_custom_field,
tvb, 0, tvb_captured_length(tvb), ENC_NA);
return 0;
} Grafické rozhraní Wireshark je rozděleno na tři panely: seznam paketů (packet list), podrobnosti protokolů (packet details) a hex výpis (packet bytes). Každý panel se aktualizuje v reálném čase a podporuje interaktivní navigaci — kliknutí na řádek paketu otevře jeho úplnou strukturu.
Nástroj čte soubory zachycení ve formátech pcap, pcapng, snoop a NetMon. Export je možný do JSON, XML, CSV a plain text. Mezi klíčové protokoly aplikační vrstvy patří: HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP a Protobuf. Pro vývoj mobilních aplikací je obzvláště důležitá podpora gRPC a HTTP/2 s multiplexováním datových toků.
Vestavěné nástroje zahrnují Follow Stream (obnovení úplného dialogu TCP/UDP/TLS), IO Graph (graf propustnosti), statistiku konverzací (Conversations) a hierarchii protokolů (Protocol Hierarchy). Funkce Flow Graph vizualizuje pořadí paketů mezi uzly, což zjednodušuje hledání příčin zpoždění při ladění interakce klient-server.
Spuštění zachycení začíná výběrem síťového rozhraní — Ethernet, Wi-Fi, Bluetooth PAN nebo Loopback. Ve Windows může být nutná instalace Npcap v režimu WinPcap API Compatible Mode. Pro zachycení na mobilních zařízeních se používá Remote Packet Capture přes SSH tunel.
Na zařízení Android se provoz zachytává přes tcpdump nebo PCAPdroid s následným přenosem souboru na pracovní počítač. Příkaz pro vzdálené zachycení přes ADB:
# Zachycení provozu v Androidu přes ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Kopírování do počítače
adb pull /sdcard/capture.pcap . Ve Windows provoz localhost (127.0.0.1) neprochází fyzickým rozhraním, proto jej Wireshark nevidí přímo. Řešení — instalace Npcap s volbou Loopback Support nebo přesměrování provozu přes RawCap. V Linuxu a macOS se rozhraní loopback (lo) zachytává bez dalšího nastavení.
Wireshark nabízí dva typy filtrů: capture filtry (použité před zachycením, na úrovni libpcap) a display filtry (použité na již zachycená data). Capture filtry používají syntaxi BPF (Berkeley Packet Filter), display filtry — vlastní jazyk Wireshark s automatickým doplňováním.
Filtry BPF se zapisují ve formátu tcpdump a provádějí se v jádře, což minimalizuje ztrátu paketů při vysokém zatížení. Příklady filtrů:
| Filtr | Účel |
|---|---|
| tcp port 80 | Pouze provoz HTTP na standardním portu |
| host 192.168.1.1 | Pakety od konkrétního hostitele |
| not arp | Všechny pakety kromě požadavků ARP |
Display filtry se aplikují dodatečně a podporují složité podmínky s logickými operátory and, or, not. Příklad: http.request.method == "POST" and ip.src == 192.168.0.100 odfiltruje pouze požadavky POST z konkrétní IP. Filtry lze ukládat jako oblíbené pro opakované použití.
Provoz HTTP se ve Wireshark zobrazuje v čitelné podobě: metoda požadavku, URI, hlavičky a tělo odpovědi. Funkce Follow TCP Stream shromažďuje úplný dialog klienta a serveru v jednom okně. Pro HTTPS je nutné dešifrování relací TLS, protože obsah je zašifrován.
Prohlížeče Chrome a Firefox podporují proměnnou prostředí SSLKEYLOGFILE, která zapisuje klíče relace TLS do textového souboru. Wireshark tento soubor používá k dešifrování záznamů. Nastavení se provádí přes Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.
# Spuštění Chrome se zápisem klíčů TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# Po zachycení uvést cestu ve Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename gRPC používá HTTP/2 jako přenos a Protobuf pro serializaci dat. Wireshark dešifruje zprávy gRPC, pokud je poskytnut soubor .proto s definicí struktur. Disektor Protobuf přiřazuje binární pole k názvům ze souboru proto, což je klíčové při ladění mikroslužebné architektury.
Mobilní ladění přes Wireshark vyžaduje proxy provozu zařízení do počítače. Neispolehlivější metoda — vytvoření Wi-Fi přístupového bodu na notebooku a přesměrování provozu přes NAT. V Androidu je také dostupná metoda VPN s aplikací PCAPdroid bez práv root.
PCAPdroid vytváří místní službu VPN, která přesměrovává provoz aplikací do Wireshark přes UDP datový tok. Aplikace nevyžaduje přístup root a podporuje filtrování podle jednotlivých procesů. Získané soubory pcap se otevírají ve Wireshark pro úplnou analýzu.
# Příjem provozu od PCAPdroid v počítači
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap Wireshark — univerzální nástroj, ale pro konkrétní úkoly existují specializovanější řešení. tcpdump je efektivnější pro serverové zachycování bez grafiky, Charles Proxy je vhodnější pro analýzu provozu HTTPS a Fiddler — pro inspekci webového provozu s možností modifikace požadavků za běhu.
Charles Proxy funguje jako zprostředkující proxy server s možností zachycení HTTPS přes vlastní SSL certifikaci. Na rozdíl od Wireshark nevyžaduje Charles nastavení SSLKEYLOGFILE a umí provoz nejen prohlížet, ale i měnit — nahrazovat odpovědi, emulovat zpoždění a opakovat požadavky.
Fiddler — další proxy nástroj, populární v ekosystému .NET. Poskytuje vestavěný editor požadavků, podporu AutoResponder pro mocky a composer pro vytváření vlastních požadavků. Fiddler je vhodnější pro analýzu webového provozu prohlížeče, Wireshark — pro nízkoúrovňovou analýzu sítě.
| Nástroj | Typ | HTTPS bez klíčů | Změna provozu |
|---|---|---|---|
| Wireshark | Sniffer | Ne (je nutný SSLKEYLOGFILE) | Pouze prohlížení |
| Charles | Proxy | Ano (vlastní certifikát) | Ano |
| Fiddler | Proxy | Ano (vlastní certifikát) | Ano |
| tcpdump | Sniffer | Ne | Pouze prohlížení |
Wireshark vyžaduje pochopení základních principů zachytávání provozu. Jedním z častých scénářů je hledání zdroje zpoždění v mobilní aplikaci přes filtr tcp.analysis.ack_rtt. Pro hledání pomalých požadavků HTTP použijte podmínku http.time větší než 1.
Pro hledání pomalých požadavků HTTP filtrujte http.time větší než 1 — Wireshark zobrazí požadavky s dobou odezvy delší než 1 sekunda. Kombinujte s ip.addr pro analýzu konkrétního serveru. IO Graph s intervalem 1 sekundy názorně ukáže špičky zatížení.
Wireshark podporuje export do CSV, JSON a XML přes nabídku File. Pro automatickou analýzu použijte tshark — konzolovou verzi fungující v pipeline CI/CD. Tshark podporuje stejné filtry a výstupní formáty jako grafická verze.
Wireshark vyžaduje pochopení základních principů zachytávání provozu. Jedním z častých scénářů je hledání zdroje zpoždění v mobilní aplikaci přes filtr tcp.analysis.ack_rtt. Pro hledání pomalých požadavků HTTP použijte podmínku http.time větší než 1.
Pro hledání pomalých požadavků HTTP filtrujte http.time větší než 1 — Wireshark zobrazí požadavky s dobou odezvy delší než 1 sekunda. Kombinujte s ip.addr pro analýzu konkrétního serveru. IO Graph s intervalem 1 sekundy názorně ukáže špičky zatížení.
Wireshark podporuje export do CSV, JSON a XML přes nabídku File. Pro automatickou analýzu použijte tshark — konzolovou verzi fungující v pipeline CI/CD. Tshark podporuje stejné filtry a výstupní formáty jako grafická verze.
Často kladené otázky
Wireshark poskytuje grafické rozhraní s vizualizací paketů, vestavěnými filtry a statistikou. tcpdump — konzolový nástroj bez GUI, vhodný pro serverové zachycování přes SSH. Wireshark umí číst soubory tcpdump a naopak.
Pro dešifrování je potřeba soubor klíčů relace TLS (SSLKEYLOGFILE). Chrome a Firefox exportují klíče při spuštění s proměnnou prostředí. Cesta k souboru se uvádí v nastavení Protocols → TLS ve Wireshark.
Provoz loopback ve Windows neprochází ovladačem Npcap ve výchozím nastavení. Řešení — instalace Npcap se zapnutou volbou Loopback Support nebo použití nástroje RawCap pro zachycení místního provozu.
Ano, přes proxy provozu do počítače. Android podporuje zachycení přes PCAPdroid (bez root) nebo tcpdump (s root). iOS vyžaduje RVI (Remote Virtual Interface) přes macOS nebo jailbreak pro zachycení.
Display filtr frame contains hledá řetězec nebo hex sekvenci v celém paketu. Příklad: frame contains "password" najde pakety s podřetězcem password v libovolném poli. Pro přesné hledání podle pole použijte http.request.uri contains "api" .
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také