安装了虚拟机,发现不能
ping 域名
,如
ping qq.com
,提示
Temporary failure in name resolution
。但可以 可以 ping ip, 如:
ping 8.8.8.8
。
问题类似于:
【Ubuntu 20.04 server: Temporary failure in name resolution (LAN only)】
文章目录
1、相关尝试
1-1、修改
/etc/netplan/00-installer-config.yaml
文件
/etc/netplan/00-installer-config.yaml
-
修改
sudo vim /etc/netplan/00-installer-config.yaml
文件,新增
nameservers
相关配置(如下图) ,文件名不一定是 00-installer-config.yaml,每一个机器不一样,需要通过
ll /etc/netplan/
命令查看该路径下的文件。
-
修改该文件后,执行
sudo netplan apply
命令,仍不能ping,未能解决问题
1-2、创建配置文件
/etc/resolv.conf
/etc/resolv.conf
-
使用
sudo vim /etc/resolv.conf
,打开文件后,写入后,不能保存 -
使用
sudo touch /etc/resolv.conf
先创建该文件,不能创建
1-3、修改
/etc/systemd/resolved.conf
文件
/etc/systemd/resolved.conf
-
sudo vim /etc/systemd/resolved.conf
命令打开文件,之后修改[Resolve] DNS=8.8.8.8
-
修改完后,重启相关服务,依次执行如下命令
sudo systemctl daemon-reload sudo systemctl restart systemd-networkd.service sudo systemctl restart systemd-resolved.service
-
经过如上设置,之后可以ping,但该方法重启后失效。。。再次执行 sudo systemctl restart systemd-resolved.service, 即可工作。
-
由于为什么这么设置后可以解决
DNS解析问题
,所以有了自己探索过程:-
1、经过测试,发现不用配置
/etc/systemd/resolved.conf
文件,直接键入
sudo systemctl restart systemd-resolved.service
命令,也能工作(不知道是否和
/etc/netplan/00-installer-config.yaml
文件的修改有关) -
2、经过测试,
/etc/netplan/00-installer-config.yaml
文件的修改是否都无关系,重启后,如果不能ping,执行
sudo systemctl restart systemd-resolved.service
命令即可 -
3、查看域名服务器方法中,提到了
cat /etc/resolv.conf
方法,执行该方法,发现有该文件了(但1-2中尝试过自己创建,不能创建)-
此时,其原理大概清楚了,因为重启后,
/etc/resolv.conf
文件被删除了,所以每次重启都需要执行该命令。-
通过如下流程定位,可以确认,
系统重启时,该服务未启动,可以将其加入开机启动项中
(就可实现不用每次重启都需启动的操作)
-
通过如下流程定位,可以确认,
-
此时,其原理大概清楚了,因为重启后,
-
1、经过测试,发现不用配置
2、最终解决方案
执行
sudo systemctl restart systemd-resolved.service
命令。
-
使用
restart
或
start
都可 -
系统重启时,该服务未启动,可以将其加入开机启动项中
(就可实现不用每次重启都需启动的操作)
注:
1、该命令每次都需要重启。
2、可以通过
man systemd-resolved
,或者通过
systemd-resolved.service
了解其详细介绍
3、DNS Server查看方法
refer:
What DNS servers am I using?
查看当前 DNS相关配置(如下命令都可)
-
cat /etc/resolv.conf
-
resolvectl status
-
dig qq.com
, 查看最后几行
4、reference