我正在尝试在我的主机(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)上:
- adb kill-server
- cd /tmp
- mkfifo 后管
- nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipe
此命令将把 5555 上收到的任何 tcp 数据包转发到本地 5555 端口,并从本地 5555 转发回外部 5555。保持此终端窗口打开。
在客户机(Linux)上:
- adb connect mac-ip 地址:5555
- adb devices 应该显示该设备处于在线状态。
如果设备未获得授权,请确保像往常一样在模拟器中接受密钥请求。
我现在可以从我的客户机上调试这个模拟器。