第一、永久修改DNS方法
1、修改 /etc/systemd/resolved.conf 文件
vi /etc/systemd/resolved.conf
这里我们可以看到这些参数:
# 指定 DNS 服务器,以空白分隔,支持 IPv4 或 IPv6 位置
DNS=8.8.8.8 114.114.115.115
# 备用 DNS 服务器
FallbackDNS=8.8.8.8
# 设置搜索域名
Domains=domain.com
# 设置 LLMNR 是否激活,可用的选项有 yes、no、resolve
LLMNR=yes
# 设置 MulticastDNS 是否激活,可用的选项有 yes、no、resolve
MulticastDNS=yes
# 设置 DNSSEC 是否激活,可用的选项有 yes、no、allow-downgrade
DNSSEC=yes
# 设置缓存是否激活,可用的选项有 yes、no、no-negative
Cache=no-negative
根据需要修改 resolved.conf 文件中的DNS,然后保存。
2、重启 systemd-resolved 服务
systemctl restart systemd-resolved
3、设置开机启动 systemd-resolved 服务
systemctl enable systemd-resolved
4、备份 systemd-resolved 托管文件 resolv.conf
mv /etc/resolv.conf /etc/resolv.conf.bak
重新生成。
ln -s /run/systemd/resolve/resolv.conf /etc/
第二、临时修改DNS方法
如果我们临时使用的话,也可以临时修改DNS。
修改下面文件:
vi /etc/resolv.conf
加入想要修改的DNS
nameserver 8.8.8.8
nameserver 8.8.4.4
如果多个DNS,就一行一个,修改之后保存退出即可;此方法修改后即刻生效,但重启后失效。
第三 永久教程
通常我们知道,修改dns的几个途径
- /etc/resolv.conf
- /etc/netplan/01-netcfg.yaml
修改上面两个文件,一般情况下,可以解决,但是在一次使用新安装的ubuntu22.04的时候,发现,无论怎么修改,dig解析域名都是往127.0.0.53发送,哪怕在缓存中的已经生效
如何查看缓存中生效的配置呢cat /run/systemd/resolve/resolv.conf
解决方法
需要删掉或者修改 /etc/resolv.conf 文件名
先修改dns配置vim /etc/systemd/resolved.conf [Resolve] DNS=223.6.6.6 114.114.114.114
删除或者修改文件名mv /etc/resolv.conf /etc/resolv.conf.bak
将 /etc/systemd/resolved.conf 新建快捷方式为 /etc/resolv.confln -s /run/systemd/resolve/resolv.conf /etc/
最后重启网络systemctl restart systemd-resolved systemctl restart NetworkManager