Я попытался использовать /etc/hosts
файл для перенаправления некоторых веб-сайтов на localhost. Для этого я открыл его в терминале с помощью , sudo nano /etc/hosts
затем изменил файл и сохранил его. В качестве последнего шага я очистил кэш DNS с помощью sudo killall -HUP mDNSResponder
.
Вот как выглядит мой файл hosts:
$ 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-серверам (например, 8.8.8.8
), или приложения могут легко игнорировать /etc/hosts
файл, если они делают только DNS-запросы и не проходят через системный резолвер.
% host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946