如何在Ubuntu 18.04上配置DNS域名服务器

域名系统(DNS)是网络基础架构的核心部分,提供了一种将域名转换为IP地址的方法。您可以将DNS视为互联网的电话簿。在本指南中,我们将说明如何在Ubuntu 18.04上配置DNS名称服务器(解析器)

6 min read
By myfreax
如何在Ubuntu 18.04上配置DNS域名服务器

域名系统(DNS)是网络基础架构的核心部分,提供了一种将域名转换为IP地址的方法。您可以将DNS视为互联网的电话簿。注意这篇文章不是在服务器上配置自己的DNS服务器。而是给客户端配置DNS的IP地址。

连接到Internet的每个设备均由其IP地址作为唯一标识。当您在浏览器中键入要访问的网站时,其域名必须转换为相应的IP地址。操作系统首先检查其hosts文件中是否存在相应的域,如果该域中不存在hosts文件,它将查询配置的DNS域名服务器以解析指定的域名。域名解析后,系统将缓存请求并保留该域名和相应IP地址的记录。

DNS域名服务器(解析器)是供其他设备用来为请求的域名执行DNS查找的服务器。

通常,DNS服务器由您的ISP分配。但是,这些DNS服务器可能运行缓慢或未定期更新,这可能会导致在查询域时解析为错误的IP地址,或者出现延迟,或者有时您可能根本无法解析所需的域名的IP地址。

有很多免费的公共DNS服务器,这些DNS域名服务器快速,并定期更新。以下是一些最受欢迎的公共DNS服务器:

  • Google(8.8.8.8,8.8.4.4)
  • Cloudflare(1.1.1.1和1.0.0.1)
  • OpenDNS(208.67.222.222,208.67.220.220)
  • Level3(209.244.0.3,209.244.0.4)

在本教程中,将说明如何在Ubuntu 18.04上配置DNS域名服务器(解析器)。此教程同样适用与Ubuntu 20.04。包括在使用gnome桌面环境的DNS地址配置,在Ubuntu服务器上设置DNS域名服务器。还说明了/etc/resolv.conf,systemd-resolved服务和Netplan之间的关系。

如果要为连接到本地网络的所有设备设置DNS域名服务器,那么最简单和建议的方法是在家庭路由器上进行更改。

在Ubuntu桌面上设置DNS域名服务器

在Ubuntu 18.04台式计算机上设置DNS域名服务器非常简单,不需要任何技术知识。

  1. 启动“设置”窗口。
  2. 如果您连接到WiFi网络,请单击“ Wi-FI”标签。否则,如果您有有线连接,请单击“网络”选项卡。
  3. 选择要为其设置DNS域名服务器的连接,然后单击齿轮图标以打开网络管理器。
  4. 选择“IPv4设置”选项卡。
  5. 禁用“自动”切换开关,然后输入DNS域名服务器IP地址,以逗号分隔。我们将使用Google DNS域名服务器。

点击“应用”按钮以保存更改。更改立即生效,除非您的系统或应用程序缓存了DNS记录。如果要切换回原来的设置,请打开网络管理器,转到“IPv4设置”并启用“自动”切换开关。

在Ubuntu服务器上设置DNS域名服务器

过去,每当您想在Linux中配置DNS域名服务器时,只需打开/etc/resolv.conf文件,编辑条目,保存文件,就可以了。该文件仍然存在,但它是由systemd-resolved服务控制的符号链接symlink,不应手动对其进行编辑。

systemd-resolved是一项为本地服务和应用程序提供DNS名称解析的服务,可以使用Netplan(Ubuntu 18.04上的默认网络管理工具)进行配置。

Netplan配置文件存储在/etc/netplan目录中。您可能会在此目录中找到一个或两个YAML文件。各个安装程序的文件名可能不同。通常,该文件名为01-netcfg.yaml50-cloud-init.yaml,但在您的系统中,可能会有所不同。

这些文件使您可以配置网络接口(网卡),包括IP地址,网关,DNS域名服务器等。要配置DNS域名服务器,请使用你喜欢的文本编辑器,我们推荐使用vim打开接口配置文件:

sudo vim /etc/netplan/01-netcfg.yaml

文件的内容如下所示:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses:
        - 192.168.121.199/24
      gateway4: 192.168.121.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]
/etc/netplan/01-netcfg.yaml

要配置网卡接口的DNS域名服务器,请使用您的首选DNS服务器更改当前IP地址。例如,如果您想使用Cloudflare的DNS服务器,则可以将nameservers的addresses行更改为:

      nameservers:
          addresses: [1.1.1.1, 1.0.0.1]

DNS服务器IP地址必须用逗号分隔。您还可以添加两个以上的域名服务器。如果该nameservers字段不存在,请将其添加到gateway4名称字段名称下。编辑Yaml文件时,请确保您遵循YAML代码缩进标准。如果配置中存在语法错误,Netplan将无法解析该文件。完成后,保存文件并执行以下命令应用更改:

sudo netplan apply

Netplan将为systemd-resolved的服务生成配置文件。要验证是否设置了新的DNS解析器,请运行以下命令:

systemd-resolve --status | grep 'DNS Servers' -A2

systemd-resolve -status打印很多信息。我们使用grep来过滤“DNS Servers”字符串。输出将如下所示:

         DNS Servers: 1.1.1.1
                      1.0.0.1

结论

Netplan是Ubuntu 18.04上的默认网络管理工具,替代了先前Ubuntu版本中用于配置网络的/etc/resolv.conf/etc/network/interfaces配置文件。

如何在Ubuntu 18.04或20.04上设置自定义DNS服务器 | myfreax
在本文中我们将说明怎么找到DNS配置文件,如何修改DNS配置文件,怎么验证DNS是否配置正确