tcpdump - это утилита командной строки, которая позволяет захватывать и анализировать трафик, проходящий через используемую систему. Данную программу часто используют для поиска и устранения неполадок в сети. Это очень мощный инструмент, который имеет большой набор опций и фильтров. Данная утилита идеально подходит для удаленных серверов на которых не установлена GUI и нет возможности использовать wireshark.

Установка

Утилита tcpdump включена во множество Linux дистрибутивов по умолчанию. Проверить установлен ли tcpdump можно следующей командой

which tcpdump

Если tcpdump не установлен, то это можно сделать следующей командой для Ubuntu / Debian

sudo apt install tcpdump

для CentOS / RedHat / Fedora

sudo yum install tcpdump

для MacOS

brew install tcpdump

Команды

Для захвата пакетов, траблшутинга или анализа tcpdump требуются повышенные разрешения, поэтому все команды выполняются с повышением привилегий.

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

tcpdump -D

Указать как интерфейс слушать:

tcpdump -i ens160

Пакеты от указанного хоста:

tcpdump src 192.168.10.20

Пакеты до указанного хоста

tcpdump dst 192.168.10.40

Пакеты по указанным портам

# все пакеты использующие 80 порт
tcpdump port 80
# порт источника
tcpdump src port 80
# порт назначения
tcpdump dst port 80
# диапазон портов
tcpdump portrange 80-123

Комбинации правил

tcpdump src 192.168.10.10 and port 22

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

tcpdump dst 192.168.10.20 -w /tmp/tcpdump.cap

Режим Verbose

tcpdump -i ens160  -v