从 Vmware fusion 12.2.1(Linux)访问在主机(mac)上运行的 Android 模拟器

从 Vmware fusion 12.2.1(Linux)访问在主机(mac)上运行的 Android 模拟器

我正在尝试在我的主机(Mac OS)上运行 Android 模拟器,并从我的 Vmware fusion 客户机(Linux)连接到它。

我尝试了所有网络配置,还尝试从本地主机本身将端口转发到 5555 端口,以为我将能够使用 ip 地址和转发到 Android 模拟器端口的端口连接到主机,但我没有使用正确的命令,或者这不是实际的方法。我阅读了很多关于通过 tcp 进行远程 adb 调试的文章,但这些都没有帮助……它通常显示连接被拒绝或根本不显示任何内容并且超时。

我遗漏了什么?有人能帮忙吗?

谢谢

编辑 1-添加我尝试过的步骤:

我所说的所有网络配置是指我已经尝试了 Vmware 网络选项卡中所有可能的网络配置选项:

在此处输入图片描述

我不断地在配置之间切换,在配置更新并传播到 Linux 客户机后,我尝试连接(并 ping)模拟器的 IP。模拟器确实显示了内部 IP 10.0.2.16,我猜这是一个“模拟 IP”?我真的无法访问。虽然图片显示我目前正在使用 WI-FI 配置,但大多数时候我都在使用 MyNAT,这是一种自定义 NAT 配置。

在此处输入图片描述

然后我尝试将 mac 主机的端口转发到模拟器的 ip 和 5555 端口。但仍然无法访问。

我要补充一点,目前我从我的 Mac 主机 (wifi - tcp) 获取的 IP 是这样的:

在此处输入图片描述

我确信这是可行的,但我遗漏了一些东西。

编辑 2-SSH 隧道

我也尝试了这个命令的变体:

ssh -L 192.168.5.15:10000:localhost:5555 -N 127.0.0.1

添加

ssh -L 192.168.5.15:10000:10.0.2.16:5555 -N 127.0.0.1

试过这个答案以及...但我一直收到密码请求,直到它因访问被拒绝而退出

答案1

好的,我终于让它工作了。对于任何感兴趣的人:

在主机(Macos)上:

  1. adb kill-server
  2. cd /tmp
  3. mkfifo 后管
  4. nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipe

此命令将把 5555 上收到的任何 tcp 数据包转发到本地 5555 端口,并从本地 5555 转发回外部 5555。保持此终端窗口打开。

在客户机(Linux)上:

  1. adb connect mac-ip 地址:5555
  2. adb devices 应该显示该设备处于在线状态。

如果设备未获得授权,请确保像往常一样在模拟器中接受密钥请求。

我现在可以从我的客户机上调试这个模拟器。

相关内容