Я не уверен в точном синтаксисе для tcpdump... на самом деле, я отметил этот вопрос как любимый, потому что я хотел бы знать! Но в качестве альтернативного решения вы можете попробовать использовать tcpflowвместо этого. Он работает по сути так же, но гораздо лучше печатает вывод ASCII; он исключил заголовки и печатал пакеты последовательно как поток, поэтому иногда легче читать и отслеживать, чем tcpdump.
Иногда у вас нет других инструментов, и для быстрого просмотра полезной нагрузки этого достаточно. Конечно, бесполезно, если вам нужна точная полезная нагрузка для инъекций или точного анализа.
Если вам нужна только часть ASCII, вы можете использовать: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'или с ngrep:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'
У меня была та же проблема на прошлой неделе - вместо этого я использовал графический интерфейс wireshark и сделал «копируемую ascii» для интересных пакетов.
Я (успешно) пытался определить проблему с http-запросом к веб-сервису и его XML-ответом.
Ответы:
Как предлагает Джош, tcpflow может печатать только данные пакета TCP в файл или STDOUT. Вы можете передать tcpdump в tcpflow следующим образом:
Чтобы просмотреть только одну сторону разговора, вы можете использовать фильтры для tcpdump, например
dst port 23
.источник
tcpflow
с правами root?Я не уверен в точном синтаксисе для
tcpdump
... на самом деле, я отметил этот вопрос как любимый, потому что я хотел бы знать! Но в качестве альтернативного решения вы можете попробовать использоватьtcpflow
вместо этого. Он работает по сути так же, но гораздо лучше печатает вывод ASCII; он исключил заголовки и печатал пакеты последовательно как поток, поэтому иногда легче читать и отслеживать, чемtcpdump
.источник
Я считаю, что самое элегантное решение - просто отказаться от tcpdump. Нет труб любого вида:
Вот и все.
источник
Быстрый и грязный способ сделать это - отфильтровать вывод через строки:
Иногда у вас нет других инструментов, и для быстрого просмотра полезной нагрузки этого достаточно. Конечно, бесполезно, если вам нужна точная полезная нагрузка для инъекций или точного анализа.
источник
Если вам нужна только часть ASCII, вы можете использовать:
tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'
или с ngrep:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'
источник
У меня была та же проблема на прошлой неделе - вместо этого я использовал графический интерфейс wireshark и сделал «копируемую ascii» для интересных пакетов.
Я (успешно) пытался определить проблему с http-запросом к веб-сервису и его XML-ответом.
источник