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



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

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

DNS名称服务器(解析程序)是其他设备用于对请求的域执行DNS查找的服务器。

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

有很多免费的公共DNS解析器,它们快速,私密且定期更新。

以下是一些最受欢迎的公共DNS解析器:

  • 谷歌()
  • Cloudflare(和)
  • OpenDNS()
  • Level3()

在本指南中,我们将解释如何在Ubuntu 18.04上配置DNS名称服务器(解析器)。

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

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

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

  • 启动“设置”窗口。
  • 如果您连接到WiFi网络,请单击“Wi-FI”选项卡。否则,如果您有有线连接,请单击“网络”选项卡。
  • 选择要为其设置DNS名称服务器的连接,然后单击cog图标以打开网络管理器。
  • 选择“IPv4设置”选项卡。
  • 禁用“自动”切换开关并输入DNS解析器IP地址,以逗号分隔。我们将使用Google DNS名称服务器: ubuntu dns nameservers
  • 单击“应用”按钮以保存更改。

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

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

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

在Ubuntu Server上设置DNS名称服务器,您需要一台Ubuntu服务器:

没有服务器的同学,国内可以在这里购买,国外可以在这里购买 VPS服务器。

回到过去,每当你想在Linux中配置DNS解析器时,你只需打开/etc/文件,编辑条目,保存文件就可以了。此文件仍然存在,但它是由systemd-resolved服务控制的符号链接,不应手动编辑。

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

Netplan配置文件存储在/etc/netplan目录中。您可能会在此目录中找到一个或两个YAML文件。文件名可能因设置而异。通常情况下,该文件名为无论是或,但在你的系统中,它可能是不同的。

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

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

sudo vi /etc/netplan/

该文件的内容将如下所示:

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: [, ]

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

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

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

sudo netplan apply

Netplan将为systemd-resolved服务生成配置文件。

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

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

systemd-resolve -status

打印了很多信息。我们


grep


用来过滤“DNS服务器”字符串。输出看起来像这样:

DNS Servers:

写在最后

Netplan是在Ubuntu 18.04默认的网络管理工具,替换/etc//etc/network/interfaces已用于配置网络在以前的Ubuntu版本的配置文件。