注:本文內(nèi)容參考了一篇英文版的帖子,本人整理出了這篇精簡過的ubuntu修改DNS地址的方法。如果,您同樣也被DNS的問題困擾,您可以把本文作為一個參考.
本文的主要內(nèi)容:
├── 怎樣在中設(shè)置DNS地址?
├──A)在上(服務(wù)器版)設(shè)置DNS的方法:
│ ├── 查看當(dāng)前的DNS地址
├──B)在上(桌面版)設(shè)置DNS的方法:
└──C)讓來自動幫助您配置最佳DNS地址的方法:
怎樣在
中設(shè)置DNS地址?
這里的主要內(nèi)容,參考了一篇英文帖子。................想要查看一下英文原帖(請點擊這里).

原帖介紹了如何在服務(wù)器版Ubuntu 18.04或桌面版buntu 18.04上面設(shè)置DNS的方法。
這里稍作改動,內(nèi)容如下:
如果,您是一名Ubuntu系統(tǒng)的用戶,了解一下,在Ubuntu中,如何設(shè)置DNS地址,是一件很重要的情,因為它切實地關(guān)系著我們的網(wǎng)速。
想要在Ubuntu18.04上面設(shè)置DNS地址,具體也要看您是使用哪種版本Ubuntu。不同版本的系統(tǒng),設(shè)置的方法也不相同。B)在上(桌面版)設(shè)置DNS的方法:
如果您在使用是服務(wù)器版的Ubuntu18.04,就需要將DNS地址添加到對應(yīng)網(wǎng)卡DNS的配的文件里面;桌面版的Ubuntu18.04用戶,只需要使用NetworkManager圖形配置工具,就可以直接進行DNS地址的設(shè)置了。
A)在
上(服務(wù)器版)設(shè)置DNS的方法:
步驟一,找到您主機的網(wǎng)卡DNS的配置文件
我們需要將DNS地址添加到對應(yīng)某個網(wǎng)卡的DNS的配置文件中。這個文件在 /etc/netplan目錄中,具體是哪個文件,我們就要先來查看一下。
查看方法是,在終端輸入:
sudo ls -l /etc/netplan/
也可以不加sudo 。
下圖是原帖的輸出結(jié)果:

原帖作者的這個輸出結(jié)果,說明在他的主機內(nèi),對應(yīng)網(wǎng)卡的配置文件就是: 50-cloud-init.yaml 或者是01-netcfg.yaml
需要注意的是,每個人的系統(tǒng)情況不同,這個網(wǎng)卡的DNS配置文件的名字也不同,比如,中文論壇的老版主讓
新裝的虛擬機里,查到的是 01-network-manager-all.yaml,那么,他的網(wǎng)卡的配置文件就是: 01-network-manager-all.yaml。而您的的網(wǎng)卡的配置文件,可能和他們還不一樣,或者,您的是01-netcfg.yaml
而本人的主機里面,根本就沒有這個文件。下圖是本人在主機里面查找這個文件的結(jié)果:

我們找到了自己系統(tǒng)內(nèi)網(wǎng)卡的DNS配置文件,還需要查看一下自己的網(wǎng)卡。
步驟二,找到您的主機網(wǎng)卡
查看網(wǎng)卡方法是,在終端輸入:
ifconfig
下圖是本人的網(wǎng)卡情況:

注意,每個人的系統(tǒng)主機不同,網(wǎng)卡的名字也不同,像是原帖的作者,他的有線網(wǎng)卡名字是:enp0s3 ,本人的確是 enp0s25。
找到了網(wǎng)卡DNS的配置文件,知道了網(wǎng)卡名,我們就來修改網(wǎng)卡DNS的配置文件吧!
步驟三,修改網(wǎng)卡DNS的配置文件
在終端輸入:
sudo gedit /etc/netplan/50-cloud-init.yaml
注意:這個命令里面,打開是原作者查到的 50-cloud-init.yaml 。
50-cloud-init.yaml 這段,要填入您剛剛查到的、您自己主機內(nèi)的網(wǎng)卡DNS配置文件的名字,如,中文論壇的老版主
的網(wǎng)卡配置文件是: 01-network-manager-all.yaml,他就要在終端內(nèi)輸入如下命令:
sudo gedit /etc/netplan/01-network-manager-all.yaml
修改的內(nèi)容的具體位置,如下圖:

這是英文原帖作者的網(wǎng)卡DNS的配置文件,本人主機里沒有這個文件,原作者在他自己的網(wǎng)卡的配置文件中,填加了如下的內(nèi)容:
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
他是用了谷歌的DNS服務(wù)器地址,您可以根據(jù)您自己的實際情況填加,比如:
首選:114.114.114.114 備選:114.114.114.115
個人建議,最好是找出離您家最近的DNS地址來添加。比如,您住在深圳,您就可以直接設(shè)置成深圳的DNS地址。
深圳市(中國電信)首選DNS:202.96.128.166 備份DNS:202.96.134.133
關(guān)于各地區(qū)的公共DNS服務(wù)器地址,您到網(wǎng)上搜一搜,基本上都可以在網(wǎng)上查到。
另外, 在addresses: [8.8.8.8, 8.8.4.4]這段內(nèi)容里面,可以添加多個DNS地址,要注意的是,需要在每個DNS之間,要加一個逗號來分隔。
修改完網(wǎng)卡配置文件之后,請您保存一下。接著,需要:
步驟四,使用netplan apply命令重新加載配置
在終端輸入:
sudo netplan apply
在18.04之前的ubuntu版本之中,網(wǎng)卡的DNS配置文件,是在/etc/network/interfaces之中。
查看當(dāng)前的DNS地址
要檢查您當(dāng)前使用的DNS,如果,您是使用的是靜態(tài)IP地址,可以檢查Netplan配置文件。
如果,您沒有固定IP地址,可以在終端運行systemd resolve命令來查看:
systemd-resolve --status
下圖是英文原作者的查看結(jié)果:

B)在
上(桌面版)設(shè)置DNS的方法:
桌面版的Ubuntu18.04 含有NetworkManager應(yīng)用,桌面版的Ubuntu18.04 要設(shè)置DNS地址,可以通過圖形用戶界面進行編輯。
只需要您用鼠標(biāo)點擊頂欄的左上角,并打開,就可以直接設(shè)置DNS地址了。
如下圖:

您點擊一下“IPV4”選項卡(或“IPv6”)在“DNS”字段下添加上您要加入的DNS的IP地址
如果不想從DHCP服務(wù)器自動獲取DNS配置,請去掉 Automatic (DHCP)前面的點。

更改完成之后,您需要重新啟動一下您的網(wǎng)絡(luò),以便應(yīng)用新的DNS設(shè)置。
在16.04(包含Ubuntu16.04)以前的ubuntu版本上,用于配置DNS地址的是/etc/resolv.conf文件。在Ubuntu 18.04里,這個/resolv.conf文件仍然存在,但它已經(jīng)不再是你配置DNS地址的地方了。
以上內(nèi)容,來自來中文論壇的老版主
推薦的一篇英文帖子。
對于那些在 /etc/netplan目錄中,沒有網(wǎng)卡配置文件xxx.yaml的用戶。以及,已經(jīng)禁用了NetworkManager 的用戶,可以考慮下面的方法。(這個方法,也絕不單單是這兩種用戶才可以使用。)
Unbound

C)讓
來自動幫助您配置最佳DNS地址的方法:
用Unbound這款應(yīng)用來替換掉systemd-resolvd,讓Unbound來接替NetworkManage幫您自動配置出最佳的DNS地址,順便徹底脫離127.0.0.53。
Unbound是一個緩存DNS解析器,unbound是Red Hat(紅帽)公司推薦的DNS軟件........
具體步驟如下:
步驟一, 下載unbound_1.6.7-1ubuntu2.3_amd64.deb
Unbound主頁(點這里).這個是外網(wǎng)的鏈接,較卡,并且沒有DED包,推薦您,
從國內(nèi)的阿里源內(nèi)直接下載unbound的DED安裝包:
點這里從阿里源內(nèi)直接下載
或者:復(fù)制鏈接: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的內(nèi)容:
sudo rm -rf /etc/resolv.conf
步驟五,將dns服務(wù)替換為unbound:
sudo gedit /etc/NetworkManager/NetworkManager.conf
在[main]
下面添加
dns=unbound,如圖:

然后,保存。這時候,重啟您的電腦。如果,您以后還想要自行手動設(shè)定DNS地址,要先把這里改回去,手動設(shè)定DNS地址的方法,參考本文目錄A)的內(nèi)容。
此時,您系統(tǒng)內(nèi)的/etc/resolv.conf文件里面,已經(jīng)不再會是nameserver 127.0.0.53,也不是nameserver 8.8.8.8 ,更不是nameserver 114.114.114.114 。
那么,將dns服務(wù)替換為unbound之后,/etc/resolv.conf里的內(nèi)容,究竟是什么?
您可以打開終端,輸入如下命令查看:
cat /etc/resolv.conf
(cat 的后面有一個空格)
您會發(fā)現(xiàn),此時的resolv.conf里面,已經(jīng)unbound根據(jù)您的網(wǎng)絡(luò)實際情況,自動設(shè)置的DNS。
比如,本人的DNS就是unbound自動獲取的本地局域網(wǎng)DNS。
本人的resolv.conf內(nèi)容,如下:
Generated by NetworkManager
nameserver 192.168.18.1
這是一個不規(guī)范的DNS局域網(wǎng)服務(wù)器地址,但,這個就是unbound給本人的主機找出,并設(shè)置為默認的最適合本人這里網(wǎng)絡(luò)條件的DNS地址。
另外,當(dāng)您以后禁用Unbound時,系統(tǒng)還是會給您自動加上一個回環(huán)地址,這次不再是127.0.0.53 ,而是另一個 127.0.0.1,這樣也算是干掉了127.0.0.53吧!
ubuntu自帶的NetworkManager 也好,Unbound也好,他們都會為您的系統(tǒng)自動配置DNS,只不過是當(dāng)您禁用了它們以后,各自重新為您的系統(tǒng)留下一個DNS回環(huán)地址。
如果,您不能正確手動固定您的IP地址,不能正確設(shè)置您的DNS,就不要輕易地去禁用NetworkManage或Unbound。
在您禁用了NetworkManage或Unbound以后,它們在您的系統(tǒng)里面遺留下來的127.0.0.53或者是127.0.0.1這樣的回環(huán)DNS。恰恰是您上網(wǎng)慢的一個主要原因。
正確設(shè)置DNS,或固定IP的方法,參看本文上面內(nèi)容A)。
在18.04之前的ubuntu版本或其它的ubuntu衍生版,如linux-lite之中,網(wǎng)卡的DNS配置文件,是在/etc/network/interfaces之中。
、、