
何らかの理由で、2日前からhostsファイルが無視されるようになりました。
私はMacのSierra OSxを使用しています。これが/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 localhostage
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 localkur.com
localkur.comにpingすると、
ping: cannot resolve localkur.com: Unknown host
システムを再起動し、これらのコマンドを使用してキャッシュを消去しました
sudo killall -HUP mDNSResponder;
sudo discoveryutil mdnsflushcache;
sudo discoveryutil udnsflushcaches;
ファイルを別のテキスト編集プログラム、vm、sublime などで再度開きます。
スペースまたはタブ (またはダブルスペースまたはダブルタブ) が使用されているかどうかを再確認し、すべての可能性をテストします。
また、このコマンドでファイルを監視します 。
sudo fs_usage | grep "/etc/hosts"
そしてブラウザを更新したり、Sublimeで保存したりすると、この結果が得られました
12:23:35 open private/etc/hosts 0.000019 Google Chrom
12:23:36 open private/etc/hosts 0.000019 Google Chrom
12:23:41 stat64 /private/etc/hosts 0.000022 Sublime Text
12:23:43 stat64 /private/etc/hosts 0.000019 Sublime Text
12:23:45 stat64 /private/etc/hosts 0.000019 Sublime Text
12:23:45 open /private/etc/hosts 0.000019 Sublime Text
何が足りないのでしょうか?
このファイルはなぜ無視されるのでしょうか?
どうすれば再び有効にできるのでしょうか?
答え1
ファイルが破損している可能性があります。ASCII ファイルである必要があります。再作成する必要があります。
- 古いファイルを移動する
mv -f /etc/hosts /etc/oldhosts
- 新しいファイルを作成する
nano
- 古いファイルの値を入力する
- 保存する
/etc/hosts
それで大丈夫でしょう。
答え2
システム環境設定 -> ネットワークを確認します
現在アクティブな「場所」に 1 つ以上の DNS サーバーがリストされている場合、システムは「/etc/resolv.conf」ファイルを作成し、それらのネームサーバーを解決先としてリストし、/etc/hosts を完全にバイパスします。
resolv.conf は「ネットワーク」設定によって動的に作成され、現在アクティブな「場所」の「DNS サーバー」フィールドに基づいて上書きされるか、そのフィールドが空白の場合は削除されます。
答え3
これは確かに古いスレッドですが、今日同じ問題に直面し、解決策を見つけました。他の誰かが必要とする場合に備えて、ここに残しておきます。
sudo dscacheutil -flushcache
私の場合は、DNS キャッシュをフラッシュするとうまくいきました。
答え4
スペースの代わりにタブを使用している可能性があります。私の場合もそうでした。うまく修正されました!