回答:
hostsファイルには、このように動作しません。ホスト名をIPアドレスにマップするためにのみ使用できますlocalhost。
たとえば、127.0.0.1 www.google.comwww.google.comを127.0.0.1にマップします。
より多くのホスト名を単一のIPにマップする場合は、それらのホスト名を同じ行に追加するだけです(例:)127.0.0.1 www.a.com www.b.com。
127.0.0.1 google.comこの行の後に(wwwなしで)追加してみて、機能するかどうかを確認します。
127.0.0.1 google.comどちらも機能していません。何が起こっているのかわかりません...それ/etc/hostsは/private/etc/hostsMacでのソフトリンクですが、それがまったく役に立たないと思います。
hostsホスト名をIPアドレスにマップします(その逆ではありません)。
Webブラウザは、hosts構文が正しいかどうかを確認するための最良の方法ではありません。実行してみてください
ping www.google.com
そしてそれがpingすることを確認し127.0.0.1ます。
Chromeがhostsファイルを無視しているように見える理由はキャッシュです:
Chromeが最近IPをすでに照会している場合(最近の定義はDNSサーバーから返される存続時間(TTL)に依存している可能性が高い)、正しいIPをhostsすでに知っているため、ファイルをバイパスします。これは、Webブラウジングを高速化するために行われます。
Chromeに新しいエントリを尊重させるには、次のようにします。
/etc/hosts@Renanの説明に従って編集します。
に移動しchrome://chrome/settings/clearBrowserDataます。
を選択しsince the beginning of timeます。
をチェックしますがEmpty the cache、その他はすべてオフにします。
クリックClear browsing dataして終了するまで待ちます。
Chromeを再起動します。
これでChromeはhostsファイルを尊重するはずです。
hostsエントリがすでにキャッシュされているホスト名でない限り、Chromeは即座に変更を取得します。私は仮定し、それがチェックすることをhostsTTLが過去持っている場合のみ。大きなウェブサイト、それはしばらく時間がかかることができます。
chrome.exe時々ファイル全体を読み取ります。
net-internals/#dns、/etc/hostsが変更されると、ホストキャッシュが自動的にクリアされます。
私はUbuntu 16.04のFortinet SSL VPNを介してオフィスに接続しているので、上記の組み合わせです。
最初にやらなければならないことは、ターミナルコンソールを起動して次のコマンドを実行することです。
sudo nano /etc/resolvconf/resolv.conf.d/base
次の例を追加しました:
searchdomain domain.local
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
次に、を押してファイルを保存し、を押しCTRL-Oてnanoを閉じましたCTRL-X。
それから私は次のことをしました、そしてそれは完全に働きました:
Chromeに新しいエントリを尊重させるには、次のようにします。
/etc/hosts@Renanの説明に従って編集します。
chrome://chrome/settings/clearBrowserDataます。これでChromeはホストファイルを尊重するはずです。
127.0.0.1 www.google.com。ただし、google.comは引き続きGoogleホームページにアクセスします。何か更新する必要がありますか?コンピュータを再起動する必要がありますか?