/ etc / hosts在mac El Capitan中被忽略(10.11.5)

时间:2016-06-21 17:56:37

标签: dns osx-elcapitan hosts hosts-file

我正在尝试将现有网址重定向到我子网上的远程计算机。为此,我将以下内容放入/ etc / hosts

  

192.168.1.249 holub.com

并使用

刷新DNS缓存
  

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

然而,当我ping holub.com(我知道最可靠的方式,看看地址是如何实际解决的)时,我看到真实的网址(204.13.10.74),而不是/ etc / hosts中指定的地址(192.168.1.249)。有趣的是,mysqladmin实用程序无法正确解析地址,但Chrome浏览器确实正确解析了地址。我猜测Chrome有某种内部解决方法。

通常,在实际的DNS查找之后,/ etc / hosts似乎正在使用,而不是之前,因此外部地址不可覆盖。

我尝试过使用各种IPv6等价物到我的本地地址(0:0:0:0:0:ffff:c0a8:01f9 :: ffff:192.168.1.249 :: 192.168.1.249),但那不是救命。重新启动(而不是刷新缓存)也无济于事。

我找到了一个令人不满意的解决方法。如果我使用

禁用DNS应答器
  

sudo launchctl unload -w   /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

然后使用/ etc / hosts,但后来我无法访问互联网。

如果有人遇到这个问题,我很想知道是否有解决方法。

1 个答案:

答案 0 :(得分:9)

我在寻找类似问题的答案时遇到了这个问题,并希望将我的发现发布给同一位置的其他人。

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

我们发现,在尝试了大约一百万件事之后,10.11及更高版本中对hosts文件的添加显然在IP和域之间不能有多个空格,例如:

无法工作:

1.2.3.4     some.site.com

DID WORK:

1.2.3.4 some.site.com

进行此更改后,我们立即开始查看预期结果,而不会清除任何缓存,重新启动或以其他方式。

我知道在你的例子中你只展示了一个空格,但是现在它在实际文件中出现的概率我想要分享它。