Системный Администратор | Sysadmin Windows & Linux Server. Настройка Сети, ПК и Железа. IT Уроки для Сисадмина: Безопасность, Софт и Техподдержка (Helpdesk). Компьютерная помощь.
🦈 Шпаргалка: tcpdump - Сниффим трафик как боженька
Wireshark это прекрасно, но на удаленном сервере без графической оболочки царь один - tcpdump. Он перехватывает сетевые пакеты, чтобы вы могли понять, почему не проходит пинг, не работает API или кто дудосит сервер.
Синтаксис у него зубодробительный, поэтому вот самое важное для выживания.
🏁 Базовый запуск (чтобы не сойти с ума)
Если запустить tcpdump без флагов, консоль улетит в космос от потока текста.
🔹 tcpdump -i eth0 - Слушать конкретный интерфейс (узнать имя: ip a).
🔹 tcpdump -nn - Мастхэв! Не преобразовывать IP в домены и порты в имена сервисов. Работает быстрее и понятнее.
🔹 tcpdump -v (или -vv) - Показать больше деталей о пакете (TTL, ID и т.д.).
🎯 Фильтры (Самое важное)
Мы ищем иголку в стоге сена, поэтому фильтруем лишнее.
По хостам:
🔹 tcpdump host 1.2.3.4 - Трафик туда и обратно для конкретного IP.
🔹 tcpdump src 1.2.3.4 - Только входящие ОТ этого IP.
🔹 tcpdump dst 1.2.3.4 - Только исходящие НА этот IP.
По портам и протоколам:
🔹 tcpdump port 80 - Весь трафик на 80 порту.
🔹 tcpdump tcp port 22 - Только TCP и только SSH.
🔹 tcpdump portrange 8000-9000 - Диапазон портов.
🔹 tcpdump icmp - Ловим только пинги.
🧠 Комбинирование (Логика)
Используйте and, or, not.
🔹 Исключить свой SSH (чтобы не замусорить лог своим же трафиком):
tcpdump -i eth0 port not 22
🔹 Найти HTTP запросы от конкретного IP:
tcpdump src 10.0.0.5 and port 80
📦 Заглянуть внутрь пакета
Заголовки - это круто, но иногда нужно видеть «мясо» (payload).
🔹 tcpdump -A - Вывод содержимого пакета в ASCII. Идеально, чтобы увидеть HTTP-заголовки, SQL-запросы в открытом виде или JSON.
🔹 tcpdump -X - Вывод в HEX + ASCII.
💾 Запись для Wireshark
Читать дампы в консоли - боль. Лучше записать их в файл и открыть потом в красивом Wireshark.
1. Записать:
tcpdump -i eth0 -w capture_file.pcap port 80
(Флаг -w пишет сырые данные, в консоли будет тишина)
2. Прочитать (если нет Wireshark под рукой):
tcpdump -r capture_file.pcap
🔥 Pro-пример: "Почему сайт не грузится?"
Ловим HTTP GET/POST запросы и ответы в реальном времени, исключая SSH:
tcpdump -i eth0 -A -nn -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
(Ладно, это шутка, для начала хватит: tcpdump -i eth0 -A -nn port 80)
⚠️ Важно: Для работы требуются права sudo.
💾 Сохраняй, чтобы не вспоминать флаги в 3 ночи!
#linux #tcpdump #network #sysadmin #security #devops
👉 @i_odmin