Что такое Wireshark и где применять
Wireshark — анализатор сетевого трафика: программа показывает пакеты, проходящие через выбранный сетевой интерфейс, и раскладывает их по протоколам. Он помогает понять, почему тормозит соединение, к каким адресам обращается программа, как проходит DNS-запрос или рукопожатие TLS.
Захватывайте только трафик своих устройств и сетей, где у вас есть право на анализ. Перехват чужих данных незаконен и неэтичен, а рабочие сети требуют разрешения администратора.
Инструмент подходит и для обучения. Наблюдая, как выглядит открытие страницы на уровне пакетов, легко понять, зачем нужны DNS, TCP и TLS, и почему одни проблемы связаны с сетью, а другие с приложением.
Установка: Как установить Wireshark и захватить трафик свое
Скачайте установщик с сайта разработчика: для Windows и macOS есть готовые пакеты, для Linux программа обычно доступна в репозитории дистрибутива. Не берите файл с посторонних сайтов, чтобы не получить версию с вредоносными добавками.
Во время установки на Windows предлагается драйвер захвата пакетов, он необходим для работы. На Linux пользователю, который будет захватывать трафик, нужно разрешить доступ к интерфейсам: способ описан в документации к вашему дистрибутиву, а запуск от администратора нежелателен из соображений безопасности.
Первый захват
Запустите программу. На стартовом экране появится список интерфейсов с графиками активности: живой интерфейс показывает движение. Выберите свой Wi-Fi или Ethernet и начните захват.
Откройте несколько страниц в браузере, затем остановите захват кнопкой остановки. В списке вы увидите столбцы времени, источника, получателя, протокола и краткого описания. Выберите пакет: ниже раскроется структура по уровням, а внизу шестнадцатеричное представление.
Название интерфейса на Windows выглядит по-разному: это описание адаптера, а не имя из настроек. Ориентируйтесь на график активности и на адаптеры с присвоенным адресом. Виртуальные адаптеры программ и виртуальных машин обычно молчат.
Базовые фильтры
Без фильтров поток пугает объёмом. Вводите выражения в строку фильтра: слово dns покажет только запросы имён, http и tls — соответствующие протоколы, а выражение ip.addr со значением адреса ограничит вывод одним узлом. Фильтры можно объединять операторами и, или.
Отдельно различают фильтры захвата и фильтры отображения. Первые задаются до начала и уменьшают объём сохранения, вторые применяются к уже записанному. Начинающим удобнее отображение: ничего не теряется, фильтр можно менять.
Как читать результат и типичные ошибки
Для диагностики ищите повторные передачи, сбросы соединения и долгие паузы между запросом и ответом. Пакеты DNS покажут, какие имена разрешает программа, а рукопожатия — какие узлы и как долго отвечали.
Ошибки начинающих: выбрать неверный интерфейс и увидеть пустоту, запустить захват надолго и получить огромный файл, забыть, что содержимое HTTPS зашифровано и читаются лишь адреса и метаданные. Сохраняйте захваты аккуратно: в них могут остаться логины и токены открытых протоколов, поэтому не пересылайте файлы посторонним без очистки.
Полезные приёмы анализа
Когда базовые фильтры освоены, попробуйте несколько сценариев. Очистите DNS-кэш, откройте сайт и отфильтруйте dns: вы увидите запрос и ответ с адресом, а также время между ними. Если ответ приходит долго, проблема в DNS-сервере. Затем посмотрите рукопожатие TLS: задержка до первого ответа сервера показывает, насколько далёк узел.
В меню статистики есть сводка по протоколам и по разговорам между узлами, из неё видно, какие адреса передают больше всего данных. Пакеты можно раскрасить по правилам, чтобы выделить сбросы соединения и повторные передачи. Сохраняйте интересные участки в отдельный файл небольшого размера. Для длительных наблюдений используйте ограничение по размеру файла или времени, чтобы не заполнить диск. И не забудьте после работы остановить захват и закрыть программу.
Хорошая привычка — вести заметки: записывайте время захвата, интерфейс, фильтры и что вы делали в этот момент. Через неделю без такой записи вспомнить контекст трудно. К тому же примеры с подписями удобно сравнивать между собой и показывать коллегам, когда нужна консультация по сетевой проблеме.