如何在OSX上的Wireshark中从Android模拟器获取tcpdump的实时视图?

Eri*_*ine 5 macos android packet-capture wireshark android-emulator

我目前需要调试我的应用程序和服务器之间的通信.我已经能够通过使用tcpdump开关启动模拟器来捕获数据包:

%emulator -tcpdump emulator.cap @MyDroid
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在打开Wireshark中的emulator.cap文件之前,我需要关闭模拟器.否则,Wireshark会抱怨捕获不完整.这个过程非常缓慢.我希望能够在Wireshark中获得emulator.cap文件的实时视图.

看来应该可以使用管道.我正在OS X上进行开发,并尝试了本指南中的Way 1和Way 2:http://wiki.wireshark.org/CaptureSetup/Pipes.

它至少允许我查看捕获的快照,但我没有得到实时更新的视图.单击Wireshark中的刷新按钮不会更新捕获的数据包.我必须关闭并重新打开Wireshark以获得更新(这比重新启动模拟器更快).

在OS X上的Wireshark中从Android模拟器查看实时捕获的步骤是什么?

Eri*_*ine 2

首先创建一个命名管道并打开 Wireshark 从中读取。然后,指示模拟器的 tcpdump 写入同一命名管道。Wireshark 似乎对按此顺序完成操作很敏感,否则它会抱怨 libcap 格式。

以下是命令:

%mkfifo /tmp/emulator
%wireshark -k -i /tmp/emulator &
%emulator -tcpdump /tmp/emulator @MyDroid
Run Code Online (Sandbox Code Playgroud)

更新:

使用一段时间后,它似乎变脆了。我曾让 Wireshark 抱怨数据包,唯一的恢复方法是再次执行所有这些步骤。有更好/更强大的解决方案吗?