【问题标题】:Android emulator browser can't access to localhost subdomains set on hosts fileAndroid 模拟器浏览器无法访问主机文件上设置的 localhost 子域
【发布时间】:2019-08-09 04:25:34
【问题描述】:

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

我成功地启动了我的模拟器并修改了它的 /etc/hosts 文件(推送本地文件并使用 busybox 迷你 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

但是使用 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 中重现该问题。

【问题讨论】:

    标签: android macos android-emulator hosts


    【解决方案1】:

    问题在于 macOS 的 Multicast DNS (mDNS) 实现,当使用顶级域 .local

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

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

    • .内联网。
    • .internal.
    • .private.
    • .corp.
    • .home.
    • .lan.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 2012-08-22
      • 2012-12-14
      • 1970-01-01
      相关资源
      最近更新 更多