Ubuntu 18.04 永久修改DNS的方法

1.問題背景

      發現每次在/etc/resolv.conf 修改DNS之後,重啓服務器DNS就會重置爲原始127.0.0.53。

2.解決過程

查看 /etc/resolv.conf文件發現如下:

 

 

於是查找systemd-resolve相關資料《systemd-resolved.service 中文手冊

結果如下:

systemd-resolved 爲本地應用程序提供了網絡名字解析服務。 它不但提供了傳統的 DNS/DNSSEC 解析與本地緩存功能,還提供了 LLMNR 與 MulticastDNS 的解析(resolver)與應答(responder)的功能。 本地應用程序可以通過三種方式提交網絡名字解析請求:

  • 第一種,通過D-Bus總線上的本地全功能API systemd-resolved (詳見 API Documentation)。 這是首選方法,因爲它是異步的並且功能最全。 此種方式可以正確返回 DNSSEC 的有效狀態,以及支持 link-local 網絡所必需的地址的網口範圍(interface scope)。

  • 第二種,通過 glibc 的 getaddrinfo(3)gethostbyname(3) 等相關API(RFC3493)。 這些API受到了廣泛的支持(包括非Linux平臺)。此種方法不能檢查 DNSSEC 的有效狀態,並且是同步的。 此種方法由 glibc Name Service Switch (nss(5)) 支持。 必須使用 glibc NSS 模塊 nss-resolve(8) 才能讓 glibc NSS 使用 systemd-resolved 提供的名字解析功能。

  • 第三種,通過 systemd-resolved 在本地迴環網口 127.0.0.53 上提供的本地DNS服務器。 應用程序可以直接向 127.0.0.53 發送DNS請求,從而直接使用 systemd-resolved 提供的解析服務。 除非確實無法使用前面的 glibc NSS 或 D-Bus API 兩種方法, 否則應該儘量避免使用此種方式, 因爲無法將各種網絡解析功能(例如 link-local 地址或 LLMNR Unicode 域名)全部映射到 單播DNS協議中。

DNS服務器來自於 全局配置文件(/etc/systemd/resolved.conf)、 針對單個連接的靜態配置文件(/etc/systemd/network/*.network)(當使用 systemd-networkd.service(8) 管理網絡時)、 針對單個連接的動態配置(從DHCP服務器、resolvectl(1)、其他系統服務得到的DNS服務器)。參見 resolved.conf(5) 與 systemd.network(5) 以瞭解 systemd 自身的DNS服務器配置。爲了提高兼容性, 僅在 /etc/resolv.conf 不是一個 指向 /run/systemd/resolve/stub-resolv.conf/usr/lib/systemd/resolv.conf/run/systemd/resolve/resolv.conf 之一的軟連接 的情況下,纔會從 /etc/resolv.conf 讀取 全局DNS服務器。

於是:

 

 

顯然與上面的第二種情況類似,也就是說resolv.conf 現在歸systemd管,果然找到了/etc/systemd/resolved.conf 文件:

而裏面也有我想找的DNS

3.解決方法

sudo vim /etc/systemd/resolved.conf

 

然後修改DNS,例如:

 

[Resolve]
DNS=114.114.114.114
DNS=8.8.8.8
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes


然後

systemctl restart systemd-resolved.service

查看結果:

$ systemd-resolve --status
Global
DNS Servers: 114.114.114.114
8.8.8.8
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa

  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章