我在 Windows (10) 中没有遇到过类似的问题,而且我在文档中搜索的任何内容似乎都没有说明为什么,如果这不起作用,情况就是这样
sudo killall -HUP mDNSResponder
这完全没有影响。谁能指出我为什么?谢谢。
更新 : 尴尬的事实是我在
/etc/hosts
中输入的那几行是相反的,即域优先,如:mydomain.com 192.168.33.10 #wrong
192.168.33.10 mydomain.com #what it should have been
然而,接受的答案写得很好,值得赞赏。
最佳答案
我发现在 macOS (/OS X) 上使用/etc/hosts 有两个常见问题:
127.0.0.1^Iwww.example.com$
127.0.0.1 www.example.com$
(“^I”是制表符,“$”是行尾的换行符。)如果条目列出了多个名称(也用空格或制表符分隔),也可以。
如果您在“$”之前看到“^M”(回车),则您有 DOS/Windows 格式的文本,您需要删除回车。
dig
, host
, 和 nslookup
,因为它们都直接测试 DNS,因此绕过/etc/hosts 文件。浏览器有时会缓存内容,这可能会产生误导性的结果。测试系统名称解析系统的“正确”方法是使用 dscacheutil
命令:dscacheutil -q host -a name www.example.com
...但由于这很烦人,我倾向于只使用
ping
,看看它说要测试的地址。 关于macos - 即使在杀死 mDNSResolver 后,Mac OSX 更改/etc/hosts 也没有任何影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42257228/