Wireshark — cel mai important analizator de trafic de rețea cu cod sursă deschis, folosit pentru interceptarea și inspecția pachetelor în timp real. Instrumentul suportă peste două mii de protocoale de rețea și funcționează pe toate platformele principale. Potrivit Wireshark User Guide (2026), utilitarul este utilizat pentru diagnosticarea rețelelor, depanarea API și analiza securității în dezvoltarea de aplicații mobile și web.
Idei principale
Wireshark — un program cu cod sursă deschis (GPLv2) care interceptează pachetele de date care trec prin interfața de rețea a computerului. Se bazează pe biblioteca libpcap (Unix) sau Npcap (Windows) pentru capturarea la nivelul stratului de legătură de date al modelului OSI.
Placa de rețea în mod normal primește doar cadrele adresate adresei sale MAC. Wireshark comută interfața în modul promiscuous, în care sistemul procesează toate cadrele care trec, indiferent de destinatar. Datele capturate sunt transmise nucleului prin socket brut raw socket, după care biblioteca libpcap le copiază în spațiul utilizator pentru analiză.
Wireshark folosește o arhitectură modulară: fiecare protocol este implementat ca un disector separat — un plugin care parsează datele binare și le afișează într-o formă structurată. La nivelul anului 2026, în program sunt implementați disectori pentru 2 874 de protocoale, inclusiv HTTP/2, QUIC, gRPC și MQTT. Disectorii funcționează prin sistemul arborelui de protocoale — fiecare pachet este analizat pe straturi: de la cadrul Ethernet până la stratul de aplicație.
// Exemplu de disector simplu pentru un protocol personalizat
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;
} Interfața grafică a Wireshark este împărțită în trei panouri: lista de pachete (packet list), detaliile protocoalelor (packet details) și dump-ul hex (packet bytes). Fiecare panou se actualizează în timp real și suportă navigarea interactivă — clicul pe rândul unui pachet deschide structura sa completă.
Instrumentul citește fișiere de captură în formatele pcap, pcapng, snoop și NetMon. Exportul este posibil în JSON, XML, CSV și plain text. Printre protocoalele cheie de la nivelul aplicației se numără: HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP și Protobuf. Pentru dezvoltarea mobilă, suportul pentru gRPC și HTTP/2 cu multiplexarea fluxurilor este deosebit de important.
Utilitarele integrate includ Follow Stream (refacerea dialogului complet TCP/UDP/TLS), IO Graph (graficul lățimii de bandă), statisticile conversațiilor (Conversations) și ierarhia protocoalelor (Protocol Hierarchy). Funcția Flow Graph vizualizează secvența pachetelor între noduri, ceea ce simplifică găsirea cauzelor întârzierilor la depanarea interacțiunii client-server.
Pornirea capturii începe cu alegerea interfeței de rețea — Ethernet, Wi-Fi, Bluetooth PAN sau Loopback. Pe Windows poate fi necesară instalarea Npcap în modul WinPcap API Compatible Mode. Pentru capturarea pe dispozitive mobile se folosește Remote Packet Capture prin tunel SSH.
Pe un dispozitiv Android, traficul este interceptat prin tcpdump sau PCAPdroid, iar apoi fișierul este transferat pe computerul de lucru. Comanda pentru capturarea la distanță prin ADB:
# Capturarea traficului pe Android prin ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Copierea pe computer
adb pull /sdcard/capture.pcap . Pe Windows, traficul localhost (127.0.0.1) nu trece prin interfața fizică, deci Wireshark nu îl vede direct. Soluția — instalarea Npcap cu opțiunea Loopback Support sau redirecționarea traficului prin RawCap. Pe Linux și macOS, interfața loopback (lo) este capturată fără setări suplimentare.
Wireshark oferă două tipuri de filtre: capture filters (se aplică înainte de capturare, la nivelul libpcap) și display filters (se aplică datelor deja capturate). Capture filters folosesc sintaxa BPF (Berkeley Packet Filter), iar display filters — limbajul propriu al Wireshark cu autocompletare.
Filtrele BPF se scriu în formatul tcpdump și se execută în nucleu, ceea ce minimizează pierderea de pachete la sarcină mare. Exemple de filtre:
| Filtru | Scop |
|---|---|
| tcp port 80 | Doar trafic HTTP pe portul standard |
| host 192.168.1.1 | Pachetele de la un anumit host |
| not arp | Toate pachetele cu excepția cererilor ARP |
Display filters se aplică ulterior și suportă condiții complexe cu operatori logici and, or, not. Exemplu: http.request.method == "POST" and ip.src == 192.168.0.100 va filtra doar cererile POST de pe un anumit IP. Filtrele pot fi salvate ca favorite pentru reutilizare.
Traficul HTTP este afișat în Wireshark într-o formă lizibilă: metoda cererii, URI, antetele și corpul răspunsului. Funcția Follow TCP Stream colectează dialogul complet dintre client și server într-o singură fereastră. Pentru HTTPS este necesară decriptarea sesiunilor TLS, deoarece conținutul este criptat.
Browserele Chrome și Firefox suportă variabila de mediu SSLKEYLOGFILE, care înregistrează cheile de sesiune TLS într-un fișier text. Wireshark folosește acest fișier pentru a decripta înregistrările. Configurarea se face prin Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.
# Pornirea Chrome cu înregistrarea cheilor TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# După capturare, indicați calea în Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename gRPC folosește HTTP/2 ca transport și Protobuf pentru serializarea datelor. Wireshark decriptează mesajele gRPC dacă este furnizat un fișier .proto cu definiția structurilor. Disectorul Protobuf potrivește câmpurile binare cu numele din fișierul proto, ceea ce este esențial la depanarea arhitecturii de microservicii.
Depanarea mobilă prin Wireshark necesită proxarea traficului dispozitivului către computer. Cea mai sigură metodă — crearea unui punct de acces Wi-Fi pe laptop și redirecționarea traficului prin NAT. Pe Android este disponibilă și metoda VPN cu aplicația PCAPdroid fără drepturi de root.
PCAPdroid creează un serviciu VPN local care redirecționează traficul aplicațiilor către Wireshark prin flux UDP. Aplicația nu necesită acces root și suportă filtrarea după procese individuale. Fișierele pcap obținute sunt deschise în Wireshark pentru o analiză completă.
# Primirea traficului de la PCAPdroid pe computer
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap Wireshark — un instrument universal, dar pentru sarcini specifice există soluții mai specializate. tcpdump este mai eficient pentru capturarea server fără grafică, Charles Proxy este mai comod pentru analiza traficului HTTPS, iar Fiddler — pentru inspecția traficului web cu posibilitatea de modificare a cererilor din mers.
Charles Proxy acționează ca un server proxy intermediar cu posibilitatea de interceptare a HTTPS prin propria certificare SSL. Spre deosebire de Wireshark, Charles nu necesită configurarea SSLKEYLOGFILE și poate nu doar să vizualizeze, ci și să modifice traficul — să înlocuiască răspunsurile, să emuleze întârzieri și să repete cererile.
Fiddler — un alt instrument proxy, popular în ecosistemul .NET. Acesta oferă un editor integrat de cereri, suport pentru AutoResponder pentru mock-uri și un compozitor pentru crearea de cereri personalizate. Fiddler este mai potrivit pentru analiza traficului web din browser, iar Wireshark — pentru analiza rețelei la nivel scăzut.
| Instrument | Tip | HTTPS fără chei | Modificarea traficului |
|---|---|---|---|
| Wireshark | Sniffer | Nu (necesită SSLKEYLOGFILE) | Doar vizualizare |
| Charles | Proxy | Da (certificat personalizat) | Da |
| Fiddler | Proxy | Da (certificat personalizat) | Da |
| tcpdump | Sniffer | Nu | Doar vizualizare |
Wireshark necesită înțelegerea principiilor de bază ale capturării traficului. Unul dintre scenariile frecvente — găsirea sursei întârzierilor într-o aplicație mobilă prin filtrul tcp.analysis.ack_rtt. Pentru a găsi cererile HTTP lente, folosiți condiția http.time mai mare decât 1.
Pentru a găsi cererile HTTP lente, filtrați http.time mai mare decât 1 — Wireshark va afișa cererile cu un timp de răspuns mai mare de 1 secundă. Combinați cu ip.addr pentru analiza unui anumit server. IO Graph cu interval de 1 secundă va evidenția clar vârfurile de sarcină.
Wireshark suportă exportul în CSV, JSON și XML prin meniul File. Pentru analiza automată folosiți tshark — versiunea de consolă care funcționează în pipeline-urile CI/CD. Tshark suportă aceleași filtre și formate de ieșire ca versiunea grafică.
Wireshark necesită înțelegerea principiilor de bază ale capturării traficului. Unul dintre scenariile frecvente — găsirea sursei întârzierilor într-o aplicație mobilă prin filtrul tcp.analysis.ack_rtt. Pentru a găsi cererile HTTP lente, folosiți condiția http.time mai mare decât 1.
Pentru a găsi cererile HTTP lente, filtrați http.time mai mare decât 1 — Wireshark va afișa cererile cu un timp de răspuns mai mare de 1 secundă. Combinați cu ip.addr pentru analiza unui anumit server. IO Graph cu interval de 1 secundă va evidenția clar vârfurile de sarcină.
Wireshark suportă exportul în CSV, JSON și XML prin meniul File. Pentru analiza automată folosiți tshark — versiunea de consolă care funcționează în pipeline-urile CI/CD. Tshark suportă aceleași filtre și formate de ieșire ca versiunea grafică.
Întrebări frecvente
Wireshark oferă o interfață grafică cu vizualizarea pachetelor, filtre integrate și statistici. tcpdump — un utilitar de consolă fără GUI, comod pentru capturarea server prin SSH. Wireshark poate citi fișierele tcpdump și invers.
Pentru decriptare este necesar fișierul cu cheile de sesiune TLS (SSLKEYLOGFILE). Chrome și Firefox exportă cheile la lansarea cu variabila de mediu. Calea către fișier se specifică în setările Protocols → TLS din Wireshark.
Traficul loopback pe Windows nu trece implicit prin driverul Npcap. Soluția — instalarea Npcap cu opțiunea Loopback Support activată sau utilizarea utilitarului RawCap pentru capturarea traficului local.
Da, prin proxarea traficului către computer. Android suportă capturarea prin PCAPdroid (fără root) sau tcpdump (cu root). iOS necesită RVI (Remote Virtual Interface) prin macOS sau jailbreak pentru capturare.
Display filter frame contains caută un șir de caractere sau o secvență hex în întregul pachet. Exemplu: frame contains "password" va găsi pachetele cu subșirul password în orice câmp. Pentru căutarea exactă după câmp, folosiți http.request.uri contains "api" .
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și