了解 Ubuntu 的 hosts 文件

主机文件是一个非常有用的小文本文件,它存储了主机名和相关的 IP 地址。 它基本上是从主机名到 IP 地址的映射。

任何网络协议都使用此映射将主机名转换为数字 IP 地址。 映射是因为网络层不适用于主机名。

只有实际的 IP 地址用于任何网络协议。 但是由于我们人类发现使用字符和名称更容易,因此使用主机名来记住特定端点而不是其 IP 地址变得很方便。

正如我们现在所知,在互联网上,我们使用 域名系统 (域名系统) 将网址解析为 IP 地址的分辨率。

当我们在局域网上时(局域网),将 IP 地址直接映射到主机名更有意义,因为没有任何 DNS 服务器可供查询。 因此,每当 DNS 服务器 不是 可用,应用程序将直接查阅此文件。

主机文件功能

主机文件启用 IP 地址的唯一分配 给主机。 这确保即使名称相同,也会搜索这两个主机。 这很常见,尤其是当您从一个网络移动到另一个网络时。

在我们的 Ubuntu 系统中,hosts 文件位于 /etc/hosts.

您可以使用您喜欢的编辑器并打开此文件。 我会用 vi 编辑。

[email protected]:~# vi /etc/hosts 

该文件看起来有点类似于下面的屏幕截图

等主机文件

默认情况下,仅列出几个条目。 第一行对应于您机器的本地地址。

这通常被称为 本地主机 并被标准化为 127.0.0.1. 因此,任何机器都可以使用它访问自己本地地址上的应用程序服务器,但不能访问其他任何东西。 这是机器用来与自身通信的地址。

此条目必须 不是 更改,否则,在尝试与应用程序通信时可能会出现问题。

第二行 127.0.1.1 ubuntu 代表与上面相同的东西。 这是另一个别名映射 本地主机 地址。 但这条线不仅仅是一个别名。

第二行确保其他应用程序在尝试与本地计算机通信时,实际上到达本地网络上的目标主机名。 如果您更改主机名,您也必须在此文件中将 ubuntu 更改为您想要的主机名。

同样,您也可以通过修改第二行来更改您的静态 IP 地址。 同样,保持第一行不变。

向 /etc/hosts 添加一个条目

让我们在主机映射中添加一个条目。 我们将尝试映射到这个网站(www.howlinux.com)。 但在此之前,让我们通过使用 ping 命令。

ping howlinux.com 

由于这在我们的本地网络之外,我们需要通过查询 DNS 服务器来获取 IP 地址。 如果找到匹配项,我们将取回 IP 地址。

平网站

好的,服务器正在运行,它具有屏幕截图中提到的 IP 地址。 所以让我们将它添加到 etc/hosts.

添加条目后的主机文件添加条目后的主机文件

现在让我们保存并退出。 现在,如果我们要访问howlinux.com,系统会直接引用我们的 /etc/hosts 文件,而不是查找 DNS 服务器。

您可以通过在与 Internet 断开连接的情况下在我们的浏览器上打开 IP 地址来测试它。 现在显然,它不会将您连接到网站,但即使没有网络,它也会解析域名。 所以本质上,这与 域名系统 协议可以! 难怪现在到处都在使用它,对吧?

同样,接下来的几行是 IPv6 地址。 其中第一个 ::1 定义了 localhost 与自身进行环回通信的端点,就像 127.0.0.1.

接下来的两行用于多播到 nodesrouters 自从在网络中 IPv6 严重依赖 UDP组播.

概括

的主要观点 /etc/hosts 是在查询 Internet 上的其他服务器之前启动与本地应用程序本身的通信。 除此之外,它对今天的应用程序没有重大影响。 所以,不用太在意这个文件,除了这个之前用过的历史意义 域名系统 进入了画面。

参考

  • /etc/hosts 上的 Ubuntu 手册页条目