Dns /mac El Capitan中忽略的etc/主机(10.11.5)

Dns /mac El Capitan中忽略的etc/主机(10.11.5),dns,osx-elcapitan,hosts,hosts-file,Dns,Osx Elcapitan,Hosts,Hosts File,我正在尝试将现有网址重定向到我子网上的远程计算机。为此,我将以下内容放入/etc/hosts 192.168.1.249 holub.com 并使用刷新DNS缓存 sudodscacheutil-flushcache;sudo killall-HUP MDnsrresponder 但是,当我ping holub.com(我所知道的查看地址实际解析方式的最可靠方式)时,我看到的是真实的web地址(204.13.10.74),而不是/etc/hosts(192.168.1.249)中指定的地址。有趣

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

192.168.1.249 holub.com

并使用刷新DNS缓存

sudodscacheutil-flushcache;sudo killall-HUP MDnsrresponder

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

一般来说,/etc/hosts似乎是在实际的DNS查找之后使用的,而不是应该在之前,因此外部地址是不可重写的

我已经尝试对我的本地地址使用不同的IPv6等价物(0:0:0:0:ffff:c0a8:01f9::ffff:192.168.1.249::192.168.1.249),但这没有帮助。重新启动(而不是刷新缓存)也没有帮助

我发现了一个不令人满意的解决办法。如果我使用禁用DNS响应程序

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

然后使用/etc/hosts,但是我无法访问internet


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

我是在寻找类似问题的答案时遇到这个问题的,我想为同一职位的其他人发布我的发现

作为一个三人小组,我们发现对我的/etc/hosts文件的编辑似乎有效,而对另外两个的主机文件的编辑似乎无效。进一步挖掘后,我们发现我使用的是OSX10.10,而他们使用的是更新版本

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

不起作用:

1.2.3.4     some.site.com
工作:

1.2.3.4 some.site.com
在进行此更改之后,我们立即开始看到预期的结果,而没有任何缓存清除、重新启动或其他操作


我知道在您的示例中,您只显示了一个空格,但很可能现在它在您的实际文件中是这样显示的,我还是希望与您共享此内容。

确保您添加的条目格式正确:IP地址后跟空格或制表符,后跟名称,然后是行尾的换行符。尝试使用
cat-vet/etc/hosts
打印主机文件,以使正常情况下不可见的字符可见。该行应类似于“192.168.1.249^Iholub.com$”(“^I”是一个选项卡,“$”是换行符)或“192.168.1.249 holub.com$”。如果您在“$”前面看到“^M”(回车符),则您有DOS/Windows格式的文本,需要删除回车符。Gordon,谢谢,但这一切都是正确的。在mac上使用vim创建的直接ascii文件(本质上是BSD unix),因此没有奇怪的windows内容:-)。问题更深。添加
是否会将主机绑定为
/etc/resolv.conf
帮助中的第一行?否/etc/resolve.conf不存在,添加它没有任何效果。El Capitan似乎已经抛弃了过去一切有用的东西。标准的Liunx程序都不起作用,在约塞米蒂工作的东西也不再起作用了。我只是打算放弃使用dnsmasq,手动插入DNS解析程序列表(使用networksetup)。苹果可能会在下一个MacOS版本中打破这一局面(他们已经放弃了“OSX”的名称),但至少我可以回去工作了。@GordonDavisson cat-vet/etc/hosts帮助我解决了这个问题。我用了一些随机字符来代替tab。在我的例子中,它实际上是主机名之后的一个额外的空格。