/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

作業系統日報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

相關內容