我知道,以前也问过很多这样的问题。
由于以下原因,我在使用 Wireshark 时遇到了很大的问题:
- 无法追踪哪个进程发送/接收了数据包
- 它不仅显示 HTTP 流量
- 对于 HTTP 流量,它会给我烦人的树状视图
- 我无法对所有数据包的内容进行全局搜索
(最后一点并不那么重要)
我正在寻找一个简单的 HTTP 流量监视器,它允许我捕获单个进程的 HTTP 流量,并显示如下原始请求:
POST /index.html HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
param1=testabc&qwe=123
时间戳和 IP 也很好。
我希望你能帮助我。顺便说一下:我花了很多时间在 Google 上寻找这样的显示器,但找不到合适的。
我在 Windows 上。
答案1
您可以使用Fiddler;它捕获 HTTP 流量并按进程进行过滤。
它还具有漂亮的显示效果并且适用于 Windows。
答案2
在 Windows 上,你应该能够使用Microsoft 网络监视器跟踪单个进程。您需要使用ProcessName
或ProcessID
过滤器来选择您感兴趣的进程。
如果 NetMon 没有以您可用的格式返回结果,那么您也可以尝试 WireShark 的实验版本,该版本增加了对 Windows 上的 pid 过滤的支持。
下载:[Wireshark-dev] [PATCH] 按本地进程名称过滤
在 Linux 上,您应该能够使用 strace 来监视单个进程,但它可能不会按照您想要的方式格式化。要跟踪现有进程:
strace -p $PID -f -e trace=network -s $MAXLEN
要启动一个带有跟踪的进程:
strace -f -e trace=network -s $MAXLEN PATH/TO/PROCESS ARGUMENTS
更多信息请参阅:人斯特拉斯