该文件/etc/hosts
开始于DARPA的早期,作为所有连接到Internet的主机(在DNS存在之前)的解析文件。它具有最高优先级,这意味着该文件优先于任何其他名称系统。1个
但是,作为单个文件,它不能很好地扩展:文件的大小很快就会变得太大。这就是为什么要开发DNS系统(分层的分布式名称系统)的原因。它允许任何主机有效地找到其他主机的数字地址。
在非常的老概念/etc/hosts
文件非常简单,只是一个地址和主机名:
127.0.0.1 localhost
每行。这是地址主机对的简单列表。2
目前,它的主要用途是绕过DNS解析。/etc/hosts
在任何DNS条目之前,将使用在文件中找到的匹配项。实际上,如果localhost
在文件中找到了所搜索的名称(如),则根本不会执行DNS解析。
1好,名称解析的顺序实际上是在中定义的/etc/nsswitch.conf
,通常具有以下条目:
hosts: files dns
表示“尝试文件(/etc/hosts
);如果失败,请尝试DNS”。
但是该顺序可以更改或扩展。
2(当前)主机文件包含由第一行文本字段中的IP地址和一个或多个主机名组成的文本行。每个字段都用空格隔开–出于历史原因,通常首选使用制表符,但也使用空格。注释行可能包括在内;它们在此类行的第一个位置由八角形(#)表示。文件中的完全空白行将被忽略。例如,典型的主机文件可能包含以下内容:
127.0.0.1 localhost loopback
::1 localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27 mycomputer.lan
此示例包含系统回送地址及其主机名的条目,第一行是hosts文件的典型默认内容。第二行有几个附加的名称(可能仅在本地系统中有效)。该示例说明IP地址可能具有多个主机名(本地主机和回送),并且主机名可能既映射到IPv4 IP地址又映射到IPv6 IP地址,如第一行和第二行所示。一个名称(mycomputer.lan
)可以解析为多个地址(192.168.0.8 10.0.0.27
)。但是,在那种情况下,使用哪个取决于计算机设置的路由(及其优先级)。
一些较旧的操作系统无法报告给定名称的地址列表。