域名系统(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版本的配置文件。