Ubuntu发生Temporary failure in name resolution的解决方法
- 首先列出如下有用的参考文档:
解决 Ubuntu 系统中 “Temporary Failure in Name Resolution“ 错误-CSDN博客
How to fix the “Temporary failure in name resolution” Error – Its Linux FOSS
How to fix the “Temporary failure in name resolution” Error – Its Linux FOSS
- 以下是我的解决方案:
- 首先确认网络是否正常连接:终端执行命令:ping 8.8.8.8 ,
如果报错ping: connect: Network is unreachable那就是失败,要打开网络
打开网络执行指令:nmcli networking on
可以执行指令:nmcli networking ,终端打印enabled证明成功打开网络
上述指令执行情况如下图: - 接下来要修改两个文件:
- 文件路径为:
/etc/systemd/resolved.conf 和 /etc/resolv.conf
- 需要往
/etc/resolv.conf文件添加三行代码,有两种方法,用编辑器vim、vscode等打开修改,或者在终端使用命令行指令直接添加,我使用的方法是终端指令直接添加。
/etc/resolv.conf添加如下内容
在终端执行如下代码往:
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "nameserver 8.8.4.4" >> /etc/resolv.conf'
sudo bash -c 'echo "nameserver 127.0.0.1" >> /etc/resolv.conf'
同样要修改/etc/systemd/resolved.conf的内容,改resolved.conf的内容为:
[Resolve]
DNS=8.8.8.8 8.8.4.4 127.0.0.1
要注意127.0.0.1这个名是我打开/etc/hosts文件,里面有这样一行代码:127.0.0.1 localhost ,才确定的,不同人的可能不太一样。
三个文件最后内容如下图: - 可能需要对网络连接进行设置(这一步可能不是必须的),执行如下代码:
nmcli con modipv4.dns "8.8.8.8 8.8.4.4"
nmcli con modipv4.ignore-auto-dns yes
nmcli con up
注意执行之前要把connection_name替换成自己虚拟机对应的,可以执行指令:nmcli con show
执行nmcli con show可能会出现下面的内容:
那么这一串常常的8b91dddd~~~就是我们要的connection-name,执行效果如下: - 然后是重启服务,执行如下语句:
sudo systemctl restart systemd-resolved
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart NetworkManager - 然后就可以试一下ping能不能成功了。
- 文件路径为:
- 首先确认网络是否正常连接:终端执行命令:ping 8.8.8.8 ,