You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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.xx10.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

火山引擎 最新活动