我需要查看应用程序如何通过它在本地主机上通信的 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 格式提供请求和答案。效果很好。