/etc/hosts 在 macOS 10.13 上不起作用

/etc/hosts 在 macOS 10.13 上不起作用

我尝试使用/etc/hosts文件将某些网站重定向到本地主机。为此,我在终端中使用打开它,sudo nano /etc/hosts然后修改文件并保存。最后一步,我使用刷新了 DNS 缓存sudo killall -HUP mDNSResponder

我的主机文件如下所示:

$ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1 somethig.com
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost

这根本不起作用。我尝试过重启,但没有成功。我也做了很多研究,但没有在互联网上找到任何可行的答案。操作系统是否仍使用此文件,或者这永远不会真正起作用?

我正在使用 macOS 10.13。

答案1

我将主机和 IP 地址用制表符分隔,切换到它们之间只有一个空格对我来说是可行的:

127.0.0.1 www3.mytestsite.com

答案2

OSX日报针对 High Sierra 有不同的命令集 - 也许值得一试...

sudo killall -HUP mDNSResponder; sleep 2; echo macOS DNS Cache Reset | say

或者它是否很粘……

sudo killall -HUP mDNSResponder && echo macOS DNS Cache Reset

答案3

在我使用的 10.13.3 系统上适用。

% grep example /etc/hosts
127.0.0.1 example.com
% perl -MSocket -e 'printf "%vx\n", inet_aton "example.com"'
7f.0.0.1
% dns-sd -G v4 example.com
DATE: ---Tue 06 Mar 2018---
10:49:47.455  ...STARTING...
Timestamp     A/R Flags if Hostname                               Address
                               TTL
10:49:47.457  Add     2 -1 example.com.                           127.0.0.1
                               1

但是!某些应用程序(例如 Google Chrome)可能会向自己的 DNS 服务器(例如 )发出查询,或者如果应用程序仅发出 DNS 请求而不通过系统解析器,则8.8.8.8它们可能很容易忽略该文件。/etc/hosts

% host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946

相关内容