李志敏 发表于 2024-9-11 18:08:22

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,大致内容如下:
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
页: [1]
查看完整版本: Ubuntu 18.04 修改设置 DNS 并生效的方法