ホスト localhost は常に独自のシステムで使用可能ですか?
質問
localhost に ping を実行すると、127.0.0.1 に解決されることはいつでも可能ですか?
Windows Vista、XP、Ubuntu、Debian がやっているのは知っていますが、みんなやっているのでしょうか?
解決
TCP/IP を正しく実装すると、ローカル マシンを参照するためにアドレス 127.0.0.1 が予約されます。ただし、「localhost」という名前のそのアドレスへのマッピングは通常、システムに依存します。 hosts
ファイル。localhost エントリを削除する場合は、 hosts
, の場合、ローカルホスト名はまったく正しく解決されなくなる可能性があります。
他のヒント
127.0.0.1 は、ローカル ホストの IP スタックで予約されています。
ホスト名としての「localhost」は ない そこにいることが保証されています。ホスト/DNS 設定が正しく構成されていない場合、localhost は解決されません。
Debian ボックスの例:
topaz:/root# vi /etc/hosts
[comment out localhost entry]
topaz:/root# ping localhost
ping: unknown host localhost
いいえ。まずは localhost
はルールではなく慣例です。ほとんどの場合、デフォルトで設定されていますが、強制するものはありません。
第二に、いつでも 127.0.0.1 に ping できるということはありません。例として (UNIX システム上で) 次のことを試してください。
sudo ifconfig lo down
ping 127.0.0.1
として クルーザー つまり、127.0.0.1 (存在する場合) がローカル マシンとして定義されます。しかし、それは存在する必要はありません。
衒学的な答えは (ごめんなさい、グレッグ :)、読むことです。 RFC 3330:
127.0.0.0/8 - This block is assigned for use as the Internet host
loopback address. A datagram sent by a higher level protocol to an
address anywhere within this block should loop back inside the host.
This is ordinarily implemented using only 127.0.0.1/32 for loopback,
but no addresses within this block should ever appear on any network
anywhere [RFC1700, page 5].
(上記の「通常」は、おそらく「頻繁に」と読み替えるべきです。最新のオペレーティング システムでは、127.0.0.0/8 のすべてをループバックとして使用することがサポートされています。)
「localhost」が常に 127.0.0.1 に解決されるかどうかに関しては、彼の言うとおりです。一般的には同じですが、技術的には実装に固有です。
~> dig localhost.t...e.org
...
;; ANSWER SECTION:
localhost.t...e.org. 86400 IN A 127.0.0.2
クライアントが接続している DNS サーバーが rfc1912 に従っている場合、はい、localhost は 127.0.0.1 に解決されるはずです。
RFC1912
4.1
...
Certain zones should **always be present** in nameserver configurations:
primary localhost localhost
primary 0.0.127.in-addr.arpa 127.0
...
The "localhost" address is a "special" address which always refers to
the local host. It should contain the following line:
localhost. IN A 127.0.0.1
The "127.0" file should contain the line:
1 PTR localhost.
localhost は、ほとんどのプラットフォームで 127.0.0.1 に解決されると思いますが、127 で始まるすべての IP は解決されません。..* も localhost に解決されます。127.255.255.254 に ping を送信してみてください。それでも応答します。
理論上、存在しない場合もあります。実際には、それは常に存在します。
適切なファイアウォールを使用すると、ループバック インターフェイスでのアクセスをフィルタリングすることもできます。したがって、ローカルホスト (127.0.0.1) に送信される icmp ping パケットをドロップするファイアウォール ルールを設定することが可能です。また、他の人もすでに述べているように、localhost または 127.0.0.1 アドレスとループバック インターフェイスの存在すら保証されていません。
答えは次のとおりです。
「ループバック」と呼ばれることが多い 127.0.0.1 が必要です。コンピュータでは、無効にしたり、物理インターフェイスでその範囲を構成したりするなど、愚かな操作が許可されている場合がありますが、これらはすべて無効です。
「localhost」は単なるホスト名であり、慣例により 127.0.0.1 である必要があります。システム管理者またはホストマスターは、localhost が他のアドレスを指すことを許可する構成を避ける必要があります。
hosts ファイルを編集して「localhost」のアドレスを変更しないでください。ローカルホストを持つようにドメインを構成する必要があります。127.0.0.1 を指す localhost.domain.com エントリ。
プロキシ サーバーを「localhost」または localhost で始まる FQDN に応答させないでください。
わかりました。
これを解決する理由は、%WINDOWS_DIR%\System32\drivers\etc\hosts ファイルに次のように記録されるためです。
127.0.0.1 ローカルホスト