web-dev-qa-db-ja.com

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

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をhostsファイルに挿入します。
  3. 保存してvimを終了します。
12
David Faux

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

9
Renan

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

ping www.google.com

そして、それが127.0.0.1にpingすることを確認します。

Chromeがhostsファイルをキャッシュしているように見えるように見える理由:

ChromeがすでにIPをすでに照会している場合(最近の定義は、おそらくDNSサーバーから返される 存続時間(TTL) に依存します)、バイパスされます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ファイルを尊重するはずです。

8
Dennis

私は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を押してファイルを保存し、CTRL-Xを押してnanoを閉じました。

それから私は次のことをしました、そしてそれは完全に働きました:

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

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

  1. chrome://chrome/settings/clearBrowserDataにアクセスします。
  2. 初めから選択してください。
  3. [キャッシュを空にする]をオンにしますが、その他はすべてオフにします。
  4. [閲覧データの消去]をクリックして、完了するまで待ちます。
  5. Chromeを再起動します。

これでChromeはホストファイルを尊重するはずです。

1
user712460