// DevOps
Сетевой траблшутинг для новичков: Часть 5 — tcpdump, sngrep и Wireshark
Опубликовано 22.09.2026
Иногда все проверки проходят: ping отвечает, DNS работает, порты открыты, mtr не показывает потерь, а приложение всё равно получает ошибки вроде connection reset by peer или TLS handshake failed. В таких случаях остаётся посмотреть на сами пакеты — перехватить трафик и разобрать, что происходит в соединении. В этой части — три инструмента: tcpdump для захвата, sngrep для SIP и Wireshark для разбора.
tcpdump: захват пакетов
tcpdump есть почти в любом дистрибутиве Linux. Он показывает пакеты в консоли и умеет сохранять их в файл формата pcap для последующего анализа.
Список интерфейсов, на которых можно захватывать трафик:
sudo tcpdump -DТрафик с конкретным узлом:
sudo tcpdump -ni eth0 host 203.0.113.10Флаг -n отключает преобразование адресов и портов в имена: вывод становится быстрее, и в нём не появляются DNS-запросы самого tcpdump.
Только HTTPS:
sudo tcpdump -ni eth0 tcp port 443Только DNS-запросы и ответы:
sudo tcpdump -ni eth0 port 53Сохранить трафик в файл для Wireshark:
sudo tcpdump -ni eth0 -w /tmp/capture.pcapОграничить объём, чтобы не заполнить диск:
# остановиться после 1000 пакетов
sudo tcpdump -ni eth0 -c 1000 -w /tmp/capture.pcap
# начинать новый файл каждые 60 секунд; имя файла задаётся по шаблону strftime
sudo tcpdump -ni eth0 -G 60 -w '/tmp/capture-%Y-%m-%d_%H-%M-%S.pcap'Длина захватываемой части пакета по умолчанию — 262 144 байта, то есть пакеты сохраняются целиком. Параметр -s 0 в старых инструкциях нужен был для версий с маленьким значением по умолчанию; в современных версиях он означает то же значение по умолчанию.
Фильтры tcpdump (host, port, tcp, udp и их сочетания через and, or, not) — это фильтры захвата: пакеты, которые им не соответствуют, в файл не попадают вовсе.
sngrep: SIP-диалоги в терминале
sngrep создан для отладки телефонии: он собирает SIP-пакеты в звонки и показывает их как диалог — REGISTER, INVITE, ответы 100 Trying, 180 Ringing, 200 OK и так далее. Это удобнее, чем разбирать SIP в выводе tcpdump.
sudo apt install sngrep
sudo sngrep # захват в реальном времени
sudo sngrep port 5060 # только SIP на стандартном порту
sngrep -I /tmp/capture.pcap # открыть сохранённый файлВ интерфейсе стрелками выбирают звонок, Enter открывает схему обмена сообщениями.
Wireshark: разбор записи
Wireshark — графический анализатор пакетов. Удобная схема работы с сервером: захватить трафик tcpdump на сервере, скачать файл и открыть его в Wireshark на своём компьютере.
scp user@server:/tmp/capture.pcap .
wireshark capture.pcapФильтры отображения задаются в строке фильтра над списком пакетов:
http.request— только HTTP-запросы;tls.handshake— сообщения TLS-рукопожатия;dns— DNS-запросы и ответы;tcp.flags.reset == 1— пакеты со сбросом соединения;ip.addr == 203.0.113.10— трафик с конкретным адресом.
Команда Follow → TCP Stream в контекстном меню собирает пакеты одного соединения в последовательный диалог.
Не путайте два вида фильтров: фильтры захвата (синтаксис BPF, как в tcpdump: port 443) определяют, что попадёт в файл, а фильтры отображения Wireshark (tls.handshake) только скрывают лишнее в уже записанных данных. Синтаксис у них разный.
Когда какой инструмент
| Инструмент | Для чего | Где |
|---|---|---|
tcpdump | захват трафика, быстрый просмотр, запись в файл | сервер без графического интерфейса |
sngrep | SIP-звонки и регистрации | серверы телефонии |
| Wireshark | подробный разбор записи, протоколы, потоки | рабочий компьютер |
Типичные ошибки
- Запуск без прав root — захват с интерфейса требует
sudoили соответствующих прав. - Захват на не том интерфейсе — на сервере с несколькими интерфейсами, VPN или Docker трафик может идти не через
eth0. Список —tcpdump -D, все интерфейсы сразу —-i any. - Запись без ограничений — без
-cили-Gфайл на загруженном сервере растёт очень быстро. - Путаница фильтров захвата и отображения — у них разный синтаксис.
- Ожидание увидеть содержимое HTTPS — в зашифрованном трафике видны адреса, порты, рукопожатие и имя сайта в SNI, но не содержимое запросов.
- Перехват чужого трафика — захватывайте только трафик своих систем или с разрешения владельца.
Итог
Анализ пакетов — последний шаг диагностики, когда остальные утилиты не дают ответа. Он показывает, что происходит в соединении на самом деле: кто разрывает соединение, на каком этапе падает TLS-рукопожатие, доходят ли ответы. Для отработки навыка полезно записать и разобрать обычный запрос к сайту: DNS-запрос, установку TCP-соединения, TLS-рукопожатие.
Для проверки отдельных соединений вручную пригодится netcat.
Ресурсы
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related