これに関連する記事をいくつか見つけましたが、それらは私には十分ではありませんでした。私はどのようにlocalhost
動作し、なぜ多くの異なるマシンで同じであるのか知りたいですか?
ファイルlocalhost
でWebサイトを使用してWebサイトをブロックする場合、Webサイトへのアクセスをどのようhost
にブロックしますか?
これに関連する記事をいくつか見つけましたが、それらは私には十分ではありませんでした。私はどのようにlocalhost
動作し、なぜ多くの異なるマシンで同じであるのか知りたいですか?
ファイルlocalhost
でWebサイトを使用してWebサイトをブロックする場合、Webサイトへのアクセスをどのようhost
にブロックしますか?
回答:
ここではWindowsのケースについて少し説明しますが、少し違うので、これを言ってみましょう。すべてのUnixライクなオペレーティングシステムでは、2つのネットワークデバイスがあります。
最初のものは純粋に「仮想」です。それは見えないイーサネットプラグのようなものです。2つ目は、コンピューターのイーサネットプラグに関するものです。
ループバックインターフェイスは何をしますか?ループバックに送信するすべてのトラフィックが戻ってきます。
イーサネットデバイスがIPアドレス(たとえば、192.168.1.20)を取得するように、ループバックデバイスにもIPアドレス、つまり127.0.0.1があります。簡単にするために、あなたもそれにアクセスできますlocalhost
。
典型的なUnix /etc/hosts
ファイルを見ると、127.0.0.1が「localhost」にマッピングされていることがわかります。したがって、「localhost」と入力するたびに、コンピューターは127.0.0.1を呼び出すことを認識します。
そして、これがアプリケーションを「ブロック」できる理由です。コンピューターからマイクロソフトにデータを送信したくないとしましょう。次に、単にすべてのリクエストmicrosoft.com
を127.0.0.1にリダイレクトできます。連絡しようとするたびにmicrosoft.com
失敗します。
*実際にハードウェアイーサネットポートを持つすべてのシステム
インターネットプロトコル(IP)アドレスは、4つの基本的なカテゴリのいずれかに分類されます。
合意により、127.0.0.1はこれらのカテゴリの最後に該当するアドレスの1つです。
人間として、私たちはIP番号をあまり覚えていない傾向がありますが、superuser.com、www.google.com、およびその他の類似した名前のような名前を覚えても問題ありません。インターネットが小さい(非常に小さい)場合、人間はインターネット上の他の人と「ホスト」ファイルを共有したため、数字を覚える必要はありませんでした。そのホストファイルには、IPアドレスと1つ以上のホスト名のペアが含まれていました。誰かがその名前でホストにアクセスしようとしたとき、コンピューターソフトウェアはホストファイルでホストを検索するのに十分なことを知っていました。それ以来、インターネットは非常に成長しているため、古いスタイルのhostsファイルを使用することに加えて、名前をIP番号に解決するためにドメインネームシステム(DNS)を使用しています。ほとんどのコンピューターは、まずhostsファイルで名前を検索し、それが失敗した場合はDNSで検索するように設定されています。
これで背景がわかったので、次のように機能します(通常)。
ホストファイルにこのエントリを追加すると、コンピューターがwww.foo.comを検索しようとするたびに、IPアドレス127.0.0.1でそのサイトにアクセスしようとします。 foo.com。127.0.0.1を使用すると、コンピューターが自分自身と通信できるため、ブラウザーで127.0.0.1にアクセスしようとすると、コンピューター上のWebサーバーに接続しようとすることに注意してください。127.0.0.1ではなく2.3.4.5を入力した場合、www.foo.comを開くときにアドレス2.3.4.5のコンピューターに接続しようとしました。
127.0.0.1 localhost
127.0.0.1 www.foo.com
127.0.0.1 foo.com
このような目的でhostsファイルを使用することの悪い点は、hostsファイルにエントリを追加すると、その情報を最新の状態に保つ責任を負うことになります。ホストファイルにエントリを配置しない場合、コンピューターはDNSを使用してIPアドレスを検索し、そのIPアドレスを使用してサーバーに接続しようとします。
あなたのコンピュータのホスト名だけでだれにもwww.foo.comと話すことを許可したくない場合は、ホストファイルにエントリを追加することで(キーワード-可能性があります)それを防ぐことができます。(ホスト名だけでなく)何らかの方法で特定のサイトに到達するのを防ぐことが目標である場合、ファイアウォールを適切に使用するように、それが起こるのを防ぐ他のより良い、より信頼できる方法があります。
Localhostまたは127.0.0.1は、ローカルコンピューターの組み込みの「名前」です。
つまり、127.0.0.1は「ループバック」と呼ばれます。これは、マシンを指すポインタにすぎないためです。これは予約済みのIPアドレスであり、定義によりlocalhostとして記述することもできます。
これの目的は、信号を外部に送信し、これをループバックして、同じコンピューターでも信号が読み取られるようにすることで、コンピューターと通信できるようにすることです。
マシン上でサーバーを実行しているとします。それにアクセスするには、サーバーにリクエストを送信する必要があり(127.0.0.1にパケットを送信)、サーバーがそれを読み取る必要があります(システムはパケットをループバックします) 127.0.0.1上のローカルシステムがサーバーソフトウェアによって読み取られます)。
The TCP / IP Guideでプレゼンテーションを発見しました。
通常、TCP / IPアプリケーションが情報を送信したい場合、その情報はプロトコル層を下ってIPに移動し、そこでIPデータグラムにカプセル化されます。その後、そのデータグラムは、デバイスの物理ネットワークのデータリンク層に渡され、IP宛先への途中でネクストホップに送信されます。
ただし、ループバック機能のために、1つの特別なアドレス範囲が確保されています。これは、127.0.0.0〜127.255.255.255の範囲です。ホストから127. xに送信されたIPデータグラム。x。xループバックアドレスは、送信のためにデータリンクレイヤーに渡されません。代わりに、IPレベルでソースデバイスに「ループバック」します。本質的に、これは通常のプロトコルスタックの「短絡」を表します。データはデバイスのレイヤー3 IP実装によって送信され、すぐに受信されます。
また、Rutgersには、通常のホスト間通信のこの図を含むネットワーキングコースがあり、
そして、この1ループバック・データ・フローの:
質問の2番目の部分では、アドレス127.0.0.1のホストファイルにWebサイトのホスト名を入れると、DNSを使用して正しいアドレスを見つける代わりにブラウザにアドレスを入力すると、それが見つかることを意味しますホストファイルで最初にローカルホストに解決し、Webサイトのアドレスに移動する代わりに、マシンとの会話を開始するだけで、Webサイトの読み込みが失敗します。