ホスト ファイルのリダイレクトが失敗するのはなぜですか?

ホスト ファイルのリダイレクトが失敗するのはなぜですか?

私は楽しみと学習のために、Mac 上のこの /etc/hosts ファイルを使用して google.com をローカル マシンにリダイレクトしようとしています。

127.0.0.1 www.google.com

しかし、Mac の Chrome で www.google.com にアクセスすると、依然として Google ホームページにマッピングされます。なぜでしょうか?

基本的に、私がやったことはこれだけです:

  1. sudo vim /etc/hostsターミナルに入力します。
  2. 127.0.0.1 www.google.comホストファイルに入力されます。
  3. 保存してvimを終了します。

答え1

このhostsファイルはこのようには機能しません。ホスト名を IP アドレスにマッピングするためにのみ使用できますlocalhost

あなたの場合は127.0.0.1 www.google.com、 を使用します。つまり、www.google.com を 127.0.0.1 にマップします。

複数のホスト名を単一の IP にマップする場合は、それらのホスト名を同じ行に追加するだけです (例: ) 127.0.0.1 www.a.com www.b.com

答え2

ウェブブラウザは構文が正しいかどうかを確認するのに最適な方法ではありませんhosts。実行してみてください。

ping www.google.com

ping が実行されることを確認します127.0.0.1

Chrome がファイルを無視するように見える理由はhosts、キャッシュです。

Chromeが最近IPを照会している場合(最近かどうかは、存続時間 (TTL)DNSサーバーによって返される)ファイルはhosts既に知っている正しい IP を入力します。これは、Web ブラウジングの速度を上げるために行われます。

Chrome が新しいエントリを尊重するようにするには、次の手順を実行します。

  1. @Renan の説明に従って編集します/etc/hosts

  2. に移動しますchrome://chrome/settings/clearBrowserData

  3. 選ぶsince the beginning of time

  4. をチェックしEmpty the cache、その他はすべてチェックを外します。

  5. クリックしてClear browsing data完了するまで待ちます。

  6. Chromeを再起動します。

Chrome はhostsファイルを尊重するようになりました。

答え3

私の答えは上記の組み合わせです。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 が新しいエントリを尊重するようにするには、次の手順を実行します。

@Renan の説明に従って編集します/etc/hosts

  1. に移動しますchrome://chrome/settings/clearBrowserData
  2. 時間の始まりから選択してください。
  3. キャッシュを空にするにチェックを入れ、その他はすべてチェックを外します。
  4. 「閲覧履歴データを消去」をクリックし、完了するまで待ちます。
  5. Chromeを再起動します。

Chrome はホスト ファイルを尊重するようになりました。

関連情報