4

localhost に ping を実行すると、常に 127.0.0.1 に解決されますか?

Windows Vista、XP、Ubuntu、および Debian がそれを行うことは知っていますが、誰もがそれを行うのでしょうか?

4

10 に答える 10

17

TCP/IP を正しく実装すると、アドレス 127.0.0.1 がローカル マシンを参照するために予約されます。hostsただし、「localhost」という名前からそのアドレスへのマッピングは、通常、システムファイルに依存します。から localhost エントリを削除するとhosts、localhost 名がまったく正しく解決されなくなる可能性があります。

于 2008-09-22T05:24:00.073 に答える
6

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
于 2008-09-22T05:30:35.503 に答える
5

いいえ。最初localhostはルールではなく慣習です。ほとんどの場合、デフォルトで設定されていますが、義務付けるものはありません。

第二に、いつでも127.0.0.1にpingできると言うことは何もありません。例として(UNIXシステムで)次のことを試してください。

sudo ifconfig lo down ping 127.0.0.1

巡洋艦が言ったように、127.0.0.1(存在する場合)はローカルマシンとして定義されています。しかし、それは存在する必要はありません。

于 2008-09-22T06:03:44.750 に答える
5

衒学的な答え (申し訳ありませんが、Greg :) は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
于 2008-09-22T06:29:13.817 に答える
1

クライアントが接続している 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.
于 2008-09-22T07:59:10.573 に答える
0

答えは次のとおりです。

「ループバック」と呼ばれることが多い 127.0.0.1 が必要です。お使いのコンピューターでは、無効にしたり、物理インターフェイスでその範囲を構成したりするなど、ばかげたことを実行できる場合がありますが、これらはすべて無効です。

「localhost」は単なるホスト名であり、慣例により 127.0.0.1 にする必要があります。システム管理者またはホストマスターとして、localhost が他のアドレスを指すことを許可する構成は避ける必要があります。

hosts ファイルを編集して「localhost」のアドレスを変更しないでください。ローカルホストを持つようにドメインを構成する必要があります。および 127.0.0.1 を指す localhost.domain.com エントリ。

プロキシ サーバーが "localhost" または localhost で始まる FQDN に応答しないようにする必要があります。

于 2008-09-29T04:43:15.000 に答える
0

localhost はほとんどのプラットフォームで 127.0.0.1 に解決されると思いますが、127 で始まるすべての IP は. . .* localhost にも解決されます。127.255.255.254 に ping してみてください。それでも応答します。

于 2008-09-22T05:24:11.743 に答える
0

理論上、存在しない場合もあります。実際には、常にそこにあります。

于 2008-09-22T05:27:35.913 に答える
0

まともなファイアウォールを使用すると、ループバック インターフェイスでもアクセスをフィルタリングできます。そのため、ローカルホスト (127.0.0.1) への icmp ping パケットをドロップするファイアウォール ルールを設定することができます。また、他の誰もが既に述べたように、localhost または 127.0.0.1 アドレスとループバック インターフェイスの存在さえ保証されていません。

于 2008-09-22T08:16:49.783 に答える
-3

Ok。

解決する理由は、次のように %WINDOWS_DIR%\System32\drivers\etc\hosts ファイルに記録されているためです。

127.0.0.1 ローカルホスト

于 2008-09-22T05:28:27.800 に答える