安卓模拟器浏览器无法访问主机文件上设置的本地主机子域



在我当前使用API 26的Android模拟器中,我试图使用其浏览器访问Android Emulator Hosts File中的Localhost子域,但没有成功。

我成功地设法扎根了我的模拟器并修改其/etc/hosts文件(按本地文件,使用Busybox mini vi 实现)。我在浏览器中进行的一些成功测试以及adb shellping命令如下(其中192.168.0.10是我当前分配的主机IP):

192.168.0.10   source
192.168.0.10   source.api
192.168.0.10   source.api.local
10.0.2.2       source
10.0.2.2       source.api
10.0.2.2       source.api.local

但是,使用Local -Hosts子域映射,我只能成功地从adb shell ping域。浏览器在下一个主机映射中显示ERR_CONNECTION_REFUSED错误:

10.0.2.2       something.localhost
10.0.2.2       something.something.localhost

关于为什么会发生这种情况的任何想法?

编辑:

当前的问题仅发生在我的MacOS 10.14中,我无法在Ubuntu 18.04中重现该问题。

当使用顶级域.local

时,问题是MacOS的多播DNS(MDNS)实现。

bonjour ..."将自动解决运行MACOS和运行iOS的移动设备的链接链接Macintosh计算机的私有IP地址,如果将.Local插入其主机名中。

rfc 6762附录G推荐以下私人名称空间,而不是.local | .localhost避免冲突。

  • .intranet。
  • 内部。
  • .private。
  • .corp。
  • .home。
  • .lan。

最新更新