/etc/hosts 有什么用?

bat*_*man 56 filesystem internet

我对 Ubuntu 很陌生,我想知道: 的确切用途是/etc/hosts什么?

假设我将其添加到其中:

127.0.x.x mydomain
Run Code Online (Sandbox Code Playgroud)

这意味着什么?

Rin*_*ind 45

目的

主机文件是帮助寻址计算机网络中的网络节点的几种系统工具之一。它是操作系统 Internet 协议 (IP) 实现的常见部分,用于将人性化的主机名转换为数字协议地址,称为 IP 地址,用于识别和定位 IP 网络中的主机。在某些操作系统中,hosts 文件的内容优先于其他方法,例如域名系统 (DNS),但许多系统实现名称服务切换(例如,Linux 和 Unix 的 nsswitch.conf)以提供自定义。与 DNS 不同的是,hosts 文件受本地计算机管理员的直接控制

文件内容

主机文件包含由第一个文本字段中的 IP 地址和一个或多个主机名组成的文本行。每个字段由空格(空格或制表符)分隔。可以包括注释行;它们由这些行的第一个位置中的散列字符 (#) 表示。文件中完全空白的行将被忽略。例如,典型的主机文件可能包含以下内容:

# This is an example of the hosts file

127.0.0.1  localhost loopback
::1        localhost
Run Code Online (Sandbox Code Playgroud)

此示例仅包含系统回送地址及其主机名的条目,这是 hosts 文件的典型默认内容。该示例说明一个 IP 地址可能有多个主机名,并且一个主机名可能映射到多个 IP 地址。

维基百科


这是无效的(?):

127.0.x.x mydomain
Run Code Online (Sandbox Code Playgroud)

通配符*应该是这样,127.0.*.*但我几乎看不到任何其他东西127.0.0.1;)


这意味着您可以将mydomain其用作该 IP 地址的名称。www.google.com比记住74.125.132.106Google 用于其搜索引擎的 IP 地址 ( )更容易使用。在您的机器上本地(本地主机)也是如此。如果您运行自己的 Apache 实例,则可以将本地 IP 地址设置为名称并在浏览器中使用该名称。


::1在本例中是对IP地址的IP V6版本。


jer*_*ija 29

这意味着系统不会对 进行 DNS 查找mydomain,它会自动重定向到您在 hosts 文件中指定的 IP 地址。

在大多数系统上,hosts 文件中的默认条目是:

127.0.0.1    localhost
Run Code Online (Sandbox Code Playgroud)

127.0.0.1始终是您所在计算机的地址。例如,如果您在 PC 上运行 Web 服务器,则可以通过 Web 浏览器访问它,http://localhost:port而无需键入整个 IP 地址http://127.0.0.1:port