注:本文内容参考了一篇英文版的帖子,本人整理出了这篇精简过的ubuntu修改DNS地址的方法。如果,您同样也被DNS的问题困扰,您可以把本文作为一个参考.
本文的主要内容:
├── 怎样在 中设置DNS地址?
├──A)在上(服务器版)设置DNS的方法:
│ ├── 查看当前的DNS地址
├──B)在上(桌面版)设置DNS的方法:
└──C)让来自动帮助您配置最佳DNS地址的方法:
怎样在 中设置DNS地址?
这里的主要内容,参考了一篇英文帖子。................想要查看一下英文原帖(请点击这里).
原帖介绍了如何在服务器版Ubuntu 18.04或桌面版buntu 18.04上面设置DNS的方法。
这里稍作改动,内容如下:
如果,您是一名Ubuntu系统的用户,了解一下,在Ubuntu中,如何设置DNS地址,是一件很重要的情,因为它切实地关系着我们的网速。
想要在Ubuntu18.04上面设置DNS地址,具体也要看您是使用哪种版本Ubuntu。不同版本的系统,设置的方法也不相同。B)在上(桌面版)设置DNS的方法:
如果您在使用是服务器版的Ubuntu18.04,就需要将DNS地址添加到对应网卡DNS的配的文件里面;桌面版的Ubuntu18.04用户,只需要使用NetworkManager图形配置工具,就可以直接进行DNS地址的设置了。
A)在上(服务器版)设置DNS的方法:
步骤一,找到您主机的网卡DNS的配置文件
我们需要将DNS地址添加到对应某个网卡的DNS的配置文件中。这个文件在 /etc/netplan目录中,具体是哪个文件,我们就要先来查看一下。
查看方法是,在终端输入:
sudo ls -l /etc/netplan/
也可以不加sudo 。
下图是原帖的输出结果:
原帖作者的这个输出结果,说明在他的主机内,对应网卡的配置文件就是: 50-cloud-init.yaml 或者是01-netcfg.yaml
需要注意的是,每个人的系统情况不同,这个网卡的DNS配置文件的名字也不同,比如,中文论坛的老版主让新装的虚拟机里,查到的是 01-network-manager-all.yaml,那么,他的网卡的配置文件就是: 01-network-manager-all.yaml。而您的的网卡的配置文件,可能和他们还不一样,或者,您的是01-netcfg.yaml
而本人的主机里面,根本就没有这个文件。下图是本人在主机里面查找这个文件的结果:
我们找到了自己系统内网卡的DNS配置文件,还需要查看一下自己的网卡。
步骤二,找到您的主机网卡
查看网卡方法是,在终端输入:
ifconfig
下图是本人的网卡情况:
注意,每个人的系统主机不同,网卡的名字也不同,像是原帖的作者,他的有线网卡名字是:enp0s3 ,本人的确是 enp0s25。
找到了网卡DNS的配置文件,知道了网卡名,我们就来修改网卡DNS的配置文件吧!
步骤三,修改网卡DNS的配置文件
在终端输入:
sudo gedit /etc/netplan/50-cloud-init.yaml
注意:这个命令里面,打开是原作者查到的 50-cloud-init.yaml 。
50-cloud-init.yaml 这段,要填入您刚刚查到的、您自己主机内的网卡DNS配置文件的名字,如,中文论坛的老版主的网卡配置文件是: 01-network-manager-all.yaml,他就要在终端内输入如下命令:
sudo gedit /etc/netplan/01-network-manager-all.yaml
修改的内容的具体位置,如下图:
这是英文原帖作者的网卡DNS的配置文件,本人主机里没有这个文件,原作者在他自己的网卡的配置文件中,填加了如下的内容:
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
他是用了谷歌的DNS服务器地址,您可以根据您自己的实际情况填加,比如:
首选:114.114.114.114 备选:114.114.114.115
个人建议,最好是找出离您家最近的DNS地址来添加。比如,您住在深圳,您就可以直接设置成深圳的DNS地址。
深圳市(中国电信)首选DNS:202.96.128.166 备份DNS:202.96.134.133
关于各地区的公共DNS服务器地址,您到网上搜一搜,基本上都可以在网上查到。
另外, 在addresses: [8.8.8.8, 8.8.4.4]这段内容里面,可以添加多个DNS地址,要注意的是,需要在每个DNS之间,要加一个逗号来分隔。
修改完网卡配置文件之后,请您保存一下。接着,需要:
步骤四,使用netplan apply命令重新加载配置
在终端输入:
sudo netplan apply
在18.04之前的ubuntu版本之中,网卡的DNS配置文件,是在/etc/network/interfaces之中。
查看当前的DNS地址
要检查您当前使用的DNS,如果,您是使用的是静态IP地址,可以检查Netplan配置文件。
如果,您没有固定IP地址,可以在终端运行systemd resolve命令来查看:
systemd-resolve --status
下图是英文原作者的查看结果:
B)在上(桌面版)设置DNS的方法:
桌面版的Ubuntu18.04 含有NetworkManager应用,桌面版的Ubuntu18.04 要设置DNS地址,可以通过图形用户界面进行编辑。
只需要您用鼠标点击顶栏的左上角,并打开,就可以直接设置DNS地址了。
如下图:
您点击一下“IPV4”选项卡(或“IPv6”)在“DNS”字段下添加上您要加入的DNS的IP地址
如果不想从DHCP服务器自动获取DNS配置,请去掉 Automatic (DHCP)前面的点。
更改完成之后,您需要重新启动一下您的网络,以便应用新的DNS设置。
在16.04(包含Ubuntu16.04)以前的ubuntu版本上,用于配置DNS地址的是/etc/resolv.conf文件。在Ubuntu 18.04里,这个/resolv.conf文件仍然存在,但它已经不再是你配置DNS地址的地方了。
以上内容,来自来中文论坛的老版主推荐的一篇英文帖子。
对于那些在 /etc/netplan目录中,没有网卡配置文件xxx.yaml的用户。以及,已经禁用了NetworkManager 的用户,可以考虑下面的方法。(这个方法,也绝不单单是这两种用户才可以使用。)
C)让来自动帮助您配置最佳DNS地址的方法:
用Unbound这款应用来替换掉systemd-resolvd,让Unbound来接替NetworkManage帮您自动配置出最佳的DNS地址,顺便彻底脱离127.0.0.53。
Unbound是一个缓存DNS解析器,unbound是Red Hat(红帽)公司推荐的DNS软件........
具体步骤如下:
步骤一, 下载unbound_1.6.7-1ubuntu2.3_amd64.deb
Unbound主页(点这里).这个是外网的链接,较卡,并且没有DED包,推荐您,
从国内的阿里源内直接下载unbound的DED安装包:
点这里从阿里源内直接下载
或者:复制链接:http://mirrors.aliyun.com/ubuntu/pool/universe/u/unbound/unbound_1.6.7-1ubuntu2.3_amd64.deb
步骤二,停止systemd-resolvd
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
步骤三,安装unbound
sudo dpkg -i unbound_1.6.7-1ubuntu2.3_amd64.deb
步骤四,清空(rm -r) fresolv.conf的内容:
sudo rm -rf /etc/resolv.conf
步骤五,将dns服务替换为unbound:
sudo gedit /etc/NetworkManager/NetworkManager.conf
在[main]
下面添加
dns=unbound,如图:
然后,保存。这时候,重启您的电脑。如果,您以后还想要自行手动设定DNS地址,要先把这里改回去,手动设定DNS地址的方法,参考本文目录A)的内容。
此时,您系统内的/etc/resolv.conf文件里面,已经不再会是nameserver 127.0.0.53,也不是nameserver 8.8.8.8 ,更不是nameserver 114.114.114.114 。
那么,将dns服务替换为unbound之后,/etc/resolv.conf里的内容,究竟是什么?
您可以打开终端,输入如下命令查看:
cat /etc/resolv.conf
(cat 的后面有一个空格)
您会发现,此时的resolv.conf里面,已经unbound根据您的网络实际情况,自动设置的DNS。
比如,本人的DNS就是unbound自动获取的本地局域网DNS。
本人的resolv.conf内容,如下:
Generated by NetworkManager
nameserver 192.168.18.1
这是一个不规范的DNS局域网服务器地址,但,这个就是unbound给本人的主机找出,并设置为默认的最适合本人这里网络条件的DNS地址。
另外,当您以后禁用Unbound时,系统还是会给您自动加上一个回环地址,这次不再是127.0.0.53 ,而是另一个 127.0.0.1,这样也算是干掉了127.0.0.53吧!
ubuntu自带的NetworkManager 也好,Unbound也好,他们都会为您的系统自动配置DNS,只不过是当您禁用了它们以后,各自重新为您的系统留下一个DNS回环地址。
如果,您不能正确手动固定您的IP地址,不能正确设置您的DNS,就不要轻易地去禁用NetworkManage或Unbound。
在您禁用了NetworkManage或Unbound以后,它们在您的系统里面遗留下来的127.0.0.53或者是127.0.0.1这样的回环DNS。恰恰是您上网慢的一个主要原因。
正确设置DNS,或固定IP的方法,参看本文上面内容A)。
在18.04之前的ubuntu版本或其它的ubuntu衍生版,如linux-lite之中,网卡的DNS配置文件,是在/etc/network/interfaces之中。
、、