即使您希望在正常操作期间运行 DNS 或 NIS,您仍然希望在 /etc/hosts 中包含所有主机名的子集。首先,即使在没有运行网络接口时,例如在启动时,您也希望进行某种名称解析。这不仅是为了方便,而且还允许您在 rc.inet 脚本中使用符号主机名。因此,当更改 IP 地址时,您只需将更新后的 hosts 文件复制到所有机器并重新启动,而不必单独编辑大量 rc 文件。通常,您会将所有本地主机名和地址放在 hosts 文件中,如果使用网关和 NIS 服务器,则也将其添加进去。
此外,在初始测试期间,您应确保您的解析器仅使用来自 hosts 文件的信息。您的 DNS 或 NIS 软件可能带有示例文件,这些文件在使用时可能会产生奇怪的结果。为了使所有应用程序在查找主机的 IP 地址时专门使用 /etc/hosts,您必须编辑 /etc/host.conf 文件。注释掉任何以关键字 order 开头的行,方法是在它们前面加上井号 (#),并插入以下行
order hosts解析器库的配置将在第-
hosts 文件每行包含一个条目,由 IP 地址、主机名以及主机名的可选别名列表组成。字段由空格或制表符分隔,地址字段必须从第一列开始。井号 (#) 之后的所有内容都被视为注释并被忽略。
主机名可以是完全限定的,也可以是相对于本地域的。对于 vale,您通常会在 hosts 文件中输入完全限定的名称 vale.vbrew.com 和 vale 本身,以便它既以其官方名称又以较短的本地名称而为人所知。
这是一个 Virtual Brewery 的 hosts 文件示例。包含两个特殊名称 vlager-if1 和 vlager-if2,它们给出了 vlager 上使用的两个接口的地址。
# # Hosts file for Virtual Brewery/Virtual Winery # # IP local fully qualified domain name # 127.0.0.1 localhost # 191.72.1.1 vlager vlager.vbrew.com 191.72.1.1 vlager-if1 191.72.1.2 vstout vstout.vbrew.com 191.72.1.3 vale vale.vbrew.com # 191.72.2.1 vlager-if2 191.72.2.2 vbeaujolais vbeaujolais.vbrew.com 191.72.2.3 vbardolino vbardolino.vbrew.com 191.72.2.4 vchianti vchianti.vbrew.com就像主机的 IP 地址一样,有时您也希望为网络号使用符号名称。因此,hosts 文件有一个名为 /etc/networks 的配套文件,该文件将网络名称映射到网络号,反之亦然。在 Virtual Brewery,我们可能会安装一个像这样的 networks 文件:
# /etc/networks for the Virtual Brewery brew-net 191.72.1.0 wine-net 191.72.2.0