linux网络服务:网络名称解析管理器,提供系统级的DNS缓存服务,并管理网络连接和DNS解析的服务systemd-resolved详解

目录

一、概述

二、功能特点

[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)

1、查看状态

[2、设置 DNS 服务器](#2、设置 DNS 服务器)

3、设置域名搜索列表

4、刷新缓存

六、服务管理

[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 微信名片"字样,就会出现我的二维码,欢迎沟通探讨。


相关推荐
安 当 加 密44 分钟前
基于USB Key的Web系统双因素认证解决方案:构建安全与便捷的登录体系
运维·网络·安全
路由侠内网穿透2 小时前
本地部署资源聚合搜索神器 Jackett 并实现外部访问
linux·运维·服务器·网络协议·tcp/ip
啥都想学的又啥都不会的研究生2 小时前
Redis设计与实现-服务器中的数据库
运维·服务器·数据库·redis·笔记·缓存·性能优化
m0_748229992 小时前
redis 使用
数据库·redis·缓存
Foolforuuu2 小时前
什么样的场景适用redis?redis缓存是什么?
数据库·redis·缓存
m0_748234082 小时前
redis 清理缓存
数据库·redis·缓存
djykkkkkk2 小时前
ubuntu 和 RV1126 交叉编译Mosqutiio-1.6.9
linux·运维·ubuntu
学习嵌入式的小羊~2 小时前
视频图像刷新到HTTP的原理
网络·网络协议·http
瞬 季3 小时前
计算机网络-应用层
网络·计算机网络
大小科圣3 小时前
Tomcat介绍及部署
运维·服务器