什么是Linux服务器的/ etc / hosts和DNS Alogging之间的正确关系?

我有一个Ubuntu服务器。 它将成为一个具有www.example.com的URI的Web服务器。 我有一个指向www.example.com的DNS Alogging到服务器的IP地址。

假设我select“trinity”作为此服务器的主机名

我想正确设置DNSlogging。 我需要反向DNS到www.example.com ,所以www.example.com的CNAME似乎不合适。 这是我的问题:

设置两个DNSlogging(在我的情况下可能是两个Alogging),一个用于www.example.com ,一个用于trinity.example.com ,都指向此服务器的IP地址,这是否被认为是最佳做法? (或者,即使它不被接受为最佳实践,这是一个好主意吗?)

如果是这样,以下是一个适当的/ etc / hosts文件吗?

 $ cat /etc/hosts 127.0.1.1 trinity.local trinity 99.100.101.102 trinity.example.com trinity www.example.com 

这个服务器是一个Linode和Linode的文档似乎意味着上述方法是最好的(如果我正确地阅读)。 这是相关的部分。 我粗体的似乎适用于这里的路线。

更新/ etc / hosts

接下来,编辑您的/ etc / hosts文件,使其类似于下面的示例,用您的系统的域名replace您select的主机名“example.com”的“plato”,用系统的IP地址replace“12.34.56.78”。 与主机名一样,FQDN的域名部分并不一定需要与托pipe在服务器上的网站或其他服务有任何关系(尽pipe它可能如果你愿意)。 例如,您可能在服务器上托pipe“www.something.com”,但系统的FQDN可能是“mars.somethingelse.com”。

文件:/ etc / hosts文件

 127.0.0.1 localhost.localdomain localhost 12.34.56.78 plato.example.com plato 

您指定为系统的FQDN的值在DNS中应该有一个指向您的Linode IP地址的“A”logging 。 有关configurationDNS的更多信息,请参阅我们的关于使用Linode ManagerconfigurationDNS的指南。

/etc/hosts条目和DNS之间的正确关系是,如果您有工作的DNS / etc / hosts应该只包含localhost (指向127.0.0.1::1 )的条目。 当你有DNS工作时,嘲笑主机文件只是一种创build奇怪行为和麻烦的方法。 1

如果您需要反向DNS,请联系您的ISP(Linode),并要求他们为您的IP地址设置适当的PTRlogging。
没有要求 PTRlogging与Alogging相匹配(或者实际上任何具有该名称的主机完全存在:69.18.136.215反转到cl136-215.invision.net,它没有转发地址),所以您可以设置PTR名称以匹配Alogging,CNAME或任何您需要的有效DNS名称。


1 与所有规则一样,存在例外情况。 你的情况听起来不像其中之一。

在您的系统设置中, /etc/hosts文件可能在使用DNS查找之前被读取。 所以我可能会提供系统的IP,完全合格的域名(trinity.example.com),简称(trinity)和网站地址(www.example.com)。

这里是您的主机文件的格式指南。 请参阅: 设置主机名:FQDN或短名称?

如果将这些条目放在/etc/hosts文件中,系统将绕过DNS并使用hosts文件中的条目。
如果某些configuration(DNS或主机文件)出错,这可能会使debugging复杂化。 或者,如果更改DNSlogging并忘记/etc/hosts文件,则会出现奇怪的行为。

您可以使用/etc/hosts文件进行testing,例如在进行DNS更改之前testing您的站点。