我在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
然而,接受的答案是写得很好并且受到赞赏。
答案 0 :(得分:3)
我在macOS(/ OS X)上使用/ etc / hosts时遇到了两个常见问题:
格式不正确:/ etc / hosts文件中的每个条目必须是IP地址,后跟空格或制表符,后跟名称,然后是行末尾的换行符。尝试使用cat -vet / etc / hosts打印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
,并查看它所说的要测试的地址。
答案 1 :(得分:0)
我遇到了这个线程,试图在macOS Catalina上解决相同的问题,但没有成功。这是因为macOS Catalina还有另外一件事。仅当您以root用户身份更改主机文件时,该更改才会生效(不使用sudo命令完成)!
默认情况下,您的系统上没有root用户,因此下面是一个包含逐步指南的链接: https://support.apple.com/en-us/HT204012
那我能够:
su
nano /etc/hosts