Wireshark, gerçek zamanlı olarak paketleri yakalamak ve incelemek için kullanılan, açık kaynaklı öncü ağ trafiği analizörüdür. Araç iki binden fazla ağ protokolünü destekler ve tüm önemli platformlarda çalışır. Wireshark User Guide (2026)'a göre araç, mobil ve web geliştirmede ağ teşhisi, API hata ayıklama ve güvenlik analizi için kullanılır.
Önemli noktalar
Wireshark, bilgisayarın ağ arayüzünden geçen veri paketlerini yakalayan açık kaynaklı bir programdır (GPLv2). OSI modelinin veri bağlantı katmanında yakalama için libpcap (Unix) veya Npcap (Windows) kitaplığına dayanır.
Normal modda bir ağ kartı yalnızca kendi MAC adresine gönderilen çerçeveleri alır. Wireshark, arayüzü promiscuous (ayırt etmeyen) moduna geçirir; bu modda sistem alıcıdan bağımsız olarak tüm geçen çerçeveleri işler. Yakalanan veriler raw socket aracılığıyla çekirdeğe iletilir, ardından libpcap kitaplığı bunları analiz için kullanıcı alanına kopyalar.
Wireshark modüler bir mimari kullanır: her protokol, ikili verileri ayrıştıran ve yapılandırılmış biçimde görüntüleyen ayrı bir dissector — eklenti olarak uygulanır. 2026 itibarıyla programda HTTP/2, QUIC, gRPC ve MQTT dahil 2 874 protokol için dissector uygulanmıştır. Dissector'lar protokol ağacı sistemi üzerinden çalışır — her paket katman katman ayrıştırılır: Ethernet çerçevesinden uygulama katmanına kadar.
// Özel bir protokol için basit bir dissector örneği
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;
}
Wireshark'ın grafik arayüzü üç panele bölünmüştür: paket listesi (packet list), protokol ayrıntıları (packet details) ve onaltılık döküm (packet bytes). Her panel gerçek zamanlı olarak güncellenir ve etkileşimli gezinmeyi destekler — bir paket satırına tıklamak tam yapısını açar.
Araç, yakalama dosyalarını pcap, pcapng, snoop ve NetMon biçimlerinde okur. JSON, XML, CSV ve düz metin olarak dışa aktarma mümkündür. Temel uygulama katmanı protokolleri arasında HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP ve Protobuf bulunur. Mobil geliştirme için akış çoğullamalı gRPC ve HTTP/2 desteği özellikle önemlidir.
Yerleşik yardımcı programlar arasında Follow Stream (tam TCP/UDP/TLS diyaloğunu yeniden kurma), IO Graph (bant genişliği grafiği), konuşma istatistikleri (Conversations) ve protokol hiyerarşisi (Protocol Hierarchy) bulunur. Flow Graph özelliği, düğümler arasındaki paket sırasını görselleştirir ve istemci-sunucu etkileşiminde hata ayıklarken gecikme nedenlerini bulmayı kolaylaştırır.
Yakalamanın başlatılması, bir ağ arayüzünün seçilmesiyle başlar — Ethernet, Wi-Fi, Bluetooth PAN veya Loopback. Windows'ta Npcap'in WinPcap API Compatible Mode'da kurulması gerekebilir. Mobil cihazlarda yakalama için SSH tüneli üzerinden Remote Packet Capture kullanılır.
Android cihazda trafik tcpdump veya PCAPdroid ile yakalanır ve ardından dosya çalışma bilgisayarına aktarılır. ADB ile uzak yakalama komutu:
# ADB shell ile Android'de trafik yakalama
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Bilgisayara kopyalama
adb pull /sdcard/capture.pcap .
Windows'ta localhost (127.0.0.1) trafiği fiziksel arayüzden geçmez, bu nedenle Wireshark bunu doğrudan göremez. Çözüm — Loopback Support seçeneğiyle Npcap kurmak veya trafiği RawCap üzerinden yönlendirmektir. Linux ve macOS'ta loopback arayüzü (lo) ek ayar olmadan yakalanır.
Wireshark iki tür filtre sunar: capture filters (yakalamadan önce, libpcap düzeyinde uygulanır) ve display filters (zaten yakalanmış verilere uygulanır). Capture filters BPF (Berkeley Packet Filter) sözdizimini kullanır, display filters — otomatik tamamlamalı Wireshark'ın kendi dilini.
BPF filtreleri tcpdump biçiminde yazılır ve çekirdekte çalışır; bu da yüksek yük altında paket kaybını en aza indirir. Filtre örnekleri:
| Filtre | Amaç |
|---|---|
| tcp port 80 | Yalnızca standart porttaki HTTP trafiği |
| host 192.168.1.1 | Belirli bir hosttan paketler |
| not arp | ARP istekleri dışındaki tüm paketler |
Display filters sonradan uygulanır ve mantıksal operatörler and, or, not ile karmaşık koşulları destekler. Örnek: http.request.method == "POST" and ip.src == 192.168.0.100 belirli bir IP'den yalnızca POST isteklerini filtreler. Filtreler yeniden kullanım için favori olarak kaydedilebilir.
HTTP trafiği Wireshark'ta okunabilir biçimde görüntülenir: istek yöntemi, URI, başlıklar ve yanıt gövdesi. Follow TCP Stream işlevi, istemci ve sunucu arasındaki tam diyaloğu tek pencerede toplar. HTTPS için TLS oturumlarının şifresinin çözülmesi gerekir, çünkü içerik şifrelidir.
Chrome ve Firefox tarayıcıları, TLS oturum anahtarlarını bir metin dosyasına yazan SSLKEYLOGFILE ortam değişkenini destekler. Wireshark bu dosyayı kayıtların şifresini çözmek için kullanır. Yapılandırma, Preferences → Protocols → TLS → (Pre)-Master-Secret log filename üzerinden yapılır.
# TLS anahtar kaydıyla Chrome'u başlatma
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# Yakalamadan sonra Wireshark'ta yolu belirtin
# Edit → Preferences → Protocols → TLS → Log Filename
gRPC, taşıma olarak HTTP/2'yi, veri serileştirme için Protobuf'u kullanır. Wireshark, yapı tanımlarını içeren bir .proto dosyası sağlanırsa gRPC mesajlarının şifresini çözer. Protobuf dissector'ı ikili alanları proto dosyasındaki adlarla eşleştirir; bu, mikroservis mimarisinde hata ayıklarken kritik önem taşır.
Wireshark ile mobil hata ayıklama, cihazın trafiğinin bilgisayara proxy'lenmesini gerektirir. En güvenilir yöntem — dizüstü bilgisayarda Wi-Fi erişim noktası oluşturmak ve trafiği NAT üzerinden yönlendirmektir. Android'de root hakları olmadan PCAPdroid uygulamasıyla VPN yöntemi de mevcuttur.
PCAPdroid, uygulamaların trafiğini UDP akışı üzerinden Wireshark'a yönlendiren yerel bir VPN hizmeti oluşturur. Uygulama root erişimi gerektirmez ve tek tek işlemlere göre filtrelemeyi destekler. Elde edilen pcap dosyaları tam analiz için Wireshark'ta açılır.
# PCAPdroid'den bilgisayarda trafik alma
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap
Wireshark evrensel bir araçtır, ancak belirli görevler için daha özel çözümler mevcuttur. tcpdump, grafiksiz sunucu yakalaması için daha etkilidir; Charles Proxy, HTTPS trafiğini analiz etmek için daha uygundur; Fiddler ise istekleri anında değiştirme imkânıyla web trafiğini incelemek için uygundur.
Charles Proxy, kendi SSL sertifikasyonu aracılığıyla HTTPS'yi yakalayabilen bir ara proxy sunucusu olarak çalışır. Wireshark'tan farklı olarak Charles, SSLKEYLOGFILE yapılandırması gerektirmez ve trafiği yalnızca görüntülemekle kalmaz, aynı zamanda değiştirebilir — yanıtları değiştirme, gecikmeleri simüle etme ve istekleri tekrarlama.
Fiddler, .NET ekosisteminde popüler olan başka bir proxy aracıdır. Yerleşik istek düzenleyicisi, mock'lar için AutoResponder desteği ve özel istekler oluşturmak için bir composer sunar. Fiddler tarayıcının web trafiğini analiz etmek için daha uygundur, Wireshark — düşük seviyeli ağ analizi için.
| Araç | Tür | Anahtarsız HTTPS | Trafik değişikliği |
|---|---|---|---|
| Wireshark | Dinleyici | Hayır (SSLKEYLOGFILE gerekir) | Sadece görüntüleme |
| Charles | Proxy | Evet (özel sertifika) | Evet |
| Fiddler | Proxy | Evet (özel sertifika) | Evet |
| tcpdump | Dinleyici | Hayır | Sadece görüntüleme |
Wireshark, trafik yakalamanın temel ilkelerini anlamayı gerektirir. Sık görülen senaryolardan biri, tcp.analysis.ack_rtt filtresiyle mobil uygulamadaki gecikmelerin kaynağını bulmaktır. Yavaş HTTP isteklerini bulmak için http.time 1'den büyük koşulunu kullanın.
Yavaş HTTP isteklerini bulmak için http.time 1'den büyük filtresini kullanın — Wireshark, yanıt süresi 1 saniyeden fazla olan istekleri gösterir. Belirli bir sunucuyu analiz etmek için ip.addr ile birleştirin. 1 saniye aralıklı IO Graph, yük zirvelerini net şekilde gösterir.
Wireshark, File menüsü üzerinden CSV, JSON ve XML'e dışa aktarmayı destekler. Otomatik analiz için CI/CD pipeline'larında çalışan konsol sürümü tshark'ı kullanın. Tshark, grafik sürümüyle aynı filtreleri ve çıktı biçimlerini destekler.
Wireshark, trafik yakalamanın temel ilkelerini anlamayı gerektirir. Sık görülen senaryolardan biri, tcp.analysis.ack_rtt filtresiyle mobil uygulamadaki gecikmelerin kaynağını bulmaktır. Yavaş HTTP isteklerini bulmak için http.time 1'den büyük koşulunu kullanın.
Yavaş HTTP isteklerini bulmak için http.time 1'den büyük filtresini kullanın — Wireshark, yanıt süresi 1 saniyeden fazla olan istekleri gösterir. Belirli bir sunucuyu analiz etmek için ip.addr ile birleştirin. 1 saniye aralıklı IO Graph, yük zirvelerini net şekilde gösterir.
Wireshark, File menüsü üzerinden CSV, JSON ve XML'e dışa aktarmayı destekler. Otomatik analiz için CI/CD pipeline'larında çalışan konsol sürümü tshark'ı kullanın. Tshark, grafik sürümüyle aynı filtreleri ve çıktı biçimlerini destekler.
Sıkça sorulan sorular
Wireshark, paket görselleştirme, yerleşik filtreler ve istatistiklerle grafik arayüz sunar. tcpdump — GUI'siz bir konsol yardımcı programıdır, SSH üzerinden sunucu yakalaması için uygundur. Wireshark tcpdump dosyalarını okuyabilir ve bunun tersi de geçerlidir.
Şifre çözmek için TLS oturum anahtarı dosyası (SSLKEYLOGFILE) gerekir. Chrome ve Firefox, ortam değişkeniyle başlatıldığında anahtarları dışa aktarır. Dosyanın yolu, Wireshark'ta Protocols → TLS ayarlarında belirtilir.
Windows'ta loopback trafiği varsayılan olarak Npcap sürücüsünden geçmez. Çözüm — Loopback Support seçeneği etkinleştirilmiş Npcap kurmak veya yerel trafiği yakalamak için RawCap yardımcı programını kullanmak.
Evet, trafiği bilgisayara proxy'leyerek. Android, PCAPdroid (root'suz) veya tcpdump (root ile) ile yakalamayı destekler. iOS, yakalama için macOS üzerinden RVI (Remote Virtual Interface) veya jailbreak gerektirir.
Display filter frame contains, tüm pakette bir dize veya onaltılık dizi arar. Örnek: frame contains "password" herhangi bir alanda password alt dizesini içeren paketleri bulur. Alana göre tam arama için http.request.uri contains "api" kullanın.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun