Ubuntu 22.04配置静态IP后无法通过主机名Ping通服务器(报错Ping: Temporary failure in name resolution)
Ubuntu 22.04配置静态IP后无法通过主机名Ping通服务器(报错Ping: Temporary failure in name resolution)
嘿,我帮你分析下这个问题——能ping通IP但没法用主机名访问,大概率是DNS解析出问题了,结合你给出的netplan配置和报错,咱们一步步来排查:
一、先确认你的DNS配置有没有生效
首先,咱们看看系统实际在用的DNS服务器是不是你配置的那两个:
执行命令:
resolvectl status
或者旧一点的命令:
systemd-resolve --status
在输出里找“DNS Servers”部分,看看是不是显示你写的10.xx.xx.xx和10.xx.xx.11。如果不是,说明配置没生效,咱们先重新应用配置。
二、重新应用netplan配置
有时候修改完配置需要手动触发生效,执行下面的命令:
sudo netplan generate && sudo netplan apply
执行完之后再用上面的命令检查DNS服务器是否正确加载。
三、测试DNS服务器本身能不能解析
如果DNS服务器已经正确加载,但还是没法解析主机名,那得确认这两个DNS服务器本身能不能正常工作:
分别用这两个DNS服务器测试解析目标主机名:
dig @10.xx.xx.xx 你要ping的主机名 dig @10.xx.xx.11 你要ping的主机名
如果这两个命令都返回不了正确的IP,那要么是DNS服务器本身没配置对应主机名的记录,要么是你的服务器和DNS服务器之间的网络有防火墙/ACL限制了DNS请求(UDP 53端口)。
四、检查systemd-resolved服务状态
Ubuntu 22.04默认用systemd-resolved来管理DNS解析,得确保这个服务在正常运行:
执行命令查看状态:
sudo systemctl status systemd-resolved
如果显示“inactive”,就启动它并设置开机自启:
sudo systemctl start systemd-resolved sudo systemctl enable systemd-resolved
另外补充下,你给出的netplan配置格式是对的,nameservers.addresses的写法没问题,主要就是上面这几个排查点。
备注:内容来源于stack exchange,提问作者Tiktak




