目录
[1. DNS 缓存](#1. DNS 缓存)
[2. DNS 服务器管理](#2. DNS 服务器管理)
[3. 域名搜索列表](#3. 域名搜索列表)
[4. 域名解析](#4. 域名解析)
[5. LLMNR解析](#5. LLMNR解析)
[6. IPv6 支持](#6. IPv6 支持)
[7. 统一的 /etc/resolv.conf 文件](#7. 统一的 /etc/resolv.conf 文件)
[1. 安装](#1. 安装)
[2. 配置](#2. 配置)
[五、使用 resolvectl](#五、使用 resolvectl)
[2、设置 DNS 服务器](#2、设置 DNS 服务器)
[1. 启动与停止](#1. 启动与停止)
[2. 启用与禁用](#2. 启用与禁用)
[1. 查看缓存](#1. 查看缓存)
[2. 刷新缓存](#2. 刷新缓存)
[1. 高效性](#1. 高效性)
[2. 稳定性](#2. 稳定性)
[3. 可配置性](#3. 可配置性)
[4. 安全性](#4. 安全性)
一、概述
systemd-resolved 是一个由 systemd 提供的 DNS 解析器守护进程,它旨在提高系统的 DNS 解析性能,并为用户提供更多的配置选项。systemd-resolved 可以作为一个本地 DNS 缓存,它会缓存 DNS 查询结果以减少对外部 DNS 服务器的请求次数,从而加快 DNS 解析速度并减轻外部服务器的负载。
二、功能特点
1. DNS 缓存
systemd-resolved 可以作为本地 DNS 缓存,存储最近查询过的域名及其 IP 地址,以加速后续的查询速度。
2. DNS 服务器管理
用户可以通过 resolvectl 工具来管理 DNS 服务器列表,如添加或移除 DNS 服务器地址。
3. 域名搜索列表
用户可以配置域名搜索列表,当查询的域名没有包含顶级域(TLD)时,默认会在这些域名后面附加进行查找。
4. 域名解析
作为网络名称解析管理器,systemd-resolved负责处理DNS解析请求,将域名解析为IP地址。
5. LLMNR解析
除了DNS解析外,systemd-resolved还支持LLMNR(本地链路多播名称解析)解析,这有助于在本地网络上解析主机名。
6. IPv6 支持
systemd-resolved 支持 IPv6 DNS 记录的解析。
7. 统一的 /etc/resolv.conf 文件
为了简化 /etc/resolv.conf 文件的维护,systemd-resolved 会生成一个指向实际解析器配置的符号链接。这意味着 /etc/resolv.conf 文件不应该直接编辑,而是通过 systemd-resolved 来管理。
三、安装与配置
1. 安装
在CentOS 7等较早的Linux发行版中,systemd-resolved可能不是默认安装的。此时,可以使用yum或dnf等包管理器进行安装。例如,在CentOS 7上,可以使用以下命令安装systemd-resolved:
更新yum数据库:sudo yum makecache
安装systemd-resolved:sudo yum -y install systemd-resolved
而在Fedora、Ubuntu等较新的Linux发行版中,systemd-resolved通常是默认安装的。
2. 配置
systemd-resolved的配置文件通常位于/etc/systemd/resolved.conf。可以通过编辑此文件来更改DNS服务器、DNSSEC设置等。修改配置文件后,需要重启systemd-resolved服务以使更改生效。
四、状态与启动配置
systemd-resolved 服务通常在现代 Linux 发行版中默认启用。可以通过下面的命令来查看它的状态:
$ systemctl status systemd-resolved.service
实际操作如下:
查看服务是否启动
如果服务没有启动,可以通过以下命令来启动并设置开机启动:
$ sudo systemctl start systemd-resolved
$ sudo systemctl enable systemd-resolved
五、使用 resolvectl
resolvectl 是用来与 systemd-resolved 交互的主要工具,可以使用它来执行以下操作:
1、查看状态
使用如下命令:
$ resolvectl status
实际操作如下:
查看状态
2、设置 DNS 服务器
使用如下命令:
$ resolvectl dns <interface> <ip_address>
3、设置域名搜索列表
使用如下命令:
$ resolvectl domain <interface> <domain>
4、刷新缓存
使用如下命令:
$ resolvectl flush-caches
实际操作如下图所示:
刷新缓存
六、服务管理
1. 启动与停止
可以使用systemctl命令来启动、停止和重启systemd-resolved服务。例如:
启动服务:sudo systemctl start systemd-resolved
停止服务:sudo systemctl stop systemd-resolved
重启服务:sudo systemctl restart systemd-resolved
2. 启用与禁用
可以使用systemctl命令来启用或禁用systemd-resolved服务的自动启动。例如:
启用自动启动:sudo systemctl enable systemd-resolved
禁用自动启动:sudo systemctl disable systemd-resolved
七、缓存管理
1. 查看缓存
可以使用resolvectl status命令来查看当前的DNS缓存状态,包括已解析的域名和对应的IP地址等。如下图所示:
查看DNS缓存
2. 刷新缓存
当DNS缓存中的记录过期或存在错误时,需要刷新缓存。可以使用sudo systemctl restart systemd-resolved命令来重启服务并清空DNS缓存,或者使用sudo resolvectl flush-caches命令来直接刷新缓存。操作如下图所示:
刷新DNS缓存
八、优点与适用场景
1. 高效性
systemd-resolved使用更高效的DNS解析算法,可以提高域名解析的速度。
2. 稳定性
systemd-resolved具有更好的稳定性,可以避免一些网络连接问题。
3. 可配置性
systemd-resolved提供了更多的配置选项,可以更好地满足用户的需求。
4. 安全性
systemd-resolved具有更好的安全性,可以保护用户的隐私和数据安全。
九、注意事项
虽然 systemd-resolved 提供了许多优点,但在某些情况下,例如在需要更细粒度的 DNS 控制或者与其他 DNS 客户端/守护进程冲突的情况下,可能需要禁用它。禁用 systemd-resolved 可以通过下面的命令完成:
$ sudo systemctl stop systemd-resolved
$ sudo systemctl disable systemd-resolved
systemd-resolved服务适用于需要高效、稳定、可配置和安全的DNS解析服务的Linux系统。特别是在那些默认安装了systemd的Linux发行版中,systemd-resolved已成为网络名称解析的标准解决方案。
总的来说,systemd-resolved 是一个强大的工具,它可以帮助优化系统的 DNS 解析性能,并提供了一个统一的接口来管理 DNS 相关的配置。
文章正下方可以看到我的联系方式:鼠标"点击" 下面的 "威迪斯特-就是video system 微信名片"字样,就会出现我的二维码,欢迎沟通探讨。