如何用WireShark抓取Genymotion模拟器的流量?
How to capture the traffic of Genymotion Emulator with WireShark?
我想用 wireshark 捕获 Android 应用程序的 http 消息之一。
我试图过滤到 android 的 IP 地址,然后是 mac 地址但没有成功。
我确定解决方案很简单,但我还想不出来。
如果您使用 Genymotion,捕获主机(即您的机器)和访客(即 Genymotion 模拟器)之间的流量非常简单。
- 由于 Gennymotion 使用 Virtualbox 创建虚拟环境,您可以在 wireshark 中找到 vboxnet0 接口,select 它并记录来宾(Genymotion)和之间的所有流量主机(您的系统)。
如果你不想使用 WireShark 来监控流量,你也可以使用 Fiddler and configure proxy settings in Genymotion (Adding Proxy steps documented in Genymotion docs) towards Fiddler-running machine IP address and port
.
并在 Fiddler 中捕获流量进行此设置:
Tools menu > Fiddler Options > Connections
并勾选 Allow Remote Computers to connect box
,然后重新启动 Fiddler。
Genymotion 虚拟机在底层 VirtualBox 配置中有两个网络适配器。您应该捕捉哪一个取决于您要寻找什么。此外,一些细节(适配器名称等)取决于您使用的 OS。但是,概念是相同的。
适配器 1,如果您使用 Ubuntu,通常 vboxnet0
,是用于支持 local 的仅主机适配器 主机和虚拟机之间的交互。在默认 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 上的 eth0
或 wlan0
。这将为 VM 启用 Internet 访问。 如果您想查看您的 VM 如何与本地网络或 Internet 交互,请针对您主机的主网络适配器进行捕获。不幸的是,当 VM 被 NAT 时,您的 VM 流量将具有相同的流量IP作为您的主机,使其难以过滤。如果这导致问题,请关闭您的 VM,直接打开 VirtualBox(即,没有 Genymotion 启动器),将 Adapter 2 更改为 "Bridged Adapter",并将 select VM 网络配置中的当前活动主机适配器。如果您的本地 LAN(可能)使用 DHCP,这将允许 VM 获得它自己的 IP,然后您可以在 Wireshark 中对其进行过滤。重新启动 VM 后(从 Genymotion 启动器),您可以从主机中找到用 adb shell ifconfig
分配给它的地址。寻找对应于 VIrtualBox 适配器 2 的 eth1
(eth0
用于通过 VirtualBox 适配器 1 的 adb
连接)。
我想用 wireshark 捕获 Android 应用程序的 http 消息之一。
我试图过滤到 android 的 IP 地址,然后是 mac 地址但没有成功。 我确定解决方案很简单,但我还想不出来。
如果您使用 Genymotion,捕获主机(即您的机器)和访客(即 Genymotion 模拟器)之间的流量非常简单。
- 由于 Gennymotion 使用 Virtualbox 创建虚拟环境,您可以在 wireshark 中找到 vboxnet0 接口,select 它并记录来宾(Genymotion)和之间的所有流量主机(您的系统)。
如果你不想使用 WireShark 来监控流量,你也可以使用 Fiddler and configure proxy settings in Genymotion (Adding Proxy steps documented in Genymotion docs) towards
Fiddler-running machine IP address and port
.并在 Fiddler 中捕获流量进行此设置:
Tools menu > Fiddler Options > Connections
并勾选Allow Remote Computers to connect box
,然后重新启动 Fiddler。
Genymotion 虚拟机在底层 VirtualBox 配置中有两个网络适配器。您应该捕捉哪一个取决于您要寻找什么。此外,一些细节(适配器名称等)取决于您使用的 OS。但是,概念是相同的。
适配器 1,如果您使用 Ubuntu,通常 vboxnet0
,是用于支持 local 的仅主机适配器 主机和虚拟机之间的交互。在默认 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 上的 eth0
或 wlan0
。这将为 VM 启用 Internet 访问。 如果您想查看您的 VM 如何与本地网络或 Internet 交互,请针对您主机的主网络适配器进行捕获。不幸的是,当 VM 被 NAT 时,您的 VM 流量将具有相同的流量IP作为您的主机,使其难以过滤。如果这导致问题,请关闭您的 VM,直接打开 VirtualBox(即,没有 Genymotion 启动器),将 Adapter 2 更改为 "Bridged Adapter",并将 select VM 网络配置中的当前活动主机适配器。如果您的本地 LAN(可能)使用 DHCP,这将允许 VM 获得它自己的 IP,然后您可以在 Wireshark 中对其进行过滤。重新启动 VM 后(从 Genymotion 启动器),您可以从主机中找到用 adb shell ifconfig
分配给它的地址。寻找对应于 VIrtualBox 适配器 2 的 eth1
(eth0
用于通过 VirtualBox 适配器 1 的 adb
连接)。