域名系统 (DNS) 是网络基础设施的核心部分,提供了一种将域名转换为 IP 地址的方法。您可以将 DNS 视为互联网的电话簿。
连接到互联网的每台设备均由其 IP 地址唯一标识。当您在浏览器中输入要访问的网站时,必须将其域名转换为相应的IP地址。操作系统首先检查其主机文件对应的域名,如果没有该域名的条目,则查询配置的DNS域名服务器来解析指定的域名。
一旦域名被解析,系统将缓存请求并保留域名和相应 IP 地址的记录。
DNS 名称服务器(解析器)是其他设备用来对所请求的域执行 DNS 查找的服务器。
通常,DNS 解析器由您的 ISP 分配。但是,这些解析器可能很慢或不定期更新,这可能会导致查询域时出现延迟,解析到错误的 IP 地址,或者有时您可能根本无法解析所需的域。
有很多免费的公共 DNS 解析器,它们速度快、私密且定期更新。
以下是一些最流行的公共 DNS 解析器:
- 谷歌(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)
- 3 级(209.244.0.3、209.244.0.4)
在本指南中,我们将解释如何在 Ubuntu 18.04 上配置 DNS 名称服务器(解析器)。
如果您想为连接到本地网络的所有设备设置 DNS 名称服务器,那么最简单且推荐的方法是在家庭路由器上进行更改。
在 Ubuntu 桌面上设置 DNS 名称服务器#
在 Ubuntu 18.04 桌面计算机上设置 DNS 名称服务器非常简单,不需要任何技术知识。
启动“设置”窗口。
如果您已连接到 WiFi 网络,请单击“Wi-FI”选项卡。否则,如果您有有线连接,请单击“网络”选项卡。
选择要为其设置 DNS 名称服务器的连接,然后单击齿轮图标以打开网络管理器。
-
选择 IPv4 设置选项卡。
-
禁用“自动”切换开关并输入 DNS 解析器 IP 地址,以逗号分隔。我们将使用 Google DNS 名称服务器:
单击“应用”按钮保存更改。
更改立即生效,除非以下情况DNS 条目已缓存由您的系统或应用程序。
如果您想切换回旧设置,请打开网络管理器,转至 IPv4 设置并启用“自动”切换开关。
在 Ubuntu 服务器上设置 DNS 名称服务器#
过去,每当您想在 Linux 中配置 DNS 解析器时,您只需打开/etc/resolv.conf
文件,编辑条目,保存文件,然后就可以开始了。该文件仍然存在,但它是symlink由 systemd-resolved 服务控制,不应手动编辑。
systemd-resolved 是一项为本地服务和应用程序提供 DNS 名称解析的服务,它可以配置为Netplan,Ubuntu 18.04 上的默认网络管理工具。
Netplan配置文件存储在/etc/netplan
目录。您可能会在此目录中找到一两个 YAML 文件。文件名可能因设置而异。通常,该文件的名称为01-netcfg.yaml
or 50-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 上默认的网络管理工具,取代了/etc/resolv.conf
and /etc/network/interfaces
在以前的 Ubuntu 版本中用于配置网络的配置文件。