Wireshark 101: Руководство для начинающих 2025 года

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


Что такое Wireshark?

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

  • Устраняете неполадки Wi-Fi в домашней лаборатории.
  • Исследуете периодические сбои в дата-центре.
  • Анализируете проблемы производительности.

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


Типичный сценарий: «Сеть медленная или не работает»

Если вы спросите сетевого инженера о самых частых обращениях в службу поддержки, он, скорее всего, скажет: «Сегодня всё тормозит» или «Сеть не работает». В домашней лаборатории проблема может звучать иначе: «Почему rsync работает так медленно?». Общий алгоритм устранения неполадок:

  1. Определите симптомы (задержки, потери пакетов, низкая скорость).
  2. Воспроизведите проблему и зафиксируйте проблемный трафик.
  3. Визуализируйте поток данных (рукопожатия, переговоры, повторные передачи).
  4. Локализуйте узкое место (проблемный участок, устройство, настройки).
  5. Подтвердите исправление, сделав повторный захват.

Ping помогает с первым пунктом, traceroute и iperf — с вторым. Начиная с третьего шага, почти всегда требуется анализ пакетов, и здесь на помощь приходит Wireshark.


Выбор точки захвата трафика

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

При открытии Wireshark вы увидите список сетевых интерфейсов (в идеале — не слишком большой). Выберите интерфейс, через который проходит нужный вам трафик.

Wireshark interfaces

Примеры для домашней лаборатории:

  • Ноутбук на Wi-Fi: Захватывайте трафик напрямую с беспроводного адаптера, чтобы увидеть повторные попытки передачи или ошибки рукопожатия WPA.
  • Виртуальные машины с мостовым подключением: Запустите Wireshark внутри ВМ и выберите соответствующий интерфейс.
  • Узлы Kubernetes на Raspberry Pi: Используйте tcpdump через SSH, затем перенесите файл .pcap на рабочий компьютер для анализа.

Примеры для рабочих сред:

  • SPAN-порт на коммутаторе: Зеркалируйте трафик с подозрительной VLAN.
  • Мониторинг трафика на межсетевом экране: Многие NGFW позволяют захватывать трафик после расшифровки (полезно для проблем с IPSec или SSL VPN).
  • Аппаратный tap на 10 GbE-каналах: Аппаратные tap-устройства избегают потерь пакетов при высокой нагрузке и сохраняют точность временных меток.

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


Фильтры захвата vs. фильтры отображения

Wireshark поддерживает два типа фильтров, и важно понимать, когда использовать каждый из них:

Задача Фильтр захвата (BPF, задаётся до старта) Фильтр отображения (применяется после захвата)
Только DHCP-пакеты udp port 67 or udp port 68 bootp
Весь трафик с одного хоста host 10.0.0.42 ip.addr == 10.0.0.42
Один хост + конкретный порт host 10.0.0.42 and tcp port 8443 ip.addr == 10.0.0.42 && tcp.port == 8443
IPSec ESP между сайтами ip proto 50 esp
Только SYN-пакеты (непрактично) tcp.flags.syn == 1 && tcp.flags.ack == 0
Повторные передачи (нельзя предварительно отфильтровать) tcp.analysis.retransmission

Создание фильтров захвата

Даже на гигабитном канале за несколько минут может накопиться гигабайты трафика, поэтому фильтрация при захвате критически важна. Синтаксис Berkeley Packet Filter (BPF) выглядит сложным, но сводится к нескольким простым выражениям:

Сценарий Фильтр захвата
Только DNS-трафик udp port 53
Один хост и любой порт host 10.0.0.42
Один хост + порт TCP host 10.0.0.42 and tcp port 8443
Все пакеты IPSec ESP ip proto 50

В Wireshark эти фильтры вводятся в поле Capture Options перед запуском. В tcpdump используйте флаг -f "фильтр".


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

После захвата трафика используйте строку фильтрации (зелёный/красный индикатор). Эти сокращения помогают выявить 90 % проблем:

Цель Фильтр отображения
Показать повторные передачи tcp.analysis.flags
Выделить пакеты рукопожатия tcp.flags.syn == 1
Найти «нулевые окна» tcp.analysis.zero_window
Обнаружить проблемы MTU icmp.type == 3 and icmp.code == 4

Фильтры можно комбинировать с помощью AND/OR. Например, поиск проблемных сегментов с определённого хоста:

ip.addr == 10.0.0.50 && tcp.analysis.out_of_order


Распространённые проблемы и их решение

1. Сбой DHCP на новой VLAN

  • Фильтр захвата: udp port 67 or udp port 68
  • Симптом: Клиент отправляет DISCOVER, но не получает OFFER.
  • Решение: Добавьте VLAN в DHCP-ретранслятор или настройте транки.

2. Таймаут TLS-рукопожатия

  • Фильтр захвата: tcp port 443 and host server.mydomain.com
  • Симптом: Клиент отправляет Client Hello, но сервер не отвечает.
  • Решение: Проверьте ACL или настройки шифрования.

3. Медленный SQL-запрос

  • Фильтр захвата: host sql.lab.local and tcp
  • Симптом: SYN-ACK без Window-Scale; окно приёма «застряло» на 65 535 байт.
  • Решение: Отключите инспекцию TCP на межсетевом экране.

Window size

4. Медленное копирование файлов по Wi-Fi

  • Фильтр захвата: host nas.home and tcp port 445
  • Симптом: Повторные передачи и таймауты ACK.
  • Решение: Проверьте уровень сигнала или наличие помех.

Расширенная диагностика

Расшифровка TLS

Если у вас есть доступ к серверу, экспортируйте его приватный ключ или используйте журнал SSLKEYLOGFILE в браузере. Загрузите ключ в Wireshark (Preferences → Protocols → TLS), и зашифрованные HTTP/2-потоки станут читаемыми. Это особенно полезно для отладки API.

Wireshark tls settings

Проблемы с MTU в VPN-туннелях

Фильтр icmp.code == 4 покажет сообщения «Fragmentation Needed». Если их нет, но есть повторные передачи с малым MSS, вероятно, MTU discovery заблокирован.

Анализ VoIP-звонков

Используйте Telephony → VoIP Calls: Wireshark соберёт SIP-диалоги, извлечёт RTP-потоки и даже воспроизведёт аудио — полезно для диагностики «одностороннего звука».

Voip call


Автоматизация для частых проблем

  • Кольцевой буфер в tshark:

    tshark -i eth0 -b filesize:100000 -b files:20 -w /var/captures/voip.pcap

    Сохраняет последние 2 ГБ VoIP-трафика.

  • Срезы пакетов на загруженных каналах:

    tcpdump -s 128

    Захватывает только заголовки.

  • Планируемые захваты:
    Настройте cron или Планировщик задач для периодического запуска tcpdump.

Заключение

Wireshark — мощный инструмент для глубокого анализа сетевого трафика. Сначала он может показаться сложным, но базовые навыки фильтрации быстро окупаются. Начните с простого: изучите DHCP-рукопожатие в домашней сети, затем переходите к TLS-сессиям. Со временем вы освоите анализ SYN, ACK и TCP-опций.

Совет: Держите Wireshark под рукой — на домашнем компьютере и рабочем сервере. Когда получите очередное сообщение «Всё тормозит», вы сможете быстро найти причину и сэкономить часы работы.

Предыдущая Статья

Как я запускаю Docker на TrueNAS как профессионал

Следующая Статья

CoreControl — новая самообслуживаемая панель управления для домашних лабораторий

Написать комментарий

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *