是否始终可以ping localhost并将其解析为127.0.0.1?
我知道Windows Vista,XP,Ubuntu和Debian都这样做,但每个人都这样做吗?
答案 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