前言

在 Ubuntu 16.04 以上的作業系統,有時候會發生 DNS 跑掉的情況,而從/etc/resolv.conf更改後,雖可以正常使用,但重開機後又回跳回原本的設定,原因是因為此檔案會被 systemd-resolvd自動修改,所以本篇將介紹兩種正確的設定 DNS 的方式。


方法一:修改 systemd-resolv

編輯 resolved.conf

編輯 /etc/systemd/resolved.conf,在 DNS=欄位中輸入慣用的 dns server

1
sudo vim /etc/systemd/resolved.conf
1
2
3
4
5
6
7
8
9
[Resolve]
DNS=8.8.8.8 8.8.4.4
#FallbackDNS=
#Domains=
LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

重啟服務

1
2
3
sudo systemctl daemon-reload
sudo systemctl restart systemd-networkd
sudo systemctl restart systemd-resolved

方法二:使用 resolvconf 軟體

下載套件

1
2
sudo apt-get update
sudo apt-get install resolvconf

編輯 head

編輯 /etc/resolvconf/resolv.conf.d/head,輸入慣用的 dns server

1
sudo vim /etc/resolvconf/resolv.conf.d/head
1
2
nameserver 8.8.8.8
nameserver 8.8.4.4

重啟服務

1
sudo service resolvconf restart