Сетевой Траблшутинг для Новичков: Слушаем провода
Опубликовано 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
Посмотреть интерфейсы:
sudo tcpdump -D
Это важно, если у сервера несколько сетевых карт.
Захватить трафик для конкретного хоста:
sudo tcpdump -i eth0 host 8.8.8.8
Фильтр по порту и протоколу:
sudo tcpdump -i eth0 tcp port 443
Сохранить дамп для Wireshark:
sudo tcpdump -i eth0 -w /tmp/capture.pcap
Ограничить размер или время записи:
# Захватить только первые 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
Установить:
sudo apt update && sudo apt install -y sngrep
Запустить с привилегиями:
sudo sngrep
Навигация:
- Стрелки — выбор сессии.
Enter
— подробности диалога./
— поиск по IP или номеру порта.
Фильтрация SIP-звонков:
sudo sngrep port 5060
⚡ Удобно, когда нужно быстро отладить SIP-регистрацию, INVITE или HTTP-сессии, не погружаясь в «сырой» вывод tcpdump.
Wireshark — Сетевой микроскоп 🔬
Wireshark — это GUI-анализатор пакетов и золотой стандарт для глубокого исследования сетей.
How to использовать Wireshark
Открыть сохранённый дамп:
wireshark /tmp/capture.pcap
Фильтры отображения (Display filters):
- Только HTTP-запросы:
http.request
- Только TLS-рукопожатия:
tls.handshake
- Только HTTP-запросы:
Follow TCP Stream — собрать пакеты одного соединения и показать цельный диалог (удобно для HTTP, SMTP и даже бинарных протоколов).
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 | Локальная работа, сложные кейсы, визуализация |
Чеклист типичных ошибок новичков ⚠️
- Запуск
tcpdump
илиsngrep
безsudo
→ доступ к интерфейсу будет ограничен. - Сохранение дампов без опции
-s 0
→ пакеты урезаются по умолчанию (обычно 96 байт). - Перепутали capture filter (tcpdump/BPF) и display filter (Wireshark).
- Пишут дамп без ограничения (
-c
или-G
) → диск забивается гигабайтами данных. - Открывают pcap-файл в текстовом редакторе, а не в Wireshark.
- Доверяют только заголовкам (
flags
,handshake
) и забывают смотреть payload. - Думают, что
tcpdump
автоматически показывает DNS-имена — а он может и замедлить анализ (лучше использовать-n
для отключения резолвинга).
Заключение
Анализ сетевого трафика — это глубокое погружение на высшем уровне. Когда стандартные проверки не дают ответа, пакетные снифферы позволяют:
- увидеть, что реально происходит “на проводе”;
- проверить корректность рукопожатий, таймингов и диалогов;
- найти виновника: сервер, клиент, NAT, firewall или сеть.
Чтобы научиться пользоваться этими инструментами, нужно практиковаться. Попробуйте:
- Захватить свой HTTP-трафик.
- Посмотреть, как проходит DNS-запрос.
- Разобрать TLS-рукопожатие.
Только через практику вы поймёте, насколько полезно уметь «слушать провода».
Похожие посты
Jitsi Meet против Google Meet: когда полный контроль над данными важнее всего
07.09.2025
073 | Введение в виртуализацию: Зачем она нужна и как экономит время?
04.08.2025
065 | Почему отказоустойчивость связи — это не роскошь, а необходимость?
27.07.2025
059 | Loki + Grafana: Легковесное и экономичное решение для логов из облака
21.07.2025