本地主机地址127.0.0.1和127.0.1.1有什么区别


48

我只是在学习使用Ubuntu的情况,当我尝试配置DNS时,我需要处理一些叫做localhost,回送接口的问题。谁能解释一下它们之间的区别以及地址127.0.0.1和127.0.1.1的含义,何时应使用127.0.0.1,何时应使用127.0.1.1



1
^^^我正在输入答案,而@jdv则将其弹出评论中……
Madivad

Answers:


36

随着计算机的启动,在引用DNS之前,需要知道一些主机名到IP地址的映射。该映射保存在/ etc / hosts文件中。在没有名称服务器的情况下,系统上的任何网络程序都会查询该文件以确定与主机名相对应的IP地址。

回送设备是计算机用来与其自身通信的特殊虚拟网络接口。它主要用于诊断和故障排除,并连接到在本地计算机上运行的服务器。

默认情况下,环回为接口lo和ip 127.0.0.1

127.0.0.1本地主机

如果您没有网络,则Debian比ubuntu选择定义127.0.1.1来映射host_name的ip

host_name与“ / etc / hostname”中定义的主机名匹配。

对于具有永久IP地址的系统,此处应使用该永久IP地址代替127.0.1.1。

127.0.1.1主机名


1
我理解这种哲学,但是我不同意它在/ etc / hosts中的形式。
安东尼·鲁特里奇

21

它实际上并没有特别的含义(它只是127.0.0.0/8块中的另一个IP)。

它被用作主机名IP的原因在Debian参考手册的10.4节中进行了说明。

引用:

某些软件(例如GNOME)期望系统主机名可解析为具有规范的完全限定域名的IP地址。这确实是不正确的,因为系统主机名和域名是两个截然不同的东西。但是你现在有了。为了支持该软件,必须确保可以解析系统主机名。通常,这是通过在/ etc / hosts中放置一行来完成的,其中包含一些IP地址和系统主机名。如果您的系统具有永久IP地址,请使用该IP地址。否则,请使用地址127.0.1.1。


1

以下截屏讲述了一个有趣的故事。

Ubuntu默认的/ etc / hosts文件和ifconfig输出

实际上,它表明这127.0.0.1是真正的环回地址。因此,127.0.1.1除了基本IP网络之外,还有其他原因。

正如@Videonauth所提到的那样,该127.0.1.1行可以作为拐杖,是一个修复程序,可以使挑剔的软件感到满意。

我认为,环回条目应始终位于中/etc/hosts。如果将主机名从默认值localhost更改为,则127.0.1.1在行而不是127.0.0.1行上更改主机名。

如果更改主机名并为计算机提供静态IP,请更改127.0.1.1行中的主机名和IP字段。

简而言之,不要再谈127.0.0.1唱片了。


综上所述,如果您将静态IP设置为192.168.1.1,则应将127.0.1.1行替换为192.168.1.1主机名。对吗?
克里斯

192.168.1.1 <hostname>是。
Anthony Rutledge

谢谢,我不确定,我正在设置一些虚拟机,并且主机文件全部包含了该文件,我知道这是某些应用程序的回送,但后来是127.0.0.1,所以我不确定是否必须保留它。
克里斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.