忽略主机文件 Mac 10.11.4 El Capitan

Hosts file ignored Mac 10.11.4 El Capitan

我是 运行 我本地的 RoR 应用程序。我的主机文件中有一些翻译。

127.0.0.1   localhost
127.0.0.1   example.dev
127.0.0.1   www.example.dev
127.0.0.1   api.example.dev

它们工作正常,直到我将 OS 更新到 10.11.4。如果我向 www.example.dev 发送 ping 请求,它似乎工作正常。它转换的IP是127.0.0.1.

但是当我在网络浏览器中访问 www.example.dev 时,它似乎忽略了主机文件并 ping DNS 服务器获取 IP。

我不确定如何,但在浏览器中转到 localhost 确实会转换为 127.0.0.1

不知道为什么,但我禁用了我的回溯适配器和 ipv6,现在它可以工作了。

因此在您的主机文件中禁用这两项

# ::1               localhost  
# fe80::1%lo0       localhost

一些fubar osx 错误...我想念史蒂夫....

我在寻找类似问题的答案时遇到了这个问题,并想 post 将我的发现提供给处于相同位置的其他人。

作为一个三人小组,我们发现编辑我的 /etc/hosts 文件似乎有效,而编辑其他两个的主机文件似乎无效。进一步挖掘后,我们意识到我使用的是 OS X 10.10,而他们使用的是较新的版本。

我们发现,在尝试了大约一百万件事之后,在 10.11 及更高版本中添加到主机文件的 IP 和域之间显然不能超过一个 space,例如:

没用:

1.2.3.4     some.site.com

完成工作:

1.2.3.4 some.site.com

进行此更改后,我们立即开始看到预期结果,无需任何缓存清除、重新启动或其他操作。

您覆盖的主机正在通过 IPV6 解析。
::1 是 IPV6 的环回地址,类似于 IPV4 中的 127.0.0.1。在您的 /etc/hosts 文件中添加以下条目作为最后一行。

::1 本地主机
::1 www.example.dev