Определение простыми словами
Wireshark — это рентген для сети. Запускаете захват, видите каждый пакет, который проходит через интерфейс: кто отправитель, кто получатель, какой протокол, какие данные. Программа сама разбирает заголовки TCP, DNS, HTTP, TLS и сотен других протоколов на уровне полей.
Изначально проект назывался Ethereal, переименован в Wireshark в 2006-м из-за конфликта торговых марок. Под капотом — библиотека libpcap (Unix) или Npcap (Windows). Для серверов есть консольный аналог tshark, для офлайн-анализа — формат pcap/pcapng.
Сравнение
| Параметр | Wireshark | tcpdump | nmap |
|---|---|---|---|
| Назначение | анализ пакетов | захват пакетов | сканирование портов |
| Интерфейс | GUI + CLI (tshark) | только CLI | CLI + Zenmap |
| Разбор протоколов | 3 000+ | базовый | через скрипты NSE |
| Захват в файл | да, pcapng | да, pcap | нет |
| Декодирование TLS | с ключом сеанса | нет | нет |
| Использование на сервере | tshark | стандарт | при разведке |
Кейсы использования
- Отладка зависающего HTTPS-соединения: смотрим, доходит ли SYN, отвечает ли сервер, на каком этапе TLS происходит RST.
- Анализ медленного DNS: время от запроса до ответа, повторные запросы, выбор резолвера.
- Разбор VoIP-трафика SIP/RTP с реконструкцией звонка из RTP-потока.
- Расследование утечек: какие домены опрашивает подозрительное приложение, какие данные уходят.
- Негативный сценарий: запуск Wireshark в продакшене на нагруженном интерфейсе вешает CPU и заполняет диск гигабайтами pcap. На бою лучше точечный tcpdump с фильтром и анализ дампа на отдельной машине.
Технические детали
# Захват с фильтром только HTTPS-трафика на интерфейсе eth0
sudo tshark -i eth0 -f "tcp port 443" -w /tmp/https.pcap
# Просмотр готового pcap с разбором HTTP-запросов
tshark -r /tmp/https.pcap -Y "http.request" -T fields
-e ip.src -e http.host -e http.request.uri
# Захват только TLS-рукопожатий (Client Hello)
sudo tshark -i any -Y "tls.handshake.type == 1"
-T fields -e ip.dst -e tls.handshake.extensions_server_name
# Расшифровка TLS-сессии при наличии sslkeylogfile
export SSLKEYLOGFILE=~/.ssl-key.log
wireshark -o tls.keylog_file:$SSLKEYLOGFILE
На сервере удобнее работать с tshark: захватили pcap, скачали к себе и открыли в GUI. Подробнее о смежных утилитах — в статьях про tcpdump и WireGuard.
🔥 Где это применяется
Частые вопросы
Wireshark видит зашифрованный HTTPS-трафик?
По умолчанию видит только метаданные (IP, порты, SNI). Содержимое расшифровывается при наличии файла SSLKEYLOGFILE из браузера или приватного ключа RSA-сервера для устаревших шифров.
Wireshark легален?
Сам по себе да: это инструмент диагностики. Захват чужого трафика без разрешения может нарушать законы о тайне связи. На своём сервере и в своей сети ограничений нет.
Чем Wireshark отличается от tcpdump?
tcpdump — лёгкая консольная утилита для захвата. Wireshark — полноценное GUI-приложение с разбором тысяч протоколов и инструментами анализа. Часто используют связку: tcpdump на сервере, Wireshark на ноутбуке.