私は楽しみと学習のために、Mac 上のこの /etc/hosts ファイルを使用して google.com をローカル マシンにリダイレクトしようとしています。
127.0.0.1 www.google.com
しかし、Mac の Chrome で www.google.com にアクセスすると、依然として Google ホームページにマッピングされます。なぜでしょうか?
基本的に、私がやったことはこれだけです:
sudo vim /etc/hosts
ターミナルに入力します。127.0.0.1 www.google.com
ホストファイルに入力されます。- 保存して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 が新しいエントリを尊重するようにするには、次の手順を実行します。
@Renan の説明に従って編集します
/etc/hosts
。に移動します
chrome://chrome/settings/clearBrowserData
。選ぶ
since the beginning of time
。をチェックし
Empty the cache
、その他はすべてチェックを外します。クリックして
Clear browsing data
完了するまで待ちます。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
。
- に移動します
chrome://chrome/settings/clearBrowserData
。 - 時間の始まりから選択してください。
- キャッシュを空にするにチェックを入れ、その他はすべてチェックを外します。
- 「閲覧履歴データを消去」をクリックし、完了するまで待ちます。
- Chromeを再起動します。
Chrome はホスト ファイルを尊重するようになりました。