EN EN

Сетевой Траблшутинг для Новичков: Слушаем провода

Опубликовано 17.09.2025


Сетевой Траблшутинг для Новичков: Слушаем провода

Введение

Представьте: ping работает, DNS отвечает, порты открыты, mtr не показывает потерь, а curl возвращает ошибки вроде connection reset by peer или SSL handshake failed. Проблема явно есть, но стандартные утилиты бессильны.

В такие моменты остаётся посмотреть на сам трафик — то есть “послушать провода”. Этот процесс называют packet sniffing или анализом пакетов. В статье мы разберём, how to использовать три ключевых инструмента: tcpdump, sngrep и Wireshark.


tcpdump — Ухо вашего сервера 👂

tcpdump — это стандарт де-факто для захвата пакетов в Unix-системах. Он показывает “сырые” данные прямо в консоли и умеет писать дампы в файл для последующего анализа в Wireshark.

How to использовать tcpdump

  1. Посмотреть интерфейсы:

    sudo tcpdump -D
    

    Это важно, если у сервера несколько сетевых карт.

  2. Захватить трафик для конкретного хоста:

    sudo tcpdump -i eth0 host 8.8.8.8
    
  3. Фильтр по порту и протоколу:

    sudo tcpdump -i eth0 tcp port 443
    
  4. Сохранить дамп для Wireshark:

    sudo tcpdump -i eth0 -w /tmp/capture.pcap
    
  5. Ограничить размер или время записи:

    # Захватить только первые 1000 пакетов
    sudo tcpdump -i eth0 -c 1000
    
    # Создавать новый файл каждую минуту (-G) и сохранять полный пакет (-s 0)
    sudo tcpdump -i eth0 -s 0 -w /tmp/capture-%Y-%m-%d_%H:%M:%S.pcap -G 60
    

⚡ Совет: -c и -G помогут не «залить» диск дампами при долгой диагностике.


sngrep — Диалоги в терминале 🗣️

sngrep изначально создан для VoIP (SIP), но умеет отображать и другие TCP/UDP-сессии. Его главное удобство — группировка пакетов в диалоги.

How to использовать sngrep

  1. Установить:

    sudo apt update && sudo apt install -y sngrep
    
  2. Запустить с привилегиями:

    sudo sngrep
    
  3. Навигация:

    • Стрелки — выбор сессии.
    • Enter — подробности диалога.
    • / — поиск по IP или номеру порта.
  4. Фильтрация SIP-звонков:

    sudo sngrep port 5060
    

⚡ Удобно, когда нужно быстро отладить SIP-регистрацию, INVITE или HTTP-сессии, не погружаясь в «сырой» вывод tcpdump.


Wireshark — Сетевой микроскоп 🔬

Wireshark — это GUI-анализатор пакетов и золотой стандарт для глубокого исследования сетей.

How to использовать Wireshark

  1. Открыть сохранённый дамп:

    wireshark /tmp/capture.pcap
    
  2. Фильтры отображения (Display filters):

    • Только HTTP-запросы:
      http.request
      
    • Только TLS-рукопожатия:
      tls.handshake
      
  3. Follow TCP Stream — собрать пакеты одного соединения и показать цельный диалог (удобно для HTTP, SMTP и даже бинарных протоколов).

  4. Coloring rules — подсветка пакетов по условию (например, красным показывать TCP-reset).

⚡ Важно: capture filters (port 443) задаются на этапе захвата (например, в tcpdump), а display filters (tls.handshake) применяются только при анализе уже собранного дампа.

⚡ Если работаете по SSH, можно писать дамп tcpdump в файл на сервере, а потом скачивать его и открывать в Wireshark.


Сравнение инструментов

ИнструментОсобенностиКак использовать
tcpdumpБыстрый CLI-захват, работает вездеНа сервере без GUI, для экспресс-диагностики
sngrepГруппировка пакетов в диалогиSIP, HTTP, DNS — когда нужно видеть общение как разговор
WiresharkГлубокий анализ с GUIЛокальная работа, сложные кейсы, визуализация

Чеклист типичных ошибок новичков ⚠️

  1. Запуск tcpdump или sngrep без sudo → доступ к интерфейсу будет ограничен.
  2. Сохранение дампов без опции -s 0 → пакеты урезаются по умолчанию (обычно 96 байт).
  3. Перепутали capture filter (tcpdump/BPF) и display filter (Wireshark).
  4. Пишут дамп без ограничения (-c или -G) → диск забивается гигабайтами данных.
  5. Открывают pcap-файл в текстовом редакторе, а не в Wireshark.
  6. Доверяют только заголовкам (flags, handshake) и забывают смотреть payload.
  7. Думают, что tcpdump автоматически показывает DNS-имена — а он может и замедлить анализ (лучше использовать -n для отключения резолвинга).

Заключение

Анализ сетевого трафика — это глубокое погружение на высшем уровне. Когда стандартные проверки не дают ответа, пакетные снифферы позволяют:

  • увидеть, что реально происходит “на проводе”;
  • проверить корректность рукопожатий, таймингов и диалогов;
  • найти виновника: сервер, клиент, NAT, firewall или сеть.

Чтобы научиться пользоваться этими инструментами, нужно практиковаться. Попробуйте:

  1. Захватить свой HTTP-трафик.
  2. Посмотреть, как проходит DNS-запрос.
  3. Разобрать TLS-рукопожатие.

Только через практику вы поймёте, насколько полезно уметь «слушать провода».

Нужна помощь?

Свяжись со мной и я помогу решить проблему

Похожие посты