Ubuntu22.04修改DNS

简介

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

应用配置

1
sudo netplan apply

查看 /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
页面浏览量Loading
网站总访客数:Loading
网站总访问量:Loading
使用 Hugo 构建
主题 StackJimmy 设计
-->