【问题标题】:Why hostname FQDN is not set properly on Digital Ocean?为什么在 Digital Ocean 上没有正确设置主机名 FQDN?
【发布时间】:2023-03-07 10:20:01
【问题描述】:

我在 Ubuntu 16.04 droplets 上观察到了这个问题,但我想它发生在其他基于 Debian 的 droplets 上。更多解释如下。

创建一个全新的实例后,我观察到hostname --fqdn 没有像我预期的那样返回 FQDN(完全限定域名),而只返回主机名,而没有附加域名。

$ hostname
mydroplet
$ hostname --fqdn
mydroplet

我希望看到这样的东西:

$ hostname --fqdn
mydroplet.example.com

这是一个潜在的严重问题,因为许多服务都依赖 FQDN 才能正常工作。

如何解决这个问题?

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • mydroplet.example.com不是 FQDN。 FQDN 以点 (.) 结尾,表示 DNS 树的顶部。 mydroplet.example.com.localhost. 是 FQDN。当点出现时,解析器不应向搜索路径添加后缀。您使用谁的 DNS 是另一回事。另请参阅 W. Richard Stevens 的Advanced Programming in the UNIX Environment
  • @jww hostname --fqdn 不会在末尾附加一个点,无论 RFC 怎么说。
  • 因为点是隐含的。与@jww 所说的相反,它的存在不一定说明名称是否为 FQDN。请参阅 RFC 8499:“但是,由于每个名称最终都共享公共根,因此名称通常相对于根(例如“www.example.net”)编写并且仍然称为“完全限定”。”
  • @Patrick Mevzek:没关系。我刚刚展示了命令的输出,以便读者了解问题所在、命令输出的预期内容(无论是否有前导点)以及应该采取哪些措施来解决问题。非常感谢您的解释。 :-)

标签: linux dns digital-ocean hostname fqdn


【解决方案1】:

对于不耐烦的人

以下这些命令修复了现有液滴上的问题:

echo "domain example.com" | sudo tee /etc/resolvconf/resolvconf.d/head
sudo service resolvconf restart

有什么问题?

hostname --fqdn 命令应该返回 FQDN(全限定域名),如下所示:

$ hostname --fqdn
mydroplet.example.com

如果您看不到 FQDN,而只看到主机名...嗯...您遇到的问题迟早会损害您的应用程序、shell 脚本或服务。

$ hostname --fqdn
mydroplet

休斯顿,我们有问题!

修复路线

简而言之,我们需要让/etc/resolv.conf 看起来像这样:

$ cat /etc/resolv.conf
domain example.com
nameserver 8.8.8.8
nameserver 8.8.4.4

如果你没有在里面看到domain example.com,你迟早会有问题。

您可以认为这只是编辑文件的问题,对吗?没那么快! ...我们不能手动更改这个文件,因为它是由 Debian 自己维护的。如果您手动更改它,它会在稍后的某个时间自行恢复到初始状态。

通过 Digital Ocean 的网络界面创建水滴

在为cloud-init的用户数据保留的文本区域中添加以下代码sn-p:

#cloud-config
manage_etc_hosts: false
write_files:
  - path: /etc/resolvconf/resolv.conf.d/head
    content: |
      domain example.com
runcmd:
  - service resolvconf restart

上面的 sn-p 保证hostname --fqdn 将在您第一次登录到您的 droplet 时立即返回您所期望的内容。

【讨论】:

  • 不要盲目使用8.8.8.88.8.4.4,这与设置本地主机名完全无关。
  • @Patrick Mevzek :: 我自己不使用 Google DNS。这只是一个例子。
猜你喜欢
  • 2011-08-11
  • 2015-11-15
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多