Ubuntu 18.04 修改设置 DNS 并生效的方法

已关闭留言

之前升级系统的时候发现突然就 DNS 失效了,于是网上找了一些修改 DNS 的方法,发现很多方法修改之后都不生效,而且不管怎么改最后都会被改成 127.0.0.53 这个 DNS 地址。于是几经搜索之后终于找到一个可行的方法,本文做个记录。

检查 /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 服务即可:

systemctl restart systemd-resolved.service

另一种更简单的办法是,我们直接停掉 systemd-resolved 服务,这样再修改 /etc/resolve.conf 就可以一直生效了。

查看结果:

systemd-resolve --status

参考:

  • https://www.cnblogs.com/breezey/p/9155988.html
  • https://cloud.tencent.com/developer/article/1830976