Среди множества инструментов для обеспечения сетевой безопасности Wireshark выделяется своей способностью захватывать и отображать пакеты в реальном времени, что особенно полезно для диагностики и анализа сети.

Wireshark прост в использовании и является отличным вариантом для новичков, но при этом достаточно мощный для профессионалов, которым нужны детализированные данные о сетевом трафике.

В этом руководстве объясняется, как установить Wireshark и использовать его для выявления проблем с подключением, обнаружения подозрительной активности и анализа производительности сети.

Что такое Wireshark?

Wireshark — это бесплатный и с открытым исходным кодом анализатор сетевых протоколов. Он захватывает и отображает полный контент пакетов, включая все уровни протоколов (например, Ethernet, HTTP, TCP).

Wireshark может анализировать сетевой трафик в реальном времени или проверять ранее захваченные данные пакетов. Это делает его ценным инструментом для анализа поведения сети, устранения неполадок и выявления потенциальных угроз безопасности.

Wireshark совместим с большинством основных операционных систем, включая Windows, Linux и macOS.

Зачем использовать Wireshark?

Если вы новичок в использовании Wireshark, первое, что вы заметите — это удобный графический интерфейс, который отображает захваченные пакеты с детализированной информацией на уровне протоколов. Эти данные предоставляют прямой доступ к тому, что на самом деле происходит в сети.

Wireshark стоит использовать, потому что он:

  • Бесплатен, без скрытых подписок или лицензионных сборов.

  • С открытым исходным кодом, активно поддерживается и обновляется сильным и активным сообществом.

  • Способен распознавать и декодировать сотни протоколов, включая TCP, UDP, HTTP, TLS, DNS и ��ногие другие.

  • Совместим с Windows, Linux и macOS.

  • Может захватывать живой трафик, проходящий через сетевой интерфейс, включая исходные и конечные IP‑адреса, типы протоколов и информацию о полезной нагрузке.

  • Полезен для офлайн‑анализа, позволяя проверять ранее сохранённые захваченные пакеты.

  • Оснащён мощными фильтрами отображения и захвата для быстрого сужения релевантного трафика.

Преимущества Wireshark

Wireshark обладает множеством функций, которые позволяют мониторить повседневный сетевой трафик, а также глубоко анализировать пакеты. Преимущества использования Wireshark включают:

  • Универсальный инструмент для анализа сети. Используйте Wireshark для диагностики, улучшения производительности сети, реагирования на инциденты и цифровой криминалистики.

  • Мощные визуализации. Включает цветовую кодировку для просмотра пакетов, интерактивные графики, деревья иерархий протоколов и инструменты для восстановления потоков.

  • Глубокая способность инспекции. Пользователи могут исследовать каждый уровень захваченного трафика. Захваченные пакеты данных раскрывают поведение протоколов, порты, флаги, заголовки и метаданные для полного контекста каждой транзакции.

  • Поддержка как проводных, так и беспроводных сетей. Анализирует трафик с Ethernet, Wi‑Fi, loopback и других типов интерфейсов.

  • Дешифровка трафика. Поддерживает дешифровку SSL/TLS, WPA/WPA2 и других протоколов шифрования с необходимыми ключами.

  • Пользовательские правила цветовой маркировки. Выделяйте определённые шаблоны трафика для быстрого выявления протоколов, ошибок или аномалий.

  • Захват пакетов в реальном времени и анализ после захвата. Легко переключайтесь между живым мониторингом и офлайн‑проверкой захваченных данных.

  • Поддержка плагинов и скриптов. Поддерживает пользовательские декодировщики протоколов и автоматизацию рабочих процессов с помощью Lua‑скриптов.

Как установить Wireshark

В следующих разделах объясняется самый быстрый способ установки версии Wireshark с графическим интерфейсом на Linux, Windows и macOS.

Примечание: Wireshark — это приложение с графическим интерфейсом. Для Linux‑дистрибутивов, которые по умолчанию не включают графическую среду, таких как Alpine или Arch Linux, необходимо установить рабочее окружение перед запуском Wireshark. Однако, учитывая минималистичную природу и предполагаемое использование этих систем, версия Wireshark для командной строки (tshark) часто является более подходящим вариантом для захвата и анализа трафика.

Установка Wireshark на Linux

Выполните следующие шаги для установки Wireshark на Linux:

  1. Установите Wireshark

Откройте командную строку и введите команду установки для вашего дистрибутива Linux:

Дистрибутив

Команда для установки Wireshark

Ubuntu/Debian

sudo apt install wireshark ‑y

Fedora/Rocky Linux/RHEL

sudo dnf install wireshark ‑y

openSUSE

sudo zypper install wireshark ‑y

Примечание: Kali Linux часто используется для анализа сети и тестирования на проникновение. Wireshark уже включён в его состав, и дополнительная установка не требуется.

2. Разрешите захват пакетов без прав суперпользователя (только для дистрибутивов на основе Debian)

Во время установки на дистрибутивах на основе Debian, таких как Ubuntu, вам будет предложено следующее сообщение:

Когда появится запрос, выберите «Yes» и нажмите Enter, чтобы разрешить пользователям без прав суперпользователя захватывать сетевые пакеты. Это означает, что вам больше не нужно запускать всё приложение с привилегиями sudo. Wireshark теперь проще и безопаснее в использовании.

3. Добавьте пользователя в группу Wireshark

Чтобы добавить текущего пользователя в системную группу wireshark, выполните команду:

sudo usermod -aG wireshark $USER

Теперь только пользователи из группы wireshark смогут захватывать пакеты без прав суперпользователя.

4. Установите права для dumpcap (только Fedora, Rocky и RHEL)

Wireshark использует вспомогательную программу dumpcap для захвата пакетов. На Fedora, Rocky Linux и RHEL вам нужно вручную предоставить dumpcap необходимые права для захвата пакетов без привилегий суперпользователя:

sudo setcap cap_net_raw,cap_net_admin=eip $(which dumpcap)

Теперь бинарный файл dumpcap может захватывать трафик без полного доступа к правам суперпользователя.

Примечание: Этот шаг не требуется на системах на основе Debian, если вы выбрали «Yes» при установке.

5. Выйдите и войдите снова

Выйдите из системы или перезагрузите её, чтобы изменения в группе вступили в силу.

Установка Wireshark на Windows

Для установки Wireshark на Windows следуйте шагам, приведённым ниже:

1. Скачайте установочный файл

Перейдите на официальную страницу загрузки Wireshark и нажмите на ссылку «Windows x64 Installer», чтобы скачать последнюю стабильную версию.

2. Установите Wireshark

Дважды щелкните по загруженному.exe файлу, чтобы запустить мастер установки Wireshark, и следуйте инструкциям на экране.

3. Выберите компоненты

Когда появится окно, выберите компоненты для установки Wireshark. Если вы не уверены, оставьте выбор по умолчанию и нажмите «Next».

Дополнительные инструменты можно добавить или удалить позже.

4. Установите Npcap (обязательно)

Npcap — это драйвер захвата пакетов, который позволяет Wireshark захватывать живой сетевой трафик. Эта опция обычно выбрана по умолчанию.

Оставьте эту опцию включённой и нажмите «Next».

5. Установите USBPcap (необязательно)

USBPcap позволяет Wireshark захватывать USB‑трафик. Оставьте этот необязательный компонент невыбранным, если вам не требуется захват пакетов USB.

Нажмите «Установить», чтобы начать процесс установки.

6. Запустите Wireshark

После завершения установки запустите приложение Wireshark из меню «Пуск» или с ярлыка на рабочем столе.

Установка Wireshark на macOS

Для установки Wireshark на macOS следуйте приведённым ниже шагам.

1. Скачайте установочный файл Wireshark

Перейдите на официальную страницу загрузки Wireshark и скачайте образ диска для macOS Arm или macOS Intel, в зависимости от архитектуры вашего Mac.

Примечание: Чтобы проверить архитектуру вашего Mac, откройте меню Apple >> «About this Mac». Если указано Intel, скачайте версию для Intel, а если указано Apple M1/M2/M3, скачайте версию для Arm.

2. Откройте образ диска

Дважды щелкните по загруженному.dmg файлу, чтобы открыть установочный образ диска.

3. Скопируйте Wireshark в папку «Applications»

Перетащите значок Wireshark в папку «Applications».

4. Откройте Wireshark

После того как пакет приложения Wireshark будет скопирован, запустите Wireshark из папки «Программы».

Как использовать Wireshark?

Графический интерфейс является основным методом для захвата и анализа сетевого трафика в Wireshark. Пользователи могут взаимодействовать с панелями инструментов, меню и визуальными отображениями для интерпретации сетевых данных в реальном времени. Захваченные данные также могут быть экспортированы и сохранены для последующего анализа.

Кроме того, пользователи могут вводить команды через tshark — инструмент командной строки Wireshark. Хотя он не имеет графического интерфейса, он предоставляет аналогичную функциональность и отлично подходит для систем без GUI.

Объяснение захвата пакетов Wireshark

Захват пакетов также называется «сниффингом». Термин «сниффинг» относится к пассивному наблюдению за трафиком, когда инструмент перехватывает и регистрирует пакеты, передаваемые через сеть, без их изменения. Wireshark переводит выбранный сетевой интерфейс в режим «Promiscuous», что позволяет захватывать каждый пакет, который он видит.

Wireshark разбивает каждый захваченный пакет на уровни протоколов, такие как Ethernet, IP и TCP, и отображает как необработанный поток байтов, так и декодированную читаемую версию.

Как начать захват пакетов

Для захвата и анализа пакетов в Wireshark:

  1. Запустите Wireshark.

  2. Выберите сетевой интерфейс из списка. Идеально выбрать тот, который показывает активный трафик.

  3. Нажмите на синюю кнопку в виде плавника акулы, чтобы начать захват пакетов.

Wireshark сразу начинает захват трафика и отображает его в реальном времени.

Просмотр списка пакетов

Каждая строка в верхней панели представляет один пакет.

Столбцы содержат следующую информацию для каждого сетевого пакета:

Столбец

Описание

No.

Номер пакета в последовательности захвата.

Time

Время, прошедшее с начала захвата.

Source

IP‑адрес или MAC‑адрес источника пакета.

Destination

IP‑адрес или MAC‑адрес назначения пакета.

Protocol

Тип протокола, например, TLS v1.2, TCP, ICMP и так далее

Length

Размер пакета в байтах.

Info

Краткое описание функции или содержимого пакета.

Инспекция деталей пакета

Выбирая пакет в списке, вы можете заполнить два дополнительных окна. Нижняя левая панель организует структуру пакета по уровням протокола. Пользователи могут развернуть уровни, чтобы просмотреть заголовки отдельных пакетов и их полезные нагрузки.

Просмотр необработанных байтов

Правая нижняя панель отображает необработанный поток байтов пакета в формате как в шестнадцатеричном виде, так и в ASCII.

Эта информация полезна для выявления аномалий протоколов, проверки полезных нагрузок на уровне приложения или отладки бинарных протоколов.

Остановить захват и сохранить данные

Когда вы готовы остановить захват пакетов, нажмите на красную кнопку «Stop» на панели инструментов.

Чтобы сохранить захваченные данные, перейдите в меню «File» и выберите «Save As», чтобы сохранить сессию в формате.pcapng.

Вы можете открыть сохранённые захваты из списка недавних файлов на главном экране.

Формат.pcapng позволяет делиться файлами с другими для совместной работы по устранению проблем и решению сетевых вопросов.

Объяснение фильтров Wireshark

Wireshark захватывает огромное количество данных. Может быть трудно найти конкретные пакеты для анализа. Фильтры позволяют сузить объём данных до удобоваримой величины.

Существует два типа фильтров в Wireshark: фильтры захвата и фильтры отображения.

Фильтры захвата Wireshark

Фильтры захвата применяются до начала захвата пакетов. Они ограничивают то, что Wireshark записывает, и не могут быть изменены после начала захвата.

Чтобы настроить фильтры захвата в Wireshark:

  1. Нажмите на Capture в панели инструментов и выберите опцию Capture Filters.

  2. Нажмите на знак +, чтобы добавить новый фильтр.

  3. Введите имя фильтра и соответствующее выражение. Например:

    Фильтр захвата

    Описание

    tcp

    Захватывать только TCP‑трафик

    port 80

    Захватывать только трафик на порту 80

    host 192.168.1.1

    Захватывать только трафик к и от указанного IP

  4. Нажмите «ОК», чтобы сохранить фильтр.

Как только вы начнёте процесс захвата, новый фильтр будет применён.

Фильтры отображения Wireshark

Фильтры отображения применяются после захвата и определяют, что Wireshark будет показывать в списке пакетов. Используйте строку фильтрации выше списка пакетов, чтобы применить фильтры отображения.

Например, вы можете применить следующие фильтры:

Фильтр отображения

Описание

http

Показывать только HTTP‑трафик.

ip.addr == 192.168.1.1

Показывать только трафик к и от конкретного IP.

tcp.flags.syn == 1

Показывать только TCP SYN‑пакеты (попытки соединений).

dns.qry.name contains “example.com

Показывать DNS‑запросы для «example.com„.“»

Фильтры отображения не изменяют данные и могут быть изменены в любой момент.

Wireshark и утилита Ping

Wireshark может захватывать и анализировать пакеты ICMP Echo Request и Reply, генерируемые командой ping.

Чтобы мониторить активность ping в Wireshark:

  1. Начните захват пакетов в Wireshark.

  2. Откройте терминал и введите следующую команду:

    ping 8.8.8.8
  3. Примените фильтр отображения, введя следующее в поле фильтра и нажав Enter:

    icmp

Теперь Wireshark отображает пакеты Echo Request и Echo Reply, а также значения времени обратного пути (RTT) и времени жизни (TTL).

Эти данные полезны для диагностики задержек в сети, потерь пакетов и общих проблем с подключением.

Опции цветовой маркировки в Wireshark

Wireshark применяет стандартные цветовые правила для выделения различных типов пакетов и состояний в списке пакетов. Эти визуальные подсказки помогают пользователям быстро обнаруживать шаблоны, различать протоколы и выявлять аномалии.

Чтобы просмотреть или настроить цветовые правила в Wireshark:

  1. Откройте меню «View» и выберите «Coloring Rules».

  2. Откроется окно, в котором перечислены текущие правила, их фильтры и назначенные цвета. Стандартные цвета включают:

    Цвет

    Значение

    Светло‑голубой

    TCP трафик

    Светло‑зелёный

    HTTP трафик

    Чёрный

    Некорректные или ошибочные пакеты

    Тёмно‑синий

    DNS трафик

    Красный

    Повторная передача TCP или проблемы

  3. Чтобы добавить пользовательское правило, нажмите кнопку +.

  4. Введите имя для правила, например, Blocklisted IP.

  5. В поле Filter введите корректное выражение для фильтра отображения, например:

    ip.addr == 192.0.2.1
  6. Используйте вкладки Foreground и Background, чтобы выбрать пользовательские цвета.

  7. Нажмите «OK», чтобы применить изменения.

Теперь заблокированные IP‑адреса будут отображаться в списке пакетов в выбранном вами цвете.

Примечание: Чтобы удалить всю цветовую маркировку из списка пакетов и отобразить пакеты в обычном тексте, выберите опцию Colorize Packet List в меню View.

Режим Promiscuous в Wireshark

Режим Promiscuous позволяет Wireshark захватывать все пакеты, которые видны сетевому интерфейсу. Этот режим включён по умолчанию на всех интерфейсах.

Хотя режим Promiscuous полезен для общего анализа сети, в некоторых средах он может нарушать политику конфиденциальности или регламенты, особенно если пакеты не предназначены для вашего устройства.

Чтобы отключить режим Promiscuous, нажмите Ctrl+K и снимите галочку с поля Promiscuous для тех интерфейсов, которые вы хотите изменить.

Тем же методом можно снова включить режим Promiscuous. Когда он отключён, Wireshark будет отображать только пакеты, направленные к вашему устройству или от него на затронутом интерфейсе.

Командная строка Wireshark

При установке Wireshark на Windows и macOS пакет также включает tshark, командную строку, аналогичную Wireshark. tshark предоставляет схожую функциональность захвата пакетов, но без графического интерфейса. Вместо визуальных отображений tshark позволяет пользователям:

  • Захватывать пакеты с интерфейсов.

  • Применять фильтры захвата и отображения.

  • Отображать информацию о пакетах в реальном времени прямо в терминале.

  • Сохранять вывод в файлы.pcapng.

tshark — это предпочтительный инструмент для пользователей, которые хотят автоматизировать задачи и встроить функциональность Wireshark в скрипты. Это единственный вариант при работе в средах без графического интерфейса, например, на хедлесс‑серверах.

Некоторые Linux‑дистрибутивы, такие как Kali Linux, включают tshark по умолчанию или пакуют его в основной пакет Wireshark (openSUSE). Однако для большинства дистрибутивов требуется отдельная установка tshark.

Таблица ниже показывает команды для установки tshark на Linux:

Дистрибутив

Команда для установки tshark

Debian/Ubuntu

sudo apt install tshark ‑y

Fedora/RHEL/Rocky

sudo dnf install wireshark‑cli ‑y

Arch Linux

sudo pacman ‑S wireshark‑cli

Alpine

sudo apk add wireshark

После установки tshark откройте терминал и введите следующую команду, чтобы вывести список доступных интерфейсов:

tshark -D

Чтобы захватить трафик на интерфейсе 1 (enp0s3) и сохранить данные в файл capture.pcapng, введите:

tshark -i 1 -w capture.pcapng

Нажмите Ctrl+C, чтобы остановить захват пакетов. Файл capture.pcapng теперь содержит все пакеты, захваченные до момента остановки захвата.

Используйте следующую команду, чтобы записать вывод в файл и одновременно вывести его в терминал:

tshark -i enp0s3 -w capture2.pcapng -P

Вы можете применить фильтры захвата и отображения для выявления релевантной информации. Например, чтобы применить фильтр захвата для HTTP‑трафика, введите:

tshark -i enp0s3 -f "tcp port 80" -w capture2.pcapng

После того как данные сохранены в файл, используйте tshark для чтения и фильтрации файла, чтобы отобразить данные в терминале:

tshark -r capture2.pcapng -Y "ip.addr == 185.15.59.224"

Вывод только отображает пакеты из файла capture2.pcapng, которые направлены к или от указанного IP‑адреса.

Команды Wireshark

В следующем разделе перечислены горячие клавиши и действия Wireshark GUI, операторы фильтров и синтаксис, а также основные и продвинутые команды tshark.

Горячие клавиши Wireshark GUI

Горячая клавиша

Действие

Ctrl+E

Начать захват.

Ctrl+E

Остановить захват.

Ctrl+S или Ctrl+Shift+S

Сохранить текущий файл захвата.

Ctrl+O

Открыть файл захвата (.pcap,.pcapng и так далее).

Ctrl+F

Поиск пакета по строке или фильтру отображения.

↓ / ↑

Перемещение к следующему или предыдущему пакету в списке.

Ctrl+↓ / Ctrl+↑

Перемещение к следующему или предыдущему пакету в том же сеансе.

Enter

Развернуть или свернуть элемент в панели подробностей.

Backspace

Перейти к родительскому узлу в панели подробностей пакета.

Tab или Shift+Tab

Навигация между элементами интерфейса (например, панель фильтра, список пакетов).

Операторы фильтров отображения

Оператор

Описание

Пример

== или eq

Равно

ip.addr == 192.168.1.1

!= или ne

Не равно

ip.addr != 192.168.1.1

> или gt

Больше

frame.len > 1000

< или lt

Меньше

frame.len < 512

>= или ge

Больше или равно

frame.len >= 1500

<= или le

Меньше или равно

frame.len <= 64

and или &&

Логическое И

ip && tcp

or или `

`

not или !

Логическое НЕ

!http

Примеры фильтров отображения

Действие

Фильтр отображения

Фильтровать по IP

ip.addr == 10.10.42.1

Фильтровать по исходному IP

ip.src == 10.10.42.1

Фильтровать по IP назначения

ip.dst == 10.10.42.1

Исключить IP

!(ip.addr == 10.10.42.1)

Диапазон IP

ip.addr >= 10.10.42.1 and ip.addr <= 10.10.42.100

Подсеть

ip.addr == 10.10.42.1/24

Фильтр по протоколу

http or ftp or ssh or icmp

TCP порт

tcp.port == 25

TCP порт назначения

tcp.dst == 27

IP и порт

ip.addr == 10.10.50.1 and tcp.port == 25

Временная метка

frame.time >= "2025-08-07 12:48:22"

Флаг SYN

tcp.flags.syn == 1 && tcp.flags.ack == 0

HTTP Host

http.host == "example.com"

Широковещательный трафик

eth.dst == ff:ff:ff:ff:ff:ff

Многоадресный трафик

(eth.dst[0] & 1)

MAC адрес

eth.addr == 00:10:f7:23:12:c5

Примеры фильтров захвата

Сценарий

Фильтр захвата

Захват всего трафика от хоста

src host 192.168.1.10

Захват всего трафика к хосту

dst host 8.8.8.8

Захват трафика к и от хоста

host 192.168.1.1

Захват трафика с конкретного порта

port 443

Захват только TCP трафика

tcp

Захват только UDP трафика

udp

Захват только DNS трафика (UDP порт 53)

udp port 53

Захват ICMP (ping) трафика

icmp

Захват HTTP трафика

tcp port 80

Захват HTTPS трафика

tcp port 443

Захват трафика с сети

net 192.168.1.0/24

Исключить SSH трафик

not port 22

Примеры базовых команд tshark

Команда

Описание

tshark -D

Список всех доступных интерфейсов.

tshark -i enp0s3

Захват пакетов на конкретном интерфейсе.

tshark -i enp0s3 -w capturefile.pcapng

Сохранить захваченные пакеты в файл.

tshark -a duration:30 -i enp0s3

Захват трафика в течение 30 секунд.

tshark -f "port 443" -i enp0s3

Применить фильтр захвата для записи только HTTPS трафика.

tshark -Y "http" -r capturefile.pcapng

Применить фильтр отображения для показа только HTTP трафика из сохранённого файла.

tshark -T fields -e ip.src -e ip.dst

Вывести только выбранные поля (в этом примере — исходный и целевой IP).

tshark -z io,stat,1

Показать статистику ввода/вывода с интервалом 1 секунда.

tshark -z conv,tcp

Показать TCP‑сессии.

Примеры продвинутых команд tshark

Команда

Описание

tshark -i enp0s3 -c 100 -w capturefile.pcapng

Захватить 100 пакетов и автоматически остановить захват.

tshark -i enp0s3 -w capturefile.pcapng -P

Показать пакеты в реальном времени в терминале и записать их в файл.

tshark -r capturefile.pcapng -Y "http.request"

Фильтровать и отображать только HTTP‑запросы из файла захвата.

tshark -r capturefile.pcapng -T fields -e ip.src -e ip.dst -e frame.len

Отобразить выбранные поля (исходный IP, целевой IP, размер кадра).

tshark -r capturefile.pcapng -T fields -e ip.src -e ip.dst -E header=y -E separator=, > packets.csv

Экспортировать выбранные поля в CSV файл.

tshark -r capturefile.pcapng -T json

Вывести данные в структурированном формате JSON.

tshark -r capturefile.pcapng -Y "dns" -T fields -e dns.qry.name

Извлечь доменные имена из DNS‑запросов.

tshark -i enp0s3 -f "tcp[tcpflags] & tcp-syn != 0" -c 10

Захватить 10 TCP SYN пакетов для выявления попыток соединений.

tshark -i enp0s3 -f "host 192.168.1.10"

Захватить трафик к и от конкретного IP‑адреса.

tshark -i enp0s3 -w capturefile.pcapng &

Начать захват в фоновом режиме.

tshark -qz io,stat,1 -i enp0s3 -a duration:60

Печать количества пакетов в секунду за 60 секунд.

Когда багживёт «между клиентом и сервером», догадки не помогают — нужен трафик. Если Wireshark и безопасность API/инфры для вас не теория, а способ быстрее закрывать инциденты и спорные кейсы, приходите на бесплатные занятия от преподавателей профильных курсов:

  • 26 января 20:00 — Готовые решения и лучшие практики для надёжной защиты API в архитектуре бэкенда. Записаться

  • 27 января 19:00 — Docker hardening + IaC security: типовые ошибки и чек-лист безопасной инфраструктуры. Записаться

  • 27 января 20:00 — Wireshark 1/2: интерфейс и возможности. Записаться