localhost 127.0.0.1はどのように機能しますか?


17

これに関連する記事をいくつか見つけましたが、それらは私には十分ではありませんでした。私はどのようにlocalhost動作し、なぜ多くの異なるマシンで同じであるのか知りたいですか?

ファイルlocalhostでWebサイトを使用してWebサイトをブロックする場合、Webサイトへのアクセスをどのようhostにブロックしますか?


2
申し訳ありませんが、質問の2行目で完全に迷ってしまいました...どういう意味ですか?
ウィンドス

1
@Windos、 "127.0.0.1 www.blah.com"のようなホストファイルにエントリを追加すると、そのサイトをlocalhost(とにかくIE8での作業に使用)にリダイレクトします
tzup

回答:


23

ここでは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失敗します。

*実際にハードウェアイーサネットポートを持つすべてのシステム


「dows」では、DNSサブシステムはlocalhostを127.0.0.1に解決し、127.0.0.1へのトラフィックはインターフェイスに送られず、ネットワークスタックはすぐにループします(実際にはUnixとまったく同じですが、仮想インターフェイスはありません)プロセスの現れとして)。
jcrawfordor

けれどもあなたは、Microsoftループバックアダプターをインストールすることができますが、それは全く同じものではありません。
-slhck

現在、多くのOSは0.0.0.0をサポートしているため、代わりにサイトのブロックに使用します。...ループを回避
タマラWijsman

8

インターネットプロトコル(IP)アドレスは、4つの基本的なカテゴリのいずれかに分類されます。

  1. 世界中の他のコンピューターとの通信に使用されるアドレス、
  2. 特定の会社またはネットワーク内のコンピューターとの通信に使用されるアドレス、
  3. ネットワーク上のコンピューター間で情報をブロードキャストするために使用されるアドレス、
  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と話すことを許可したくない場合は、ホストファイルにエントリを追加することで(キーワード-可能性があります)それを防ぐことができます。(ホスト名だけでなく)何らかの方法で特定のサイトに到達するのを防ぐことが目標である場合、ファイアウォールを適切に使用するように、それが起こるのを防ぐ他のより良い、より信頼できる方法があります。


現在、多くのOSは0.0.0.0をサポートしているため、代わりにサイトのブロックに使用します。...ループを回避
タマラWijsman

7

Localhostまたは127.0.0.1は、ローカルコンピューターの組み込みの「名前」です。

つまり、127.0.0.1は「ループバック」と呼ばれます。これは、マシンを指すポインタにすぎないためです。これは予約済みのIPアドレスであり、定義によりlocalhostとして記述することもできます。

これの目的は、信号を外部に送信し、これをループバックして、同じコンピューターでも信号が読み取られるようにすることで、コンピューターと通信できるようにすることです。

マシン上でサーバーを実行しているとします。それにアクセスするには、サーバーにリクエストを送信する必要があり(127.0.0.1にパケットを送信)、サーバーがそれを読み取る必要があります(システムはパケットをループバックします) 127.0.0.1上のローカルシステムがサーバーソフトウェアによって読み取られます)。


5

The TCP / IP Guideでプレゼンテーションを発見しました。

通常、TCP / IPアプリケーションが情報を送信したい場合、その情報はプロトコル層を下ってIPに移動し、そこでIPデータグラムにカプセル化されます。その後、そのデータグラムは、デバイスの物理ネットワークのデータリンク層に渡され、IP宛先への途中でネクストホップに送信されます。

ただし、ループバック機能のために、1つの特別なアドレス範囲が確保されています。これは、127.0.0.0〜127.255.255.255の範囲です。ホストから127. xに送信されたIPデータグラム。xxループバックアドレスは、送信のためにデータリンクレイヤーに渡されません。代わりに、IPレベルでソースデバイスに「ループバック」します。本質的に、これは通常のプロトコルスタックの「短絡」を表します。データはデバイスのレイヤー3 IP実装によって送信され、すぐに受信されます。


また、Rutgersには、通常のホスト間通信のこの図を含むネットワーキングコースがあり、

通常のホスト間通信

そして、この1ループバック・データ・フローの:

                                                    ループバックデータフロー


4

質問の2番目の部分では、アドレス127.0.0.1のホストファイルにWebサイトのホスト名を入れると、DNSを使用して正しいアドレスを見つける代わりにブラウザにアドレスを入力すると、それが見つかることを意味しますホストファイルで最初にローカルホストに解決し、Webサイトのアドレスに移動する代わりに、マシンとの会話を開始するだけで、Webサイトの読み込みが失敗します。


現在、多くのOSは0.0.0.0をサポートしているため、代わりにサイトのブロックに使用します。...ループを回避
タマラWijsman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.