(转) Ubuntu修改设置 DNS 并生效的方法

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

原文:https://zhuanlan.zhihu.com/p/531974441

之前升级系统的时候发现突然就 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

相关文章