如何使用WireShark捕获Genymotion仿真器的流量?

时间:2015-04-16 11:33:46

标签: android emulation wireshark genymotion

我想用wireshark捕获一个Android应用程序的http消息。

我试图过滤到android的ip地址,然后mac地址没有成功。 我确定解决方案很简单,但我还无法弄明白。

2 个答案:

答案 0 :(得分:10)

Genymotion VM在底层VirtualBox配置中有两个网络适配器。你应该捕捉哪一个取决于你正在寻找什么。此外,一些细节(适配器名称等)取决于您正在使用的操作系统。但是,概念是相同的。

适配器1 ,如果您使用的是Ubuntu,通常为vboxnet0,是一个仅限主机的适配器,用于支持主机与VM之间的本地交互。在默认的Ubuntu设置中,这是192.168.56.0网络。主机为192.168.56.1,VM通常最终从VirtualBox的内置DHCP服务器获得192.168.56.101。 Android调试桥(ADB)使用此连接将开发工具与VM连接。例如,这就是Eclipse ADT和Android Studio能够与VM通信以安装APK等的方式。当您执行adb shell时,您也通过此网络进行连接。 如果您想检查开发工具与VM通信的方式,请在vboxnet0(或同等版本)上进行捕获。

适配器2 通常是NAT到主机的网络连接,通常是Ubuntu上的eth0wlan0。这样可以为VM启用Internet访问。 如果您想了解您的VM如何与本地网络或Internet进行交互,请捕获主机的主网络适配器。不幸的是,当虚拟机处于NAT状态时,您的VM流量将具有与您的相同的IP主机,难以过滤。如果这会导致问题,请关闭VM,直接打开VirtualBox(即没有Genymotion启动程序),将Adapter 2更改为“Bridged Adapter”,然后在VM的网络配置中选择当前活动的主机适配器。如果您的本地LAN使用DHCP(可能),这将允许VM获取它自己的IP,然后您可以在Wireshark中过滤。重新启动VM后(来自Genymotion Launcher),您可以从主机中找出已使用adb shell ifconfig分配的地址。查找对应于VIrtualBox适配器2的eth1eth0用于通过VirtualBox适配器1进行adb连接。

答案 1 :(得分:-1)

如果使用Genymotion,捕获Host(即您的机器)和Guest(即Genymotion Emulator)之间的流量非常简单。

  1. 由于Gennymotion使用Virtualbox创建虚拟环境,您可以在wireshark中找到 vboxnet0 界面,选择它并记录在Guest(Genymotion)和主机(您的系统)之间流动的所有流量。
  2. WireShark Interface List

    1. 如果你不想使用WireShark来监控流量,你也可以使用Fiddler并在Genymotion中配置代理设置(在Genymotion docs中记录添加代理步骤)到{{ 1}}。

    2. 在Fiddler中捕获流量进行此设置: Fiddler-running machine IP address and port并勾选Tools menu > Fiddler Options > Connections,然后重新启动Fiddler。