DNS 未检测到 Ubuntu 22.04 主机名

DNS 未检测到 Ubuntu 22.04 主机名

我一直遇到 Ubuntu 22.04 无法从 DNS 服务器检测主机名的问题。

我尝试使用 networkd 和 NetworkManager 后端,但服务器的主机名仍然显示为“localhost”。

我的 netplan 文件与我们的 20.04 版本相同,主机名检测没有任何问题。我尝试将以下几行添加到我的 netplan 配置文件中,然后运行 ​​netplan apply。

dhcp4-overrides:
   use-hostname: true

有其他人遇到过这个问题并成功解决了吗?任何建议都将不胜感激。

答案1

由于我从未见过关于这方面的准确描述,所以这是在 Ubuntu Server 22.04 中设置主机名和 FQDN 的正确方法。

这也是所有本机守护进程检测正确主机名和 FQDN 的有效方法(例如 Apache、nginx 和大多数其他正确实现的服务)。

程序

这将为您更新 /etc/hostname。

sudo hostnamectl hostname [hostname]

编辑 /etc/hosts

sudo vi /etc/hosts

在 /etc/hosts 中:

127.0.0.1 localhost
127.0.1.1 [fqdn] [hostname]
[INTERFACE IP] [fqdn] [hostname] [additional cname fqdn] [additional cname hostname]

/etc/hosts 示例:

127.0.0.1 localhost
127.0.1.1 myhost.example.com myhost
192.168.0.100 myhost.example.com myhost myalias.test.com myalias

这部分是很好的练习,但如果你是不是使用静态 IP 并正确配置 DHCP。

/etc/netplan/[你的接口 netplan 文件,例如 00-installer-config.yaml]:

network:
...
    nameservers:
    ...
        search:
            - [yourdomain E.g. example.com]

如果您不知道自己在做什么,并且除了 SSH 之外没有其他方法进入系统,请小心编辑 netplan。

证实

hostname

输出:myhost

hostname -f

输出:myhost.example.com

检查是否可以仅使用主机名(而非 FQDN)来 ping 域中的另一个系统:

ping otherhost

如果 hostname 和 hostname -f 输出不正确,则表明存在问题。所有 Linux 主机都是如此。

重新启动以确保安全,以便所有服务都能使用正确的信息启动并重新启动:

sudo reboot

再次验证以确保重启后所有内容均保留。

相关内容