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

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

我刚刚开始学习使用 Ubuntu,当我尝试配置 DNS 时,我需要处理一些称为 localhost 的东西,即环回接口。有人能解释一下它们之间的区别以及地址 127.0.0.1 和 127.0.1.1 的含义吗,我什么时候应该使用 127.0.0.1,什么时候应该使用 127.0.1.1

答案1

当您的机器启动时,它需要知道某些主机名到 IP 地址的映射,然后才能引用 DNS。此映射保存在文件中/etc/hosts。在没有名称服务器的情况下,系统上的任何网络程序都会查阅此文件以确定与主机名相对应的 IP 地址。

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

环回接口lo,默认IP地址为127.0.0.1。

127.0.0.1 localhost

Debian,然后是 Ubuntu,选择定义 127.0.1.1 来映射您的 host_name 的 IP 地址,以防您没有网络。

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

对于具有永久 IP 地址的系统,这里应该使用该永久 IP 地址,而不是 127.0.1.1。

127.0.1.1 host_name

答案2

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

它被用作主机名的 IP 的原因在Debian 参考手册

引用:

某些软件(例如 GNOME)要求系统主机名能够解析为具有规范的完全限定域名的 IP 地址。这确实不合适,因为系统主机名和域名是两个截然不同的东西;但事实就是如此。为了支持该软件,必须确保系统主机名能够被解析。最常见的方法是在 /etc/hosts 中添加一行,其中包含某个 IP 地址和系统主机名。如果您的系统有永久 IP 地址,请使用该地址;否则请使用地址 127.0.1.1。

答案3

下面的屏幕截图讲述了一个有趣的故事。

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记录。

答案4

127.0.0.1 是环回地址,通常称为localhost,这是本地 hosts 文件解析的名称。此文件位于不同的位置,具体取决于操作系统,但在大多数 Linux 发行版中,它位于/etc/hosts。此地址始终指发出请求的计算机,因此 127.0.0.1 不是一个“真实”地址。每个设备都有自己的localhost。另一方面,某些软件使用 127.0.1.1 来表示相同的内容,在某种程度上是别名,但实际上并非如此。您的机器内部使用的环回地址应该是 127.0.0.1,因此不要在您的 hosts 文件中乱改该地址!

相关内容