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