You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 06:43:11