我有一个非常常见的家庭网络和一台笔记本电脑,它通过以太网或 wifi 连接到该网络并使用 DHCP 获取 IP。FDQN 的推荐配置是什么,包括主机名和 /etc/hosts?我目前有
在 /etc/hosts 中:
127.0.0.1 localhost
127.0.1.1 euclides.localdomain euclides
::1 localhost ip6-localhost ip6-loopback
并在 /etc/hostname 上:
euclides.localdomain
我希望对其进行配置,使本地网络中的所有内容保持现在的工作方式,并尝试防止出现类似 Spark 的错误:
18/01/15 08:12:25 WARN Utils: Your hostname, euclides.localdomain resolves to a loopback address: 127.0.1.1; using 192.168.0.22 instead (on interface enp3s0)
答案1
因此,该消息警告您 euclides.localdomain 解析为 127.0.1.1
,并且您的主机文件确实将 euclides.localdomain 解析为 127.0.1.1
127.0.1.1 euclides.localdomain euclides
所以主机文件应该说
192.168.0.22 euclides.localdomain euclides
但是它是 DHCP,因此 DHCP 服务器会分配一个地址 - 因此在这种情况下,主机文件根本不应该有此行
# 127.0.1.1 euclides.localdomain euclides
这部分回答了您的问题 - 主机文件不应将 euclides.localdomain 解析为本地地址。我确实同意我不认为这是一项要求,尽管我的公司经常使用主机文件,我们在所有机器之间复制一份副本,所以我从未见过主机名解析为环回地址,只有环回解析为环回 IP,主机名始终解析为非环回 IP
您需要的是 DHCP 服务器通过 DHCP 租约更新来更新 DNS 服务器(我这样说是因为这是我使用运行 DNSMASQ 的 Raspberry PI 所做的)或者 euclides.localdomain 需要对 DNS 服务器进行动态更新,这是 Windows Server 所做的,但 8.8.8.8 不会接受您的更新。
或者,您可以创建 DHCP 预留,然后手动编辑 hosts 文件。这有点牵强,因为 Hosts 实际上用于静态地址 DHCP 预留仍然会创建 DHCP 租约,因此仍然可以与 DNSMASQ 配合使用
运行 Windows 的笔记本电脑可能正在使用 Netbios 名称解析服务 - 执行本地广播或使用 WINS 服务器 - 两者都有些过时,我认为它们已被弃用,取而代之的是 DDNS。不过,hosts 文件仍然不应包含具有 DHCP 分配地址的主机的条目。
答案2
我认为这个警告背后的逻辑如下:
- FQDN 表示存在“域”,并且
- 成为域的一部分意味着在某些网络上拥有非本地的唯一地址。
据称这localhost.localdomain
是经过特殊处理的(尽管据我所知,没有 RFC 或某些东西可以对localdomain
NIS 域名进行任何特殊处理)。
在我的网络上,我使用.lan
根域名,因此我会home.lan
在您的 DHCP/DNS 服务器上配置类似的内容。