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

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

有帮助吗?

解决方案

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

其他提示

127.0.0.1保留在本地主机的任何IP堆栈中。

"本地主机"作为主机名保证在那里。如果主机/ DNS设置配置错误,则localhost将无法解析。

debian框中的示例:

topaz:/root# vi /etc/hosts
[comment out localhost entry]

topaz:/root# ping localhost 
ping: unknown host localhost

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

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

sudo ifconfig lo down ping 127.0.0.1

cruizer 说,127.0.0.1(如果存在)被定义为本地计算机。但它不一定存在。

迂腐的答案(对不起,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

如果您的客户端所连接的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。尝试ping 127.255.255.254,它仍然会响应。

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

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

答案是:

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

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

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

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

确定。

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

127.0.0.1 localhost

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top