/etc/hosts が macOS 10.13 で動作しない

/etc/hosts が macOS 10.13 で動作しない

ファイルを使用して、いくつかの Web サイトを localhost にリダイレクトしようとしました/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

これは単純に機能しません。再起動を試みましたが、うまくいきませんでした。また、多くの調査も行いました。しかし、インターネット上で有効な回答は見つかりませんでした。OS はまだこのファイルを使用しているのでしょうか、それとも、実際には機能しないのでしょうか?

macOS 10.13を使用しています。

答え1

ホストと IP アドレスはタブで区切っていましたが、その間にスペースを 1 つ入れるとうまくいきました。

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) に独自のクエリを実行する場合があります。また、アプリケーションが 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

関連情報