tcpdump – классика сетевой диагностики: перехват и разбор пакетов на интерфейсе без тяжёлой GUI. Полезен, когда нужно быстро понять, ходит ли трафик, на каком порту, с какими флагами TCP и не «теряется» ли он по пути.
Установка
На большинстве UNIX-систем пакет уже есть. Если нет – через менеджер пакетов:
- Debian/Ubuntu:
sudo apt install tcpdump - CentOS/RHEL:
sudo yum install tcpdump(илиdnfна новых релизах) - Fedora:
sudo dnf install tcpdump
Для захвата нужен root или capability CAP_NET_RAW. Имя интерфейса смотрите через ip link / ip a: вместо устаревшего eth0 часто бывают ens3, enp0s3, wlan0.
Базовые фильтры
Протокол ICMP (ping)
sudo tcpdump -i eth0 icmp
Хост и порт
Трафик к/от конкретного адреса на порту 22 (SSH):
sudo tcpdump -i eth0 'host 192.168.1.1 and port 22'
Логика OR / AND / NOT
HTTP и HTTPS в одном фильтре:
sudo tcpdump -i eth0 'port 80 or port 443'
ARP
sudo tcpdump -i eth0 arp
TCP-флаги и «сырой» BPF
Только SYN (старт TCP-сессии) – удобно ловить сканы и обрывы handshake:
sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0'
Без broadcast и multicast, если мешает «шум» L2:
sudo tcpdump -i eth0 'not broadcast and not multicast'
Удобные ключи вывода
Временные метки
sudo tcpdump -tttt -i eth0
Обрезать пакет (snaplen)
Первые 64 байта обычно хватают для заголовков и экономят диск/CPU:
sudo tcpdump -s 64 -i eth0
ASCII payload
Текст пакета в stdout (осторожно с паролями в открытом HTTP/SMTP):
sudo tcpdump -A -i eth0
Для hex + ASCII чаще берут -X / -XX.
Запись в pcap и разбор позже
Пишем в файл, смотрим offline в tcpdump или Wireshark:
sudo tcpdump -w traffic.pcap -i eth0 sudo tcpdump -r traffic.pcap
На нагруженном интерфейсе добавьте фильтр сразу при записи – меньше объём и меньше дропов буфера. Счётчик «dropped by kernel» в конце вывода стоит смотреть: если растёт, поднимите буфер (-B) или сузьте фильтр.
Когда tcpdump реально помогает
- Нет ответа на порт: SYN уходит, SYN-ACK нет – проблема дальше по сети или на firewall.
- Неожиданный трафик: лишние подключения, сканы, «чужие» DNS-запросы.
- Проверка, что сервис вообще слушает и принимает пакеты на ожидаемом интерфейсе.
- Сверка с логами приложения: «запрос дошёл до сервера или отвалился раньше».
Практика и ограничения
- Фильтры BPF – основной навык: чем точнее выражение, тем чище картина.
- На production не оставляйте долгий
-wбез ротации: pcap быстро раздувает диск. - Юридически: захват чужого трафика без полномочий – зона риска. Работайте в рамках своих систем и политики компании.
tcpdump не заменяет полноценный NMS, но для точечной диагностики на Linux/BSD это первый инструмент, который стоит держать в голове рядом с ss, curl -v и логами firewall.
