我正在尝试将现有网址重定向到我子网上的远程计算机。为此,我将以下内容放入/ 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,但后来我无法访问互联网。
如果有人遇到这个问题,我很想知道是否有解决方法。
答案 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
进行此更改后,我们立即开始查看预期结果,而不会清除任何缓存,重新启动或以其他方式。
我知道在你的例子中你只展示了一个空格,但是现在它在实际文件中出现的概率我想要分享它。