在查看各种Linux和FreeBSD系统时,我注意到在某些系统上, /etc/hosts
包含一个用于主机的公用主机名的条目,但不包含其他系统上的主机名。
这里最好的做法是什么? 我的/ etc / hosts文件是否应该包含主机FQDN(例如myhost.example.org)和短主机名(例如myhost)的条目? FQDN的logging应该指向本地主机还是指向该主机的外部IP?
例如,许多RHEL / EL盒子上的默认configuration不会将公共主机名放在/etc/hosts
:
myhost # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 myhost #
另一种变体是主机的短主机名和FQDN也指向127.0.0.1。 我被告知,这是一个古老的做法,在这些日子里皱起了眉头,但许多pipe理员仍然这样做。
myhost # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 myhost #
第三种变体是主机的FQDN和短主机名被赋予主机的外部IP地址。 这第三个variables对我来说似乎是最优的,因为它减less了对DNS服务器的查询。
myhost # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 74.125.239.xxx myhost myhost.example.org myhost #
这里最好的做法是什么?
您是否愿意在您的环境中接受工作DNS的故障点? 如果系统无法parsing本地计算机的名称,某些服务/应用程序将在某些configuration中失败。
如果您有绝对关键的服务必须在所有情况下运行,那么在hosts文件中添加一个条目并不常见,以便在DNSparsing失败的情况下服务可以继续运行。
如果您可以接受您的DNS作为失败点,或者如果您的服务在parsing失败的情况下不失败,则可以避免hosts文件中的configuration条目。
我强烈build议你尽可能使你的DNS服务器坚如磐石,如果你必须configuration你的主机文件,使用configurationpipe理系统来做到这一点。 你真的应该避免手动避免接触主机文件。