Wireshark — водећи анализатор мрежног саобраћаја са отвореним кодом, који се користи за пресретање и инспекцију пакета у реалном времену. Алат подржава више од две хиљаде мрежних протокола и ради на свим главним платформама. Према Wireshark User Guide (2026), алат се примењује за дијагностику мрежа, отклањање грешака у API-ју и анализу безбедности у мобилном и веб развоју.
Главно
Wireshark — програм са отвореним кодом (GPLv2) који пресреће пакете података који пролазе кроз мрежни интерфејс рачунара. Заснован је на библиотеци libpcap (Unix) или Npcap (Windows) за хватање на нивоу каналног слоја OSI модела.
Мрежна картица у нормалном режиму прима само оквире упућене њеној MAC адреси. Wireshark пребацује интерфејс у promiscuous режим, у којем систем обрађује све пролазне оквире без обзира на примаоца. Пресретнути подаци преносе се у језгро преко сировог сокета raw socket, након чега библиотека libpcap копира их у кориснички простор ради анализе.
Wireshark користи модуларну архитектуру: сваки протокол је реализован као засебан дисектор — додатак који парсира бинарне податке и приказује их у структурисаном облику. На стање 2026. године у програму су реализовани дисектори за 2 874 протокола, укључујући HTTP/2, QUIC, gRPC и MQTT. Дисектори раде кроз систем стабла протокола — сваки пакет се разлаже слој по слој: од Ethernet оквира до апликативног слоја.
// Пример једноставног дисектора за прилагођени протокол
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-а подељен је на три панела: листу пакета (packet list), детаље протокола (packet details) и hex дамп (packet bytes). Сваки панел се ажурира у реалном времену и подржава интерактивну навигацију — клик на ред пакета отвара његову комплетну структуру.
Алат чита датотеке хватања у форматима pcap, pcapng, snoop и NetMon. Извоз је могућ у JSON, XML, CSV и plain text. Међу кључним протоколима апликативног слоја су: HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP и Protobuf. За мобилни развој посебно је важна подршка за gRPC и HTTP/2 са мултиплексирањем токова.
Уграђени алати укључују Follow Stream (обнављање комплетног TCP/UDP/TLS дијалога), IO Graph (график пропусности), статистику разговора (Conversations) и хијерархију протокола (Protocol Hierarchy). Функција Flow Graph визуализује редослед пакета између чворова, што олакшава проналажење узрока кашњења при отклањању грешака у интеракцији клијент-сервер.
Покретање хватања почиње избором мрежног интерфејса — Ethernet, Wi-Fi, Bluetooth PAN или Loopback. На Windows-у може бити потребна инсталација Npcap-а у WinPcap API Compatible Mode режиму. За хватање на мобилним уређајима користи се Remote Packet Capture преко SSH тунела.
На Android уређају саобраћај се пресреће кроз tcpdump или PCAPdroid, уз накнадни пренос датотеке на радни рачунар. Команда за удаљено хватање преко ADB-а:
# Хватање саобраћаја на Android-у преко ADB shell-а
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Копирање на рачунар
adb pull /sdcard/capture.pcap . На Windows-у localhost (127.0.0.1) саобраћај не пролази кроз физички интерфејс, па га Wireshark не види директно. Решење — инсталација Npcap-а са опцијом Loopback Support или преусмеравање саобраћаја кроз RawCap. На Linux-у и macOS-у loopback интерфејс (lo) се хвата без додатних подешавања.
Wireshark нуди две врсте филтера: capture filters (примењују се пре хватања, на нивоу libpcap-а) и display filters (примењују се на већ пресретнуте податке). Capture филтери користе синтаксу BPF (Berkeley Packet Filter), а display филтери — сопствени језик Wireshark-а са аутоматским довршавањем.
BPF филтери записују се у tcpdump формату и извршавају се у језгру, што минимизује губитак пакета при високом оптерећењу. Примери филтера:
| Филтер | Намена |
|---|---|
| tcp port 80 | Само HTTP саобраћај на стандардном порту |
| host 192.168.1.1 | Пакети од одређеног хоста |
| not arp | Сви пакети осим ARP захтева |
Display филтери примењују се накнадно и подржавају сложене услове са логичким операторима and, or, not. Пример: http.request.method == "POST" and ip.src == 192.168.0.100 филтрираће само POST захтеве са одређеног IP-а. Филтери се могу чувати као омиљени ради поновне употребе.
HTTP саобраћај приказује се у Wireshark-у у читљивом облику: метода захтева, URI, заглавља и тело одговора. Функција Follow TCP Stream сакупља комплетан дијалог клијента и сервера у једном прозору. За HTTPS потребно је дешифровање TLS сесија, јер је садржај шифрован.
Прегледачи Chrome и Firefox подржавају променљиву окружења SSLKEYLOGFILE, која записује сесијске кључеве TLS у текстуалну датотеку. Wireshark користи ову датотеку за дешифровање записа. Подешавање се врши преко Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.
# Покретање Chrome-а са записом TLS кључева
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .
# Након хватања навести путању у Wireshark-у
# Edit → Preferences → Protocols → TLS → Log Filename gRPC користи HTTP/2 као транспорт и Protobuf за серијализацију података. Wireshark дешифрује gRPC поруке ако се обезбеди .proto датотека са дефиницијом структура. Protobuf дисектор повезује бинарна поља са именима из proto датотеке, што је кључно при отклањању грешака у микросервисној архитектури.
Мобилно отклањање грешака преко Wireshark-а захтева проксирање саобраћаја уређаја на рачунар. Најпоузданија метода — креирање Wi-Fi приступне тачке на лаптопу и преусмеравање саобраћаја кроз NAT. На Android-у је такође доступна VPN метода са апликацијом PCAPdroid без root права.
PCAPdroid креира локалну VPN услугу која преусмерава саобраћај апликација на Wireshark преко UDP тока. Апликација не захтева root приступ и подржава филтрирање по појединачним процесима. Добијене pcap датотеке отварају се у Wireshark-у ради комплетне анализе.
# Пријем саобраћаја од PCAPdroid-а на рачунару
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap Wireshark — универзалан алат, али за одређене задатке постоје специјализованија решења. tcpdump је ефикаснији за серверско хватање без графике, Charles Proxy је практичнији за анализу HTTPS саобраћаја, а Fiddler — за инспекцију веб саобраћаја са могућношћу модификације захтева у лету.
Charles Proxy наступа као посреднички прокси сервер са могућношћу пресретања HTTPS преко сопствене SSL сертификације. За разлику од Wireshark-а, Charles не захтева подешавање SSLKEYLOGFILE и може не само да прегледа, већ и да мења саобраћај — замењује одговоре, емулира кашњења и понавља захтеве.
Fiddler — још један прокси алат, популаран у .NET екосистему. Пружа уграђени едитор захтева, подршку за AutoResponder ради мокова и композер за креирање прилагођених захтева. Fiddler је погоднији за анализу веб саобраћаја прегледача, а Wireshark — за нискобуџетну мрежну анализу.
| Алат | Тип | HTTPS без кључева | Измена саобраћаја |
|---|---|---|---|
| Wireshark | Снифер | Не (потребан SSLKEYLOGFILE) | Само преглед |
| Charles | Прокси | Да (прилагођени сертификат) | Да |
| Fiddler | Прокси | Да (прилагођени сертификат) | Да |
| tcpdump | Снифер | Не | Само преглед |
Wireshark захтева разумевање основних принципа хватања саобраћаја. Један од честих сценарија — проналажење извора кашњења у мобилној апликацији преко филтера tcp.analysis.ack_rtt. За проналажење спорих HTTP захтева користите услов http.time веће од 1.
За проналажење спорих HTTP захтева филтрирајте http.time веће од 1 — Wireshark ће приказати захтеве са временом одговора већим од 1 секунде. Комбинујте са ip.addr ради анализе одређеног сервера. IO Graph са интервалом од 1 секунде јасно ће приказати врхове оптерећења.
Wireshark подржава извоз у CSV, JSON и XML преко менија File. За аутоматску анализу користите tshark — конзолну верзију која ради у CI/CD pipeline-овима. Tshark подржава исте филтере и формате излаза као графичка верзија.
Wireshark захтева разумевање основних принципа хватања саобраћаја. Један од честих сценарија — проналажење извора кашњења у мобилној апликацији преко филтера tcp.analysis.ack_rtt. За проналажење спорих HTTP захтева користите услов http.time веће од 1.
За проналажење спорих HTTP захтева филтрирајте http.time веће од 1 — Wireshark ће приказати захтеве са временом одговора већим од 1 секунде. Комбинујте са ip.addr ради анализе одређеног сервера. IO Graph са интервалом од 1 секунде јасно ће приказати врхове оптерећења.
Wireshark подржава извоз у CSV, JSON и XML преко менија File. За аутоматску анализу користите tshark — конзолну верзију која ради у CI/CD pipeline-овима. Tshark подржава исте филтере и формате излаза као графичка верзија.
Често постављана питања
Wireshark пружа графички интерфејс са визуализацијом пакета, уграђеним филтерима и статистиком. tcpdump — конзолни алат без GUI-ја, погодан за серверско хватање преко SSH-а. Wireshark уме да чита tcpdump датотеке и обрнуто.
За дешифровање потребна је датотека сесијских кључева TLS (SSLKEYLOGFILE). Chrome и Firefox извозе кључеве при покретању са променљивом окружења. Путања до датотеке наводи се у подешавањима Protocols → TLS у Wireshark-у.
Loopback саобраћај на Windows-у не пролази подразумевано кроз Npcap драјвер. Решење — инсталација Npcap-а са укљученом опцијом Loopback Support или коришћење алата RawCap за хватање локалног саобраћаја.
Да, преко проксирања саобраћаја на рачунар. Android подржава хватање преко PCAPdroid-а (без root-а) или tcpdump-а (са root-ом). iOS захтева RVI (Remote Virtual Interface) преко macOS-а или jailbreak ради хватања.
Display филтер frame contains тражи низ знакова или hex секвенцу у целом пакету. Пример: frame contains "password" пронаћи ће пакете са поднизом password у било ком пољу. За прецизну претрагу по пољу користите http.request.uri contains "api" .
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође