当前位置:  开发笔记 > 运维 > 正文

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

如何解决《主机localhost是否始终可用于自己的系统?》经验,为你挑选了4个好方法。

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

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



1> Greg Hewgill..:

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


我认为依赖现有的"localhost"别名是安全的,因为它在任何现代操作系统中默认设置.用户必须实际*从主机列表中删除*它,并且没有必要担心用户可以破坏他们的计算机的方式.
Greg指的是'localhost'名称,而不是环回设备.两件不同的事情.

2> Thorsten79..:

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



3> Andrew Edgec..:

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

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

sudo ifconfig lo down ping 127.0.0.1

正如巡洋舰所说,127.0.0.1(如果存在)被定义为本地机器.但它不一定存在.



4> 小智..:

迂腐的答案(抱歉,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

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有