如何使用 tcpdump 或其他方式嗅探/转储端口的 HTTP 协议作为 ASCII?

如何使用 tcpdump 或其他方式嗅探/转储端口的 HTTP 协议作为 ASCII?

我需要查看应用程序如何通过它在本地主机上通信的 http 协议发送和接收流量(它有一个用 .gz 编码的嵌入式端口)我确信它发送和接收的是一些 XML,但我想嗅探它,然后对其进行分析

用 Tcpdump 能实现这个功能吗?我只能看到它连接了,但没有看到实际的发送和接收

答案1

ngrep 在这方面非常有用。

ngrep -W byline port 80

可以工作,但是您也可以过滤请求的内容(因此名称中有 grep 部分),它会打印出数据包有效负载:

ngrep -W byline some_string port 80

答案2

如果您想使用 tcpdump,像这样的命令tcpdump -s 0 -A -qn filters应该可以满足您的要求。-s 0设置数据包大小并-A转储 ascii。-A您可能还喜欢-X它将以十六进制转储样式的格式为您提供输出。

您也可以使用 wireshark,捕获完成后,只需右键单击其中一个数据包并选择“跟踪 TCP 流”即可。

答案3

我用 wireshark 做了很多这样的事。用 tcpdump 嗅探我想要的流量,将其发送到我可以启动 Wireshark 的地方,然后使用 Wireshark 查看跟踪。跟踪 TCP 会话会以漂亮的 ASCII 格式提供请求和答案。效果很好。

相关内容