/etc/hosts
ファイルを使用して、一部のWebサイトをlocalhostにリダイレクトしようとしました。そのために、Sudo nano /etc/hosts
を使用してターミナルでファイルを開き、ファイルを変更して保存しました。最後のステップとして、Sudo killall -HUP mDNSResponder
を使用してDNSキャッシュをフラッシュしました。
私の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
これは単に機能しません。運が悪いのに再起動してみた。また、多くの調査を行いましたが、インターネット上で有効な答えは見つかりませんでした。 OSはまだこのファイルを使用していますか、それとも実際には機能しませんか?
MacOS 10.13を使用しています。
ホストで区切られたホストとIPアドレスをタブで区切って、それらの間のスペースを1つだけに切り替えるとうまくいきました。
127.0.0.1 www3.mytestsite.com
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
に対して)に対して独自のクエリを実行する場合があります。また、アプリケーションがDNS要求のみを行い、システムリゾルバーを通過しない場合、アプリケーションは/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
OSXDaily はHigh Sierra用に異なるコマンドセットを持っています-試してみる価値はあります...
Sudo killall -HUP mDNSResponder; sleep 2; echo macOS DNS Cache Reset | say
それがねばねばしているなら...
Sudo killall -HUP mDNSResponder && echo macOS DNS Cache Reset