Warm tip: This article is reproduced from serverfault.com, please click

macos-Android模拟器浏览器无法访问在主机文件上设置的localhost子域

(macos - Android emulator browser can't access to localhost subdomains set on hosts file)

发布于 2019-03-18 18:04:19

在我当前使用API​​ 26的Android模拟器中,我尝试使用其浏览器访问android模拟器主机文件中设置的localhost子域,但没有成功。

我成功地将仿真器植根并修改了它的/etc/hosts文件(推送本地文件并使用busybox mini vi实现)。我在浏览器中使用ping命令fromadb shell进行的一些成功测试如下(其中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

但是使用localhosts子域映射,我只能从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中重现该问题。

Questioner
Rodrirokr
Viewed
11
Rodrirokr 2020-11-28 18:06:13

问题是使用顶级域时macOS多播DNS(mDNS)实现.local

Bonjour ...“如果将.local附加到主机名后,将自动解析运行MacOS的链接本地Macintosh计算机和运行i​​OS的移动设备的私有IP地址。”

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

  • .intranet。
  • 。内部的。
  • 。私有的。
  • .corp。
  • 。家。
  • .lan。