最近使用了最新版的ubuntu 18.04運行一些服務,然后發現服務器經常出現網絡不通的情況,主要是一些域名無法解析。
檢查/etc/resolv.conf,發現之前修改的nameserver總是會被修改為127.0.0.53,無論是改成啥,過段時間,總會變回來。
查看/etc/resolv.conf這個文件的注釋,發現開頭就寫着這么一行:
# This file is managed by man:systemd-resolved(8). Do not edit.
這說明這個文件是被systemd-resolved
這個服務托管的。
通過netstat -tnpl| grep systemd-resolved
查看到這個服務是監聽在53號端口上。
查了下,這個服務的配置文件為/etc/systemd/resolved.conf
,大致內容如下:
[Resolve] DNS=1.1.1.1 1.0.0.1 #FallbackDNS= #Domains= LLMNR=no #MulticastDNS=no #DNSSEC=no #Cache=yes #DNSStubListener=yes
如果我們要想讓/etc/resolve.conf
文件里的配置生效,需要添加到systemd-resolved的這個配置文件里DNS
配置項(如上面的示例,已經完成修改),然后重啟systemd-resolved服務即可。
另一種更簡單的辦法是,我們直接停掉systemd-resolved服務,這樣再修改/etc/resolve.conf
就可以一直生效了。