【问题标题】:How to capture the traffic of Genymotion Emulator with WireShark?如何使用 WireShark 捕获 Genymotion Emulator 的流量?
【发布时间】:2015-06-22 18:49:58
【问题描述】:

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

我试图过滤到 android 的 ip 地址,然后是 mac 地址,但没有成功。 我确信解决方案很简单,但我还想不通。

【问题讨论】:

    标签: android emulation wireshark genymotion


    【解决方案1】:

    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(或等效项)上捕获。

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

    【讨论】:

    • 感谢关于适配器的描述。我想捕获 Andorid VM 的网络消息,因此根据您的评论,我将适配器 2 更改为 VirtualBox 中的桥接。使用桥接适配器后,Android 无法连接到 WiredSSID(没有适配器名称)。
    • 您的主机连接的网络是否使用 DHCP?
    • 是的,路由器上启用了 DHCP。
    • 确保您桥接到正确的主机适配器。这是通过 Adapter 2 选项卡上的 Name: 下拉菜单选择的。在我的 Ubuntu 系统上,有三个选择:eth0(硬线以太网适配器)、eth1(用于我的连接热点的 USB 以太网)和wlan0(WiFi)。为了让 VM 能够访问 Internet,我必须在从 Genymotion 启动 VM 之前将其更改为我正在使用的任何连接。另外,FWIW,我为 Adapter Type:(在 Advanced 下)选择了 virtio-net
    • 由于某种原因,我也无法在 VM 上获得分配的 IP 地址。我无权访问路由器,所以也许有一个 mac 过滤器,但我对此一无所知。我也试过这个无济于事:scrumsofanarchy.com/…
    【解决方案2】:

    如果您使用 Genymotion,捕获主机(即您的机器)和访客(即 Genymotion 模拟器)之间的流量非常简单。

    1. 由于Gennymotion使用Virtualbox创建虚拟环境,你可以在wireshark中找到vboxnet0接口,选择它并记录Guest (Genymotion)和Host (Your System)之间的所有流量。

    1. 如果您不想使用 WireShark 监控流量,您也可以使用 Fiddler 并在 Genymotion 中配置代理设置(添加代理步骤记录在 Genymotion docs)到 Fiddler-running machine IP address and port

    2. 并在 Fiddler 中捕获流量进行此设置: Tools menu > Fiddler Options > Connections 并勾选 Allow Remote Computers to connect box,然后重新启动 Fiddler。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 2011-08-16
      • 2018-07-06
      • 2020-06-24
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多