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

aho*_*lub 9 dns hosts hosts-file osx-elcapitan

我正在尝试将现有的Web地址重定向到我子网上的远程计算机.为此,我将以下内容放入/ 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有某种内部解决方法.

通常,看起来/ etc/hosts 在实际的DNS查找之后使用,而不是在应该之前使用,因此外部地址不可覆盖.

我尝试使用各种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,但后来我无法访问互联网.

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

Jos*_*osh 10

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

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

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

不工作:

1.2.3.4     some.site.com
Run Code Online (Sandbox Code Playgroud)

工作:

1.2.3.4 some.site.com
Run Code Online (Sandbox Code Playgroud)

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

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