Wireshark: що це, аналіз трафіку та перехоплення пакетів

Автор: IT Sectr Опубліковано: 2026-05-08 Час читання: 9 хв

Wireshark — провідний аналізатор мережевого трафіку з відкритим кодом, що використовується для перехоплення та інспекції пакетів у реальному часі. Інструмент підтримує понад дві тисячі мережевих протоколів і працює на всіх основних платформах. Згідно з Wireshark User Guide (2026), утиліта застосовується для діагностики мереж, налагодження API та аналізу безпеки в мобільній і веб-розробці.

Головне

  • Wireshark — безкоштовний сниффер пакетів із графічним інтерфейсом для аналізу мережевого трафіку.
  • Захоплення трафіку виконується через мережевий інтерфейс у режимі promiscuous на рівні канального рівня.
  • Фільтрація пакетів за IP, портом, протоколом і вмістом реалізована через мову BPF та display filters.
  • Аналіз HTTPS вимагає налаштування SSLKEYLOGFILE або проміжного проксі для розшифрування сесій.
  • Мобільне налагодження можливе через звʼязку з tcpdump на пристрої та Remote Packet Capture.

Що таке Wireshark і як він працює

Wireshark — програма з відкритим кодом (GPLv2), яка перехоплює пакети даних, що проходять через мережевий інтерфейс компʼютера. Заснована на бібліотеці libpcap (Unix) або Npcap (Windows) для захоплення на рівні канального рівня моделі OSI.

Принцип захоплення пакетів

Мережева карта у звичайному режимі отримує лише кадри, адресовані її MAC-адресі. Wireshark перемикає інтерфейс у режим promiscuous (нерозбірливий), за якого система обробляє всі кадри незалежно від адресата. Захоплені дані передаються в ядро через сокет raw socket, після чого бібліотека libpcap копіює їх у простір користувача для аналізу.

Архітектура обробки

Wireshark використовує модульну архітектуру: кожен протокол реалізований як окремий диссектор — плагін, який парсить бінарні дані та відображає їх у структурованому вигляді. Станом на 2026 рік у програмі реалізовано диссектори для 2 874 протоколів, зокрема HTTP/2, QUIC, gRPC та MQTT. Диссектори працюють через систему дерева протоколів — кожен пакет розбирається пошарово: від Ethernet-кадру до прикладного рівня.

c
// Приклад простого диссектора для кастомного протоколу
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

Графічний інтерфейс Wireshark розділений на три панелі: список пакетів (packet list), деталі протоколів (packet details) та hex-дамп (packet bytes). Кожна панель оновлюється в реальному часі та підтримує інтерактивну навігацію — клік по рядку пакета відкриває його повну структуру.

Підтримувані формати та протоколи

Інструмент читає файли захоплення у форматах pcap, pcapng, snoop та NetMon. Експорт можливий у JSON, XML, CSV та звичайний текст. Серед ключових протоколів прикладного рівня — 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 візуалізує послідовність пакетів між вузлами, що спрощує пошук причин затримок під час налагодження клієнт-серверної взаємодії.

Як перехоплювати трафік через Wireshark

Запуск захоплення починається з вибору мережевого інтерфейсу — Ethernet, Wi-Fi, Bluetooth PAN або Loopback. На Windows може знадобитися встановлення Npcap у режимі WinPcap API Compatible Mode. Для захоплення на мобільних пристроях використовується Remote Packet Capture через SSH-тунель.

Захоплення на віддаленому пристрої

На Android-пристрої трафік перехоплюється через tcpdump або PCAPdroid із подальшою передачею файлу на робочий компʼютер. Команда для віддаленого захоплення через ADB:

bash
# Захоплення трафіку на Android через ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Копіювання на компʼютер
adb pull /sdcard/capture.pcap .

Захоплення Loopback трафіку

На Windows трафік localhost (127.0.0.1) не проходить через фізичний інтерфейс, тому Wireshark не бачить його напряму. Рішення — встановлення Npcap з опцією Loopback Support або перенаправлення трафіку через RawCap. На Linux та macOS loopback-інтерфейс (lo) захоплюється без додаткових налаштувань.

Фільтрація пакетів у Wireshark

Wireshark пропонує два типи фільтрів: capture filters (застосовуються до захоплення, на рівні libpcap) та display filters (застосовуються до вже захоплених даних). Capture filters використовують синтаксис BPF (Berkeley Packet Filter), display filters — власну мову Wireshark з автодоповненням.

Capture Filters (BPF)

BPF-фільтри записуються у форматі tcpdump і виконуються в ядрі, що мінімізує втрату пакетів за високого навантаження. Приклади фільтрів:

ФільтрПризначення
tcp port 80Лише HTTP-трафік на стандартному порту
host 192.168.1.1Пакети від конкретного хоста
not arpУсі пакети, крім ARP-запитів

Display Filters

Display filters застосовуються постфактум і підтримують складні умови з логічними операторами and, or, not. Приклад: http.request.method == "POST" and ip.src == 192.168.0.100 відфільтрує лише POST-запити з конкретного IP. Фільтри можна зберігати як обрані для повторного використання.

Аналіз HTTP та HTTPS трафіку

HTTP-трафік відображається у Wireshark у читабельному вигляді: метод запиту, URI, заголовки та тіло відповіді. Функція Follow TCP Stream збирає повний діалог клієнта та сервера в одному вікні. Для HTTPS потрібне розшифрування TLS-сесій, оскільки вміст зашифрований.

Розшифрування HTTPS через SSLKEYLOGFILE

Браузери Chrome та Firefox підтримують змінну середовища SSLKEYLOGFILE, яка записує сесійні ключі TLS у текстовий файл. Wireshark використовує цей файл для розшифрування записів. Налаштування виконується через Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.

bash
# Запуск Chrome із записом ключів TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .

# Після захоплення вказати шлях у Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename

Аналіз gRPC та Protobuf

gRPC використовує HTTP/2 як транспорт і Protobuf для серіалізації даних. Wireshark розшифровує gRPC-повідомлення, якщо надати файл .proto з визначенням структур. Диссектор Protobuf зіставляє бінарні поля з іменами з прото-файлу, що критично важливо під час налагодження мікросервісної архітектури.

Налагодження мобільних застосунків із Wireshark

Мобільне налагодження через Wireshark вимагає проксіювання трафіку пристрою на компʼютер. Найнадійніший метод — створення точки доступу Wi-Fi на ноутбуці та перенаправлення трафіку через NAT. На Android також доступний VPN-метод із застосунком PCAPdroid без прав root.

Налаштування на Android без root

PCAPdroid створює локальний VPN-сервіс, який перенаправляє трафік застосунків на Wireshark через UDP-потік. Застосунок не вимагає root-доступу та підтримує фільтрацію за окремими процесами. Отримані pcap-файли відкриваються у Wireshark для повного аналізу.

bash
# Прийом трафіку від PCAPdroid на компʼютері
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap

Порівняння Wireshark з альтернативами

Wireshark — універсальний інструмент, але для конкретних завдань існують більш спеціалізовані рішення. tcpdump ефективніший для серверного захоплення без графіки, Charles Proxy зручніший для аналізу HTTPS трафіку, а Fiddler — для інспекції веб-трафіку з можливістю модифікації запитів на льоту.

Charles Proxy vs Wireshark

Charles Proxy виступає як проміжний проксі-сервер із можливістю перехоплення HTTPS через власну SSL-сертифікацію. На відміну від Wireshark, Чарльз не вимагає налаштування SSLKEYLOGFILE і може не лише переглядати, а й змінювати трафік — підміняти відповіді, емулювати затримки та повторювати запити.

Fiddler Everywhere

Fiddler — ще один проксі-інструмент, популярний у .NET екосистемі. Він надає вбудований редактор запитів, підтримку AutoResponder для моків і композер для створення кастомних запитів. Fiddler краще підходить для аналізу веб-трафіку браузера, Wireshark — для низькорівневого мережевого аналізу.

ІнструментТипHTTPS без ключівЗміна трафіку
WiresharkСнифферНі (потрібен SSLKEYLOGFILE)Лише перегляд
CharlesПроксіТак (кастомний сертифікат)Так
FiddlerПроксіТак (кастомний сертифікат)Так
tcpdumpСнифферНіЛише перегляд

Практичні поради щодо роботи з Wireshark

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 пайплайнах. Tshark підтримує ті самі фільтри та формати виводу, що й графічна версія.

Практичні поради щодо роботи з Wireshark

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 пайплайнах. Tshark підтримує ті самі фільтри та формати виводу, що й графічна версія.

Часті запитання

Чим Wireshark відрізняється від tcpdump?

Wireshark надає графічний інтерфейс із візуалізацією пакетів, вбудованими фільтрами та статистикою. tcpdump — консольна утиліта без GUI, зручна для серверного захоплення через SSH. Wireshark вміє читати файли tcpdump і навпаки.

Як перехопити HTTPS трафік у Wireshark?

Для розшифрування потрібен файл сесійних ключів TLS (SSLKEYLOGFILE). Chrome та Firefox експортують ключі під час запуску зі змінною середовища. Шлях до файлу вказується в налаштуваннях Protocols → TLS у Wireshark.

Чому Wireshark не бачить трафік localhost на Windows?

Loopback-трафік на Windows не проходить через драйвер Npcap за замовчуванням. Рішення — встановлення Npcap із ввімкненою опцією Loopback Support або використання утиліти RawCap для захоплення локального трафіку.

Чи можна використовувати Wireshark для мобільних застосунків?

Так, через проксіювання трафіку на компʼютер. Android підтримує захоплення через PCAPdroid (без root) або tcpdump (з root). iOS вимагає RVI (Remote Virtual Interface) через macOS або jailbreak для захоплення.

Як фільтрувати пакети за вмістом у Wireshark?

Display filter frame contains шукає рядок або hex-послідовність у всьому пакеті. Приклад: frame contains "password" знайде пакети з підрядком password у будь-якому полі. Для точного пошуку за полем використовуйте http.request.uri contains "api".

Підсумки

  • Wireshark — основний інструмент для аналізу мережевого трафіку в розробці, що підтримує понад 2800 протоколів.
  • Захоплення пакетів виконується в режимі promiscuous через бібліотеку libpcap або Npcap на рівні канального доступу.
  • Фільтрація поділяється на capture filters (BPF, на рівні ядра) та display filters (мова Wireshark, з автодоповненням).
  • HTTPS розшифрування доступне через SSLKEYLOGFILE для браузерів Chrome та Firefox.
  • Мобільне налагодження реалізується через PCAPdroid (Android) або Remote Virtual Interface (iOS) без потреби в root.
  • gRPC та Protobuf підтримуються через завантаження .proto файлів для десеріалізації бінарних даних.
  • Flow Graph та IO Graph допомагають візуалізувати затримки та знаходити вузькі місця в клієнт-серверній взаємодії.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також