是否在/ etc / hosts中包含域名?


15

我正在设置CentOS节点的VMWare集群。在机器后添加域名是否是最佳实践?忽略它有哪些潜在问题?域会使配置复杂化还是简化配置?

例如,如果我的节点位于192.168.1.93,我应该/etc/hosts

127.0.0.1 localhost.localdomain localhost

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

要么

127.0.0.1 localhost
192.168.1.93 computenode1

要么

#127.0.0.1 localhost
192.168.1.93 computenode1

要么

192.168.1.93 localhost
192.168.1.93 computenode1

Answers:


24

放置域名/etc/hosts是可选的,并且您可以运行一个系统而没有任何不良影响。

忽略它的唯一缺点是系统的标准主机名无法正确显示。例如,hostname -f

完全限定的主机名的检测方式如下:

  1. 它首先获取主机名或“短名称”。这是uname -n或的输出hostname
  2. 然后,它通过咨询/etc/hosts(或您在中拥有的任何东西/etc/resolv.conf,如果在中找不到该源,则回退到后者/etc/hosts)获取该主机名的IP地址。
  3. 一旦拥有了IP,便可以通过再次咨询进行反向查找/etc/hosts
  4. 在中有记录后/etc/hosts,第一个条目将用作标准主机名。

简而言之,如果要使用完全限定的主机名,则应执行以下任一操作:

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

要么

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname

1
我没有考虑这一点。拥有完全合格的主机名对台式PC而言毫无用处,并且对于笔记本电脑而言可能会出现问题(因为笔记本电脑可能会带入不同的网络),但对于服务器而言却很有用。例如,Apache2在无法确定其FQDN时会抱怨。
lgeorget

@lgeorget您也可以使用libnss-myhostname它来解决您的FQDN,但无需输入/etc/hsots
Ulrich Dangel 2013年

以上可能会引起问题的结构,请参阅上Debian的当前建立的实践讨论hosts文件,对使用一个(或其缺乏)的的localhost.localdomain条目。
JOO亚当

1
sudo还抱怨主机名是否不在/etc/hostssudo: unable to resolve host <hostname>
x-yuri

3

只要您的主机同意您的域名,则无论是否指定域名/etc/hosts都不会更改任何内容。另一种做法是将其指定为中的domain参数/etc/resolv.conf。如果有一天,如果网络管理员更改它,则不指定它可以简化您的生活。据我所知,指定它不会改变任何东西。

您绝对应该离开127.0.0.1 localhost127.0.0.1 localhost localhost.localdomain进入/etc/hosts。某些应用程序可能开始具有一种非常奇怪的行为,即localhost绑定到除您的环回地址以外的任何其他对象,因为这是一个非常非常意外的设置。


2

您必须在IP地址之后的第一个位置指定完全限定的域名。

当我们读到man 5 hosts

对于每个主机,应该在一行中显示以下信息:

IP_address canonical_hostname [别名...]

如果不遵守该规则,则某些软件可能会损坏。例如,Puppet配置管理系统可能会在每次运行时开始来回更改主机名,仅仅是因为您没有指定域部分,或者因为您在FQDN之前的行中放置了没有域的别名。


0

我不确定这是否真的是“可选”(如上文Patrick所指出)。我终于找到了nfs权限恢复为nobody:nobody的问题。看起来需要正确使用nfs挂载(使用idmapd)的权限,服务器的域名必须与客户端的域名完全匹配。从我发现的一些文档中- hostname -f减去客户机和服务器之间的实际主机名必须相同,或者必须在中为客户机指定域名/etc/idmapd.conf,这意味着每个客户机。

关于在哪里指定域名有官方规定吗?该domainname命令似乎并没有从/ etc / hosts中提取它。.因此,放入/ etc / hosts令我很烦,因为这意味着它存储在文件系统上的多个位置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.