Введение
При диагностике сетевых сбоев и исследовании аномалий в среде Linux незаменимым инструментом системного инженера остается утилита tcpdump. В этом руководстве мы опустим сухое чтение документации и сразу перейдем к прикладному освоению: от базовой инспекции сетевых интерфейсов и фильтрации трафика на лету до сохранения дампов в формате PCAP с последующей расшифровкой содержимого.
Подготовка окружения и инспекция сетевых интерфейсов
Для воспроизведения сценариев перехвата и генерации тестовых запросов установим в систему пакеты tcpdump и curl.

Проверим корректность установки утилиты и сопутствующей библиотеки libpcap, выполнив команду tcpdump --version.
Сетевой анализатор tcpdump позволяет в реальном времени инспектировать фреймы, проходящие через интерфейсы ядра, предоставляя исчерпывающие данные по протоколам всех уровней модели OSI.
⚙️ [Ключевые флаги запуска]
-i : указывает конкретный сетевой интерфейс для прослушивания.-n : отключает резолвинг IP-адресов в доменные имена для ускорения вывода.-nn : предотвращает трансляцию как хостов в имена, так и номеров портов в названия сетевых служб.-c : задает лимит перехватываемых пакетов, по достижении которого процесс завершается.-v : включает подробный вывод служебных заголовков (TTL, идентификаторы, флаги); уровни -vv и -vvv дают максимальную детализацию.-w : сохраняет необработанные сетевые данные в файл формата PCAP для последующей обработки в Wireshark.-r : считывает ранее записанный дамп трафика из указанного pcap-файла.-A : декодирует полезную нагрузку пакета в текстовом виде (ASCII).-X : отображает заголовки и тело пакета одновременно в шестнадцатеричном коде (Hex) и формате ASCII.-D : выводит список всех доступных в операционной системе интерфейсов для перехвата.

Вызов tcpdump -D отображает перечень сетевых адаптеров, зарегистрированных в ОС, с их порядковыми номерами и текущим статусом.
В выведенном списке присутствуют основной внешний адаптер eth0, псевдоинтерфейс any (позволяющий агрегировать трафик со всех интерфейсов сразу) и локальная петля lo. Любое из этих имен передается параметром к флагу -i.

Базовый перехват трафика на интерфейсе обратной петли
Сгенерируем фоновую тестовую нагрузку ICMP на локальном адресе с помощью команды ping -c 4 127.0.0.1 > /dev/null 2>&1 &.

Команда tcpdump -i lo -c 4 -n инициирует прослушивание loopback-интерфейса (lo), ограничиваясь четырьмя пакетами (-c 4) и отображая адреса исключительно в виде IP (-n).
В терминале фиксируются входящие и исходящие пакеты echo request и reply для адреса 127.0.0.1 с отметками точного времени, номерами последовательностей и размером переданных блоков.

Выборочный захват трафика по протоколам и портам
Для моделирования зашифрованного веб-трафика на порт 443 отправим запрос в фоновом режиме через утилиту curl -s https://example.com > /dev/null 2>&1 &.

Конструкция tcpdump -i any -c 4 -nn 'tcp port 443' перехватывает ровно 4 пакета (-c 4) на всех интерфейсах (-i any), жестко фильтруя трафик по правилу 'tcp port 443' и сохраняя числовые значения адресов и портов (-nn).
В выводе консоли четко видны этапы взаимодействия локального узла (172.18.0.2) с удаленным веб-сервером (172.66.147.243.443), включая TCP-флаги, sequence-номера и подтверждения приема данных (ACK).

Теперь инициируем внешний сетевой опрос публичного DNS-узла командой ping -c 2 8.8.8.8 > /dev/null 2>&1 &.

Инструкция tcpdump -i any -c 2 -n 'icmp' слушает все сетевые интерфейсы (-i any) без обратного DNS-поиска (-n), изолируя исключительно служебный протокол 'icmp' в объеме двух пакетов (-c 2).
В консоль попадает обмен сообщениями между хостом (172.18.0.2) и DNS-сервером (8.8.8.8) с фиксацией идентификаторов запросов (id), счетчиков пакетов (seq) и их байтовой длины.

Экспорт дампа в файл PCAP и исследование полезной нагрузки
Создадим последовательность из трех служебных пакетов командой ping -c 3 127.0.0.1 > /dev/null 2>&1 &.

Команда tcpdump -i lo -c 3 -w /tmp/traffic_sample.pcap считывает с интерфейса loopback (lo) 3 пакета (-c 3) и записывает сырой поток данных напрямую в файл /tmp/traffic_sample.pcap.
Вывод на экран в данном случае подавляется: данные сохраняются в бинарном стандарте pcap, что позволяет архивировать инциденты и детально исследовать их в графических анализаторах вроде Wireshark.

Команда tcpdump -r /tmp/traffic_sample.pcap -n -X парсит сохраненный файл (-r), отключает преобразование имен (-n) и выполняет синхронную печать шестнадцатеричных дампов и символов ASCII (-X).
Такой формат представления раскрывает не только структуру сетевых заголовков, но и байтовое наполнение payload, позволяя выявлять ошибки прикладного уровня и утечки открытых данных.

По завершении анализа очистим диск от созданного временного файла с помощью команды rm -f /tmp/traffic_sample.pcap.

Мы рассмотрели практические приемы работы с утилитой tcpdump в дистрибутиве Ubuntu: от перехвата трафика на интерфейсах до тонкой фильтрации и глубокого разбора содержимого пакетов.
Комбинируйте разобранные ключи и BPF-фильтры в повседневной практике, чтобы оперативно локализовать сетевые неполадки и контролировать информационные потоки в вашей инфраструктуре.