简介
Linux 下负责配置 DNS 服务器是在/etc/resolv.conf
文件中,但是修改它重启就会失效
Ubuntu 使用 netplan 配置 DNS 也是无法生效
查看 /etc/resolv.conf
文件,它是一个软链接,指向 /run/systemd/resolve/resolv.conf
原因是它是由 systemd-resoved
服务接管自动配置
按理说 netplan 设置也会生效,为何不生效?
经我测试,netplan 设置后确实生效,/run/systemd/resolve/resolv.conf
的内容被修改了,但是,/etc/resolv.conf
虽然是一个软链接到 /run/systemd/resolve/resolv.conf
,但还是原来的内容。说明这个软链接是个假的软链接。
解决办法就是删除 /etc/resolv.conf
,重新创建它,指向/run/systemd/resolve/resolv.conf
1
|
sudo rm -rf /etc/resolv.conf
|
1
|
sudo ln -s /run/systemd/resolve/resolv.conf /etc/
|
DNS 配置
根据前文所说,有两种方式配置 DNS,
- 一种是修改 netplan 配置
- 一种是修改
/etc/systemd/resolved.conf
二选其一即可,推荐修改 netplan 配置
方式一
修改 netplan 配置,50-cloud-init.yaml 为配置文件,你的可能不一样
1
|
sudo vim /etc/netplan/50-cloud-init.yaml
|
在 配置文件中指定 DNS 服务器
1
2
3
4
5
6
7
8
9
10
|
network:
ethernets:
enp0s3:
dhcp4: true
nameservers:
addresses: [223.5.5.5,8.8.8.8] #dns
enp0s8:
dhcp4: false
addresses: [192.168.56.102/24]
version: 2
|
应用配置
查看 /run/systemd/resolve/resolv.conf
中的内容
1
|
sudo cat /run/systemd/resolve/resolv.conf
|
如下
1
2
3
4
5
6
7
|
nameserver 223.5.5.5
nameserver 8.8.8.8
nameserver 10.0.2.3
# Too many DNS servers configured, the following entries may be ignored.
nameserver fd00::3
nameserver 192.168.56.1
search lan
|
方式二
修改 /etc/systemd/resolved.conf
1
|
sudo vim /etc/systemd/resolved.conf
|
在 配置文件中指定 DNS 服务器
1
2
3
4
5
6
|
[Resolve]
# Some examples of DNS servers which may be used for DNS= and FallbackDNS=:
# Cloudflare: 1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com
# Google: 8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
# Quad9: 9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net
DNS=223.5.5.5 8.8.8.8
|
保存退出,重启 systemd-resolved,
1
|
sudo systemctl restart systemd-resolved
|
查看 /run/systemd/resolve/resolv.conf
中的内容
1
|
sudo cat /run/systemd/resolve/resolv.conf
|
如下
1
2
3
4
5
6
7
|
nameserver 223.5.5.5
nameserver 8.8.8.8
nameserver 10.0.2.3
# Too many DNS servers configured, the following entries may be ignored.
nameserver fd00::3
nameserver 192.168.56.1
search lan
|