Все уровни проверены, логи изучены, но проблема остаётся неуловимой. Время смотреть на реальные пакеты. Утилита
tcpdump — инструмент для захвата и анализа сетевого трафика.➡️ Предыдущий пост
Базовое использование tcpdump
tcpdump -i eth0
Начинает захват всех пакетов на интерфейсе eth0 и выводит на экран. Внимание: генерирует огромное количество данных. Используйте фильтры.
Фильтр по хосту:
tcpdump -i eth0 host 192.168.1.10
Только пакеты от/к этому IP.
Фильтр по порту:
tcpdump -i eth0 port 80
Только HTTP трафик.
Комбинация фильтров:
tcpdump -i eth0 host 192.168.1.10 and port 443
HTTPS трафик к конкретному хосту.
Направление:
tcpdump -i eth0 dst 192.168.1.10 # Только к этому IP
tcpdump -i eth0 src 192.168.1.10 # Только от этого IP
Полезные флаги
•
-n — не резолвить IP в имена (быстрее)•
-v — verbose (больше деталей)•
-vv — очень verbose•
-X — показать содержимое пакетов в hex и ASCII•
-A — показать содержимое в ASCII (для HTTP/текста)Сохранение в файл для анализа
tcpdump -i eth0 -w capture.pcap
Сохраняет пакеты в файл capture.pcap. Можно открыть в Wireshark для детального анализа.
Чтение из файла:
tcpdump -r capture.pcap
Ограничение размера захвата
tcpdump -i eth0 -w capture.pcap -C 100 -W 5
•
-C 100 — создавать новый файл каждые 100 МБ•
-W 5 — хранить максимум 5 файлов (ротация)➡️ Типичные паттерны в дампах
— TCP SYN без SYN-ACK
14:32:15.123456 IP client > server: Flags [S], seq 123456
14:32:16.123456 IP client > server: Flags [S], seq 123456 # Ретрансмит
Клиент отправляет SYN (запрос на соединение), но сервер не отвечает SYN-ACK. Возможные причины:
• Сервис не слушает на порту
• Firewall блокирует на сервере
• Пакеты не доходят до сервера
— TCP RST пакеты
14:32:15.123456 IP client > server: Flags [S], seq 123456
14:32:15.123457 IP server > client: Flags [R.], seq 0
Сервер отвечает reset — порт закрыт, соединение отклонено. Сервис точно не слушает.
— Множественные ретрансмиты
14:32:15.123456 IP client > server: Flags [.], seq 1000:2000
14:32:15.623456 IP client > server: Flags [.], seq 1000:2000 # Ретрансмит
14:32:16.623456 IP client > server: Flags [.], seq 1000:2000 # Ещё ретрансмит
Пакет отправляется повторно, потому что ACK не приходит. Указывает на:
• Потери пакетов в сети
• Проблемы производительности на принимающей стороне
• Перегруженный канал
➡️ Wireshark — графический анализ
Сохраните дамп и откройте в Wireshark на вашей рабочей станции:
# На сервере
tcpdump -i eth0 -w /tmp/capture.pcap
# Скачайте файл
scp server:/tmp/capture.pcap .
# Откройте в Wireshark
Wireshark умеет:
• Разбирать сотни протоколов
• Показывать TCP stream (весь диалог)
• Находить ретрансмиты автоматически
• Строить графики I/O
• Экспортировать объекты (файлы из HTTP)
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера