ホスト ファイルに IP/Web アドレスを追加すると、トラフィックがどのようにブロックされるのでしょうか?

ホスト ファイルに IP/Web アドレスを追加すると、トラフィックがどのようにブロックされるのでしょうか?

ホスト ファイルを使用して Web サイトへのアクセスをブロックする方法については説明されています (Windows と Linux の両方のマシンで何度か試しましたが、うまくいきませんでした)。ただし、私が理解している限りでは、このファイルの目的はホスト名をアドレスにマッピングすることです。IP と Web アドレスを追加すると、サイトへのアクセスがブロックされるのはなぜですか?

答え1

IP アドレスをブロックするために hosts ファイルを使用するのではなく、ドメイン名をブロックするために使用します。つまり、ブロックするのではなく、リダイレクトするのです。これは、電話の連絡先リストを変更するようなものです。母親の電話番号に 000000 と入力すると、連絡先リストから母親に電話をかけるときに、存在しない番号であるという警告が表示されます。

彼女の電話番号 (IP アドレス) がわかっている場合は、それを直接入力しても機能します。これは Web サイトには機能するかもしれませんが、多くの場合は機能しません。IP アドレスは、同じマシンでホストされているさまざまな Web サイトにリンクされていることがあります。その場合、どの Web サイトを表示するかが不明になり、おそらく必要な Web サイトではなく、デフォルトの Web サイトが表示されます。また、Web サイトが機能するにはドメイン名が必要な場合もありますが、IP アドレスだけではエラーになります。


ホスト ファイルを使用して、ドメイン名を IP アドレスにマッピングできます。これを使用して、次の操作を実行できます。

  • nytimes.com (または他のサイト) を、コンピュータのローカル アドレスである 127.0.0.1 にマップします。これで、nytimes.com は動作しなくなるか、ローカル Web サーバーが表示しているものが表示されます。
  • yournewwebsite.net を 12.34.56.78 (または任意の名前) にマップします。まだ公開されていない新しい Web サイトがあり、新しいドメイン名で動作するかどうかを確認したいとします。ドメイン名の DNS を設定していないか、古いサイトにマップされたままです。この方法でドメインをテストし、ラップトップでのみ新しいサイトを表示できます。Web サイトが動作するために実際のドメイン名が必要な場合があり、開発およびテスト中に、実稼働 Web サイトを妨げずにこれを試すには、この方法が最適です。
  • test.local などの存在しないドメインを使用し、それをローカル Web サーバーまたは他の IP にマップします。

したがって、hosts ファイルにエントリを追加しても何もブロックされず、単に空白ページなど、別の場所にリダイレクトされるだけです。これがブロックする方法です。ルーターでも同様に実行できます。

注意: コンピュータには 2 つの IP アドレスがあります。1 つはローカル IP アドレス (127.0.0.1)、もう 1 つはパブリック IP アドレス (ルーターの背後にある場合は通常 192.168.1.10 など) です。パブリックとは、接続先のネットワークに関連するアドレスです。ルーターには実際のパブリック アドレスがあります。

答え2

オペレーティング システムは、他の場所で名前解決を探す前に、まず hosts ファイルを参照します。hosts ファイルはネットワークを照会するよりもはるかに高速なので、OS がそこで答えを見つけることができれば、他の場所で実行する照会が 1 つ減ります。

ホスト ファイルはトラフィックを「ブロック」するのではなく、検索に対する回答を提供して、必要な回答を得るまでにかなり長い時間がかかる可能性のある他の場所に要求を送信するよりも、より迅速な回答を提供します。

同様に、SSHD は、最も頻繁にアクセスされるデータを、SSD に保存します (SSD の方がアクセスがはるかに速いため)。SSHD の機械部分に保存するよりも、SSD の方がアクセスがはるかに遅いためです。

関連情報