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

时间:2020-03-06 14:31:30  来源:igfitidea点击:

是否总是可以ping localhost并且解析为127.0.0.1?

我知道Windows Vista,XP,Ubuntu和Debian可以做到,但是每个人都可以做到吗?

解决方案

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

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

从理论上讲,在某些情况下它可能不存在。实际上,它总是存在的。

好的。

解决它的原因记录在%WINDOWS_DIR%\ System32 \ drivers \ etc \ hosts文件中,如下所示:

127.0.0.1本地主机

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

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

在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下来
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之后,则可以,本地主机应解析为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.

体面的防火墙也允许我们过滤回送接口上的访问。因此,可以设置防火墙规则,以将icmp ping数据包丢弃到本地主机(127.0.0.1)。另外,正如其他所有人已经提到的,即使本地主机或者127.0.0.1地址和回送接口也无法保证。

答案是:

需要127.0.0.1,通常称为"回送"。尽管计算机可能会让我们做一些愚蠢的事情,例如禁用它,或者在物理接口上配置该范围,但这些都是无效的。

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

我们不应该编辑主机文件来更改" localhost"的地址。我们应该将域配置为具有本地主机。和指向127.0.0.1的localhost.domain.com条目。

我们不应该让代理服务器响应" localhost"或者任何以localhost开头的FQDN。