主机localhost是否始终可用于自己的系统?

时间:2008-09-22 05:21:52

标签: localhost ping

是否始终可以ping localhost并将其解析为127.0.0.1?

我知道Windows Vista,XP,Ubuntu和Debian都这样做,但每个人都这样做吗?

10 个答案:

答案 0 :(得分:16)

TCP / IP的任何正确实现都将保留地址127.0.0.1以引用本地计算机。但是,名称“localhost”到该地址的映射通常取决于系统hosts文件。如果要从hosts中删除localhost条目,则localhost名称可能根本无法正常解析。

答案 1 :(得分: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

答案 2 :(得分:5)

没有。 首先,localhost是一种惯例,而不是一种规则。大多数情况下它是默认设置的,但没有什么可以强制要求的。

其次,没有什么可以说你总能ping 127.0.0.1。 作为示例(在unix系统上),请尝试以下操作:

sudo ifconfig lo down ping 127.0.0.1

cruizer所述,127.0.0.1(如果存在)被定义为本地机器。但它不一定存在。

答案 3 :(得分:5)

迂腐的答案(对不起,格雷格:),请阅读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

答案 4 :(得分: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.

答案 5 :(得分:0)

我认为对于大多数平台,localhost几乎可以解析为127.0.0.1但是所有以127开头的IP。。*也解析为localhost。尝试ping 127.255.255.254,它仍然会响应。

答案 6 :(得分:0)

理论上,有些情况可能不存在。在实践中,它始终存在。

答案 7 :(得分:0)

体面的防火墙允许您过滤掉环回接口上的访问权限。因此,可以设置防火墙规则,将icmp ping数据包丢弃到localhost(127.0.0.1)。此外,正如其他人已经提到的那样,即使存在localhost或127.0.0.1地址以及环回接口也无法保证。

答案 8 :(得分:0)

答案是:

127.0.0.1,通常称为“环回”,是必需的。虽然您的计算机可能会让您做一些愚蠢的事情,比如禁用它,或者在物理接口上配置该范围,但这些都是无效的。

“localhost”只是一个主机名,按照惯例,应该是127.0.0.1。作为系统管理员或主机管理员,您应该避免允许localhost指向其他地址的配置。

您不应编辑主机文件以更改“localhost”的地址。您应该将域配置为具有localhost。和localhost.domain.com条目,指向127.0.0.1。

您不应让代理服务器响应“localhost”或以localhost开头的任何FQDN。

答案 9 :(得分:-3)

确定。

解析它的原因是在%WINDOWS_DIR%\ System32 \ drivers \ etc \ hosts文件中记录如下:

127.0.0.1 localhost