Введение
Инструмент анализа сокращения пакетов сетевых данных. Поддерживает фильтрацию сетевых уровней, протоколов, хостов, сетей или портов. И предоставьте логические утверждения, такие как и, ИЛИ, НЕ помогите удалить бесполезную информацию.
tcpdump - dump traffic on a network
пример
не указывать никаких параметров
Слушайте пакеты, проходящие через первую сетевую карту. На хосте может быть более одной сетевой карты, поэтому часто необходимо указать сетевую карту.
tcpdump
Мониторить конкретную сетевую карту
tcpdump -i en0
Прослушивание определенного хоста
Пример: Мониторинг этой машины и хоста182.254.38.55
коммуникационные пакеты между ними.
Примечание. Исходящие и входящие пакеты будут контролироваться.
tcpdump host 182.254.38.55
Сообщения из определенного источника, адрес назначения
конкретный источник
tcpdump src host hostname
конкретный адрес назначения
tcpdump dst host hostname
Если не указаноsrc
иdst
, Затем будет прослушиваться источник или цель связи имени хоста.
tcpdump host hostname
конкретный порт
tcpdump port 3000
Прослушивание TCP/UDP
Различные службы на сервере используют TCP и UDP в качестве транспортного уровня.Если вы хотите отслеживать только TCP-пакеты
tcpdump tcp
Исходный хост + порт + TCP
слушать с хоста123.207.116.169
в порту22
TCP-пакет
tcpdump tcp port 22 and src host 123.207.116.169
Прослушивание связи между конкретными хостами
tcpdump ip host 210.27.48.1 and 210.27.48.2
210.27.48.1
кроме и210.27.48.2
связь между хостами снаружи
tcpdump ip host 210.27.48.1 and ! 210.27.48.2
Чуть более подробный пример
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1) tcp: ip icmp arp rarp и такие параметры, как tcp, udp, icmp и т. д., должны быть размещены в позиции первого параметра для фильтрации типа дейтаграммы. (2)-i eth1 : захватывать только пакеты, проходящие через интерфейс eth1 (3)-t : не отображать метки времени (4)-s 0 : Длина захвата по умолчанию составляет 68 байт при захвате пакетов. Добавьте -S 0, чтобы захватить весь пакет (5)-c 100 : взять только 100 пакетов (6)dst port !22: Не перехватывать пакеты, порт назначения которых равен 22. (7) src net 192.168.1.0/24 : исходный сетевой адрес пакета — 192.168.1.0/24. (8)-w ./target.cap : сохраните его как файл шапки для удобного анализа с помощью ethereal (т.е. wireshark)
Получить HTTP-пакет
TODO
Ограничить количество захвата пакетов
Таким образом, после перехвата 1000 пакетов он автоматически завершится.
tcpdump -c 1000
сохранить в локальном
Примечание: по умолчанию tcpdump записывает вывод в буфер. Только когда содержимое буфера достигает определенного размера или когда tcpdump завершает работу, вывод будет записываться на локальный диск.
tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap
также можно добавить-U
Принудительная немедленная запись на локальный диск (обычно не рекомендуется, производительность относительно низкая)
Практический пример
Давайте сначала рассмотрим следующий относительно распространенный метод развертывания: сервер Nodejs развертывается на сервере, который прослушивает порт 3000. Обратный прокси-сервер nginx прослушивает порт 80 и перенаправляет запрос на сервер nodejs (127.0.0.1:3000
).
Браузер -> обратный прокси nginx -> сервер nodejs
Вопрос: Допустим, пользователь (183.14.132.117) заходит в браузер и обнаруживает, что запрос не возвращается, как его устранить?
Шаг 1: Проверьте, доходит ли запрос до сервера nodejs -> Вы можете проверить это через журнал.
Шаг 2: Проверьте, пересылает ли nginx запрос на сервер nodejs.
tcpdump port 8383
На этом этапе вы обнаружите, что вывода нет, хотя сервер nodejs получил запрос. Поскольку адрес, пересылаемый nginx, равен 127.0.0.1, интерфейс по умолчанию не используется, и указанный интерфейс должен отображаться в это время.
tcpdump port 8383 -i lo
Примечание. Настройте nginx и позвольте nginx передать хост на стороне запроса, иначе сервер nodejs не сможет получить хост src, то есть следующий мониторинг недействителен, потому что в это время для сервера nodejs хост src 127.0.0.1
tcpdump port 8383 -i lo and src host 183.14.132.117
Шаг 3. Проверьте, доходит ли запрос до сервера.
tcpdump -n tcp port 8383 -i lo and src host 183.14.132.117
Ссылки по теме
tcpdump очень подробный http://blog.chinaunix.net/uid-11242066-id-4084382.html
http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html Подробное объяснение команды Linux tcpdump
Примеры использования Tcpdump (рекомендуется) http://www.rationallyparanoid.com/articles/tcpdump.html
Используйте TCPDUMP для сбора информации о заголовке состояния HTTP. http://blog.sina.com.cn/s/blog_7475811f0101f6j5.html