使Genymotion获得与我的wifi网络相同的IP

时间:2015-07-20 12:51:00

标签: android virtualbox genymotion

我正在开发一个应用程序,需要直接与连接到我的wifi网络的计算机上运行的桌面应用程序进行通信。我正在使用一个设备进行开发(这很简单,因为计算机和我的手机连接到同一个网络),但我想使用Genymotion。但是,我无法让Genymotion成为我网络的另一个主机,因此它可以到达运行其他应用程序的计算机。我尝试更改VirtualBox设置以使用桥接适配器,但我没有运气。如果我可以为我的虚拟设备分配我正在运行Genymotion的笔记本电脑的IP,那将是很好的。这可能吗?

2 个答案:

答案 0 :(得分:0)

尝试使用端口转发

在Ubuntu(details here)中,执行以下3个命令:

sysctl net.ipv4.ip_forward=1
    iptables -t nat -A PREROUTING -p tcp -d yourIP --dport   
portNumberOfTheServerRunningONTheEmulator -j DNAT --to-destination yourEmulatorsIP
iptables -t nat -A POSTROUTING -j MASQUERADE

我在我的机器上尝试了这个,我的模拟器ip是192.168.56.101,而我的PC的IP地址是10.0.20.159。所以我运行这些命令:

 sudo isysctl net.ipv4.ip_forward=1  

假设服务器程序在端口5555上运行

sudo iptables -t nat -A PREROUTING -p tcp -d 10.0.20.159 --dport 5555 -j DNAT --to-destination 192.168.56.101
iptables -t nat -A POSTROUTING -j MASQUERADE

然后我尝试从网络上的另一台机器连接到模拟器,输入以下地址:10.0.20.159:5555(结果是连接已重置,因为我没有运行实际的服务器程序模拟器)但是当我尝试使用d / t端口说10.0.20.159:5595时结果是无法连接所以我的猜测是PC能够通过端口转发到达模拟器)< / p>

我希望它可以帮助您在运行实际的服务器程序时尝试它。 :)

答案 1 :(得分:0)

我刚刚在这里找到了解决方案:http://blog.cloud-mes.com/2014/01/22/enable-genymotion-android-emulator-network-in-enerprise-intranet/

我只需要将适配器设置为桥接模式。诀窍是设置第二个适配器,而不是我之前做的第一个(第一个是使用vboxnet0接口保持不变)。这简直太简单了。