Ubuntu 22.04静态IP虚拟机无法解析本地主机名,提示‘Temporary failure in name resolution’
Ubuntu 22.04静态IP虚拟机无法解析本地主机名,提示‘Temporary failure in name resolution’
嘿,我之前碰到过几乎一模一样的问题,咱们一步步来排查解决:
从你给出的resolvectl status输出能抓到关键问题——你的系统关闭了mDNS(多播DNS),而本地主机名解析(尤其是没配置本地DNS域的场景下),大多依赖mDNS(你装的avahi-daemon就是干这个的)或者LLMNR。虽然你装了avahi,但mDNS没启用的话,它根本没法发挥作用。
下面是具体的修复步骤:
1. 启用mDNS解析
Ubuntu 22.04默认用systemd-resolved管理DNS,我们需要修改它的配置来打开mDNS:
sudo nano /etc/systemd/resolved.conf
找到MulticastDNS那一行,去掉注释并改成:
MulticastDNS=yes
保存后重启服务生效:
sudo systemctl restart systemd-resolved
2. 配置本地搜索域
你的netplan配置里search: []是空的,这意味着系统不会自动给主机名补全本地域名后缀(比如.local)。修改你的netplan配置文件(通常在/etc/netplan/目录下,文件名类似00-installer-config.yaml):
network: ethernets: ens160: addresses: - 10.10.10.99/24 nameservers: addresses: - 10.10.10.1 search: [local] # 添加本地域,常用的是local routes: - to: default via: 10.10.10.1 version: 2
应用配置:
sudo netplan apply
3. 确认Avahi服务状态
虽然你装了avahi-daemon,但可能没启动:
sudo systemctl status avahi-daemon
如果显示未运行,启动并设置开机自启:
sudo systemctl start avahi-daemon sudo systemctl enable avahi-daemon
4. 测试解析
现在试试ping本地主机名,不管加不加.local后缀都应该能通了:
ping newserver.local ping newserver
补充一句:你的老VM可能用的是传统的/etc/resolv.conf而非systemd-resolved的stub resolver,默认就开了mDNS,所以没问题。Ubuntu 22.04换成systemd-resolved后,这部分需要手动配置。
备注:内容来源于stack exchange,提问作者baddubbin
相关产品推荐
相关产品推荐

