域名系统(DNS)是网络基础架构的核心部分,提供了一种将域名转换为IP地址的方法。您可以将DNS视为互联网的电话簿。

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

域名解析后,系统将缓存请求并保留该域名和相应IP地址的记录。

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

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

有很多免费的公共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名称服务器(解析器)。

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

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

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

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

点击“应用”按钮以保存更改。

更改立即生效,除非您的系统或应用程序缓存了 DNS条目

如果要切换回原来的设置,请打开网络管理器,转到“ IPv4设置”并启用“自动”切换开关。

在Ubuntu Server上设置DNS名称服务器

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

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

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

这些文件使您可以配置网络接口,包括IP地址,网关,DNS名称服务器等。

要配置DNS名称服务器,请使用文本编辑器打开接口配置文件:

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

文件的内容如下所示:

/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]

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

      nameservers:
          addresses: [1.1.1.1, 1.0.0.1]

DNS服务器必须用逗号分隔。您还可以添加两个以上的域名服务器。

如果该条目不存在,请将其添加到接口名称栏下。编辑Yaml文件时,请确保您遵循 YAML代码缩进标准。如果配置中存在语法错误,Netplan将无法解析该文件。

完成后,保存文件并应用以下更改:

sudo netplan apply

Netplan将为systemd解析的服务生成配置文件。

要验证是否设置了新的DNS解析器,请运行以下命令:

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

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

         DNS Servers: 1.1.1.1
                      1.0.0.1

结论

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

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持