我嘗試使用/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