Ubuntu经常有一大堆的Bug,如显卡驱动、软件包依赖、DNS等问题。今天重点讲一下DNS问题的解决方法。

一、什么是Ubuntu DNS 问题

在使用Ubuntu的过程中,经常会出现以下错误:

ping: XXX.com: 域名解析失败

这是因为Ubuntu默认的DNS偶尔会出BUG。

如果你去“设置”里面改DNS,你会发现:Ubuntu还是用的原来的DNS,重启也没用。

于是,我们只好用更高级的手段来修改DNS了。

网上的很多教程都是没用的,经过一系列探索,我研究出了Ubuntu修改DNS的方法。

二、临时修改DNS

这种方法可以暂时性修改DNS,但是重启之后就实效了。

1. 编辑 /etc/resolv.conf 文件

sudo gedit /etc/resolv.conf

2. 加入以下代码

nameserver 114.114.114.114
nameserver 8.8.8.8

就可以了。114.114.114.114和8.8.8.8可以换成自己喜欢的DNS。

修改完成,保存,立即生效。

三、永久修改DNS

注意到/etc/resolv.conf最上面有这么一行:

DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

说明重启之后这个文件会被自动覆盖。

那怎么防止被覆盖呢?只需要关掉覆盖它的服务就行了。

1. 停用systemd-resolved服务

sudo systemctl disable --now systemd-resolved

2. 修改NetworkManager文件:

sudo gedit /etc/NetworkManager/NetworkManager.conf

3. 在[main] 节点下增加下面的配置:

dns=none

4. 其实resolv.conf不是一个文件,是一个软链接。禁用systemd-resolved之后,软链接就实效了,所以我们需要自己创建一个resolv.conf文件。

cd /etc
sudo mv resolv.conf resolv.conf.bak
sudo touch resolv.conf

5. 按照临时修改的方法修改

6. 重启

reboot

这样的话,即使重启,文件也不会被覆盖。

然后,Ubuntu的DNS BUG就被修复了!

参考资料:Ubuntu 20.04 修改 DNS

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐