0x00 背景
电脑是Mac的,但是安卓模拟器基本都只运行在Windows上,所以我在Mac上安装了Windows虚拟机。但是在虚拟机里使用adb连接模拟器很麻烦,我需要从宿主机Mac上通过adb连接模拟器。
0x01 虚拟机设置
想要在虚拟机里启动模拟器,需要打开硬件虚拟化。我用的是VMWare Fusion,需要在设置里把Intel VT-x/EPT打开。
0x02 端口转发
- 在windows中打开"服务",找到"IP Helper"服务,关闭这个服务。
- 启动安卓模拟器。
- 模拟器完全启动后重新开启"IP Helper"服务。
- 以管理员权限启动powershell,断开adb连接:
adb disconnect
。 - 转发端口:以管理员权限启动powershell,运行:
netsh interface portproxy add v4tov4 listenport=5555 listenaddress=0.0.0.0 connectport=21503 connectaddress=127.0.0.1
- 在宿主机(Mac)上连接转发的端口:
adb connect VM_IP:5555
为何要关闭重启IP Helper,是因为这个服务经常占用一些端口,所以先关闭它,等模拟器启动后确保了端口再打开它就不会被占用端口了。
0x03 各种模拟器的端口
- NOX (default): 62001
- NOX (Android 5): 62025,最近的Nox6.2.7.1仍然用62001端口。
- BlueStacks: 5555 (5555被占用时自动使用5556)。
- Memu: 21503
- Ledian: 5555