在Android模拟器中访问内网

6
我正在尝试在Android模拟器中测试一个内部网站,但似乎无法让模拟器访问我们的内部网。例如,我要访问的网站是http://compass/messages,但在浏览器中尝试打开该页面时,会显示谷歌搜索结果页面,而不是内部网站。
我可以通过模拟器访问INTERNET,但无法访问INTRANET。我可以从主机机器和同一台机器上的iPhone模拟器访问内部网。
我猜想需要执行某种奇怪的命令行操作,但我对此一无所知...有什么想法吗?

本地机器如何设置才能访问内部网络?您是使用hosts.txt还是本地网络中有名称服务器? - Lie Ryan
4个回答

5

在经过大量的搜索仍没有找到答案后,我通过用IP地址替换域名的方式成功访问了本地开发服务器。例如,不再使用:

http://compass/messages

请使用以下内容(替换为您的服务器IP地址):
http://172.33.22.1/messages

它可以在Android模拟器浏览器中运作,在模拟器中的应用程序中的WebView中也可以运行。我不知道为什么这样能够工作,但对我来说确实如此。希望能帮助其他人。


1
仿真器可能使用 Google DNS(8.8.8.8)而不是您本地网络的DNS,因此无法解析本地名称。 - Marc Plano-Lesay

3
我遇到了同样的问题,但是我无法在任何地方找到解决方案。最终我做的(在尝试端口转发后)是使用ssh创建到远程机器的隧道:
ssh -L 5555:localhost:5555 10.0.1.14
这应该允许您连接到模拟器中本地机器的IP地址(10.0.2.2),并在您的网络中访问其他机器(在指定的端口上)。
如果有人有更好的解决方案来访问Android模拟器中的本地网络,请告诉我。

0

内部网站可能需要代理。

您可以在设置中设置代理。


0
我通过以下步骤解决了这个问题:

adb shell

set setprop net.dns 10.10.20.19(你的电脑IP地址)

重新启动模拟器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接