Как я могу прослушать / сбросить HTTP-протокол как ASCII для порта с tcpdump или альтернативным?
Мне нужно посмотреть, как приложение отправляет и получает трафик по протоколу http, который оно связывает с localhost (у него есть встроенный порт с кодировкой.gz). Я уверен, что это какой-то XML, который он отправляет и получает, но я хочу прослушать это, а затем проанализировать его
Возможно ли это как-то с Tcpdump? там я вижу только то, что он подключается, но не фактическое получение
3 ответа
ngrep очень полезен для этого. Что-то простое, как
ngrep -W byline port 80
будет работать, но вы также можете фильтровать содержимое запросов (отсюда и часть имени grep), и он распечатывает полезную нагрузку пакета:
ngrep -W byline some_string port 80
Если вы хотите использовать tcpdump такую команду tcpdump -s 0 -A -qn filters
должен дать вам то, что вы хотите. -s 0
устанавливает размер пакета и -A
свалки аськи. Вместо -A
вам также может понравиться -X
который предоставит вам вывод в формате hexdump.
Вы также можете использовать wireshark, и как только вы закончите захват, просто щелкните правой кнопкой мыши по одному из пакетов и выберите "Follow TCP Stream".
Я сделал довольно много этого с wireshark. Наблюдайте за нужным трафиком с помощью tcpdump, отправляйте его куда-нибудь, где я могу запустить Wireshark, а затем просмотрите трассировку с помощью Wireshark. Отслеживание сеанса TCP дает мне запрос и ответ в хорошей форме ASCII. Работает отлично.