1. 问题的发现

最早出现这个问题是我想要用 apt 安装 ccls 的时候出现的,即执行指令 sudo apt-get install cclssudo apt install ccls 时出现报错:Temporary failure resolving 'archive.ubuntu.com'

我们知道,出现这种报错信息大概率就是网络包管理器在提示用户没法正常从那个网站下载。首先大家需要检查一下自己的网卡是否配置正常。这一步通过在浏览器中打开百度即可实现。因此接下来我们假设虚拟机本身的网络没有问题。这时我们在终端中进行排查:输入ping www.baidu.com ,像小编当时就发现问题出在这里:DNS 没有配置。通常情况下,问题都是出在这里的。

2. 问题的解决(下面这一个 Section 可以先不要动手实践,真正的解决方案在后面)

那么接下来就要具体解决这一问题了。我们按 Ctrl+Alt+T 进入终端,编辑这个配置文件:vi /etc/resolv.conf

ubuntu temp_linux


我们会发现,文件似乎是没有更改权限的(如果可以修改请跳过),因此还需要更改文件权限:

sudo chmod 777 /etc/resolv.conf。接下来就可修改文件内容为:

ubuntu temp_DNS_02


之后再下载便不会出错了。

然而,这一方法治标不治本。每次重启后这个文件就会被覆盖重写。

那么,难道要修改系统不能写这个文件吗?显然是不现实的。

3. 目前找到的最为靠谱的方法

使用 apt 安装 resolvconf

sudo apt-get install resolvconf

然后进入它的文件夹:

cd /etc/resolvconf/resolv.conf.d/

ls 查看目录后输出:

base  head  original  tail

修改 base 权限:

sudo chmod 777 base

进入后空空如也:

ubuntu temp_DNS_03


添加这样几行:

nameserver 114.114.114.114
nameserver 114.114.115.115

之后 :wq 退出,进一步防止文件被系统修改(这边因为用的是 resolvconf 包,所以是可以的):

sudo resolvconf -u

接下来就大功告成啦!重启试一下:

ubuntu temp_ubuntu_04


可见我们的更改被保存了!