/etc/hosts 应该包含域名还是 FQDN?

/etc/hosts 应该包含域名还是 FQDN?

如果我想添加一个条目 to/etc/hosts来解析example.comto 的所有流量1.2.3.4,我是否需要添加

1.2.3.4    example.com
1.2.3.4    www.example.com
1.2.3.4    smtp.example.com
1.2.3.4    pop.example.com
...

或者只是添加

1.2.3.4    example.com

够了吗?

答案1

您需要指定每个子域。如果这不是您想要的,您应该考虑安装一个真正的 DNS 服务器(例如,bind9)。

example.com通过首先添加/etc/hosts然后执行,这很容易检查

ping -c 2 example.com
ping -c 2 www.example.com

第一个将使用提供的 IP 地址成功。第二个将访问93.184.216.119(www.example.com 的互联网 IP 地址)

答案2

/etc/hosts从互联网处于起步阶段起,它就是 DNS 系统的前身。今天,它仍然用于某些情况,例如当您想要解析少量本地系统或在尚未设置 DNS 的开发设置中时。

您将要解析为 IP 地址的所有主机名放入其中。您可以将多个名称分配给一个 IP 地址,就像localhost大多数发行版中的行一样:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

如果你想添加1.2.3.4为你的网络服务器,它被调用www.example.com并通过更短的方式访问它www,然后添加:

1.2.3.4   www www.example.com

在您的实例中,您可以将所有名称放在一行上:

1.2.3.4 www.example.com smtp.example.com pop.example.com

您的系统解析这些名称的顺序(或首先是 DNS)可以在)行/etc/hosts中配置hosts:/etc/nsswitch.conf

但请记住,/etc/hosts只能在您的机器上运行。如果您有几个系统,那么/etc/hosts对每个系统进行编辑可能会变得很麻烦。

相关内容