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

T. *_*ter 20 networking

我正在设置 CentOS 节点的 VMWare 集群。在机器后包含域名是最佳做法吗?将其排除在外有哪些潜在问题?域是使配置复杂化还是简化了配置?

例如,如果我的节点在192.168.1.93,我应该/etc/hosts从

127.0.0.1 localhost.localdomain localhost
Run Code Online (Sandbox Code Playgroud)

到

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1
Run Code Online (Sandbox Code Playgroud)

或者

127.0.0.1 localhost
192.168.1.93 computenode1
Run Code Online (Sandbox Code Playgroud)

或者

#127.0.0.1 localhost
192.168.1.93 computenode1
Run Code Online (Sandbox Code Playgroud)

或者

192.168.1.93 localhost
192.168.1.93 computenode1
Run Code Online (Sandbox Code Playgroud)

phe*_*mer 31

输入域名/etc/hosts是可选的,您可以运行一个系统而不会产生任何不良影响。

忽略它的唯一缺点是系统的完全限定主机名将无法正确显示。例如,hostname -f。

检测完全限定主机名的工作方式:

  1. 它首先获取主机名或“短名称”。这是uname -nor的输出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
Run Code Online (Sandbox Code Playgroud)

或者

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname
Run Code Online (Sandbox Code Playgroud)