有没有一种简单的方法来设置Android模拟器来访问主机的局域网?

时间:2010-06-09 21:35:21

标签: android android-emulator

我想从Android模拟器访问局域网上其中一台机器提供的Web服务。

如果服务在运行模拟器的同一台机器上运行(称为主机),我可以添加网络重定向并使用正确的端口访问10.0.2.2(模拟器中的主机环回接口)。

然而,它正在LAN上的另一台机器上运行。我想我可以在主机上添加另一个重定向,除了上面的那个(虽然......必须与iptables对抗),但是存在一个更简单的解决方案吗?

4 个答案:

答案 0 :(得分:5)

嗯,它只是有效(TM)。

在我测试之前阅读过的android模拟器手册中(我在做之前尝试使用RTFM),这说明了:

  

模拟器的每个实例都在虚拟路由器/防火墙服务后面运行,该服务将其与开发机器的网络接口和设置以及互联网隔离开来。仿真设备无法在网络上看到您的开发计算机或其他仿真器实例。相反,它只看到它通过以太网连接到路由器/防火墙。

这让我觉得它无法访问我的局域网。我错了,只需在我的局域网上添加服务器的IP,我就可以从模拟器中访问它了。

答案 1 :(得分:4)

我们知道,仿真器可以通过IP 10.0.2.2访问主机,所以我尝试了IP转发,但我无法使其工作..:|

我按照以下链接将localhost(模拟器情况下为10.0.2.2)的转发请求发送到局域网中的其他计算机。

http://www.debuntu.org/how-to-redirecting-network-traffic-a-new-ip-using-iptables

答案 2 :(得分:1)

2018-08 起,似乎已经撤消了“ It just works(TM)”证书

这是我访问本地网络中服务器所需要的:

host ip (my pc): 192.168.15.102/24 
      server ip: 192.168.200.33/24

使用netsh

主机上提升权限的命令提示符中创建端口转发规则
netsh interface portproxy add v4tov4 listenport=80 connectport=80 connectaddress=192.168.200.33

启动移动设备模拟器并浏览到 10.0.2.2 (如documentation中所述):

  

10.0.2.2   主机回送接口的特殊别名(即开发计算机上的127.0.0.1)

答案 3 :(得分:0)

你可以得到一个真正的Android设备并将其连接到局域网(我已经这样做了)。

您是如何连接主机的?通过HTML?因为如果您的应用需要与机器进行硬线连接,那么对于移动设备来说,这不是一个非常好的解决方案。