Linux systemd-resolved 服务简介
2025-01-20 本文已影响0人
极简架构
1.systemd-resolved简介
systemd-resolved 是一个系统服务,属于 systemd 架构的一部分,主要用于提供域名解析服务。它为应用程序提供了一个简单的接口,可以通过 DNS(Domain Name System)解析主机名,同时支持 DNSSEC(Domain Name System Security Extensions)和 mDNS(Multicast DNS)等功能。
2.systemd-resolved主要功能特性
1.DNS 解析
systemd-resolved 可以管理多个 DNS 服务器,并根据优先级进行查询。
支持 DNS-over-TLS (DoT) 和 DNS-over-HTTPS (DoH),提高安全性。
支持 DNSSEC 验证,确保 DNS 响应的完整性和真实性。
2.LLMNR 和 mDNS
支持 LLMNR(Link-Local Multicast Name Resolution),在没有 DNS 服务器的情况下,可以通过局域网内的广播来解析主机名。
支持 mDNS(Multicast DNS),用于零配置网络中主机名和服务发现。
3.集中式配置
systemd-resolved 的配置文件位于 /etc/systemd/resolved.conf,用户可以在此文件中进行一些全局设置,比如 DNS 服务器的地址、 DNS 解析策略等。
[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 1.0.0.1
4.缓存
缓存 DNS 查询结果,提高解析速度并减少对外部 DNS 服务器的依赖。
3.fix方案
3.systemd-resolved使用
# 查看 systemd-resolved 服务状态
systemctl status systemd-resolved
# 启动服务后,会在宿主机创建 /run/systemc/resolve/resolv.conf 文件
systemctl start systemd-resolved
# 设置 systemd-resolved 开机自启动
systemctl enable systemd-resolved
systemctl is-enabled systemd-resolved
# 查看服务日志
journalctl -u systemd-resolved.service
# 查看当前DNS 配置和解析状态
resolvectl status
# 使用 systemd-resolve 进行 DNS 查询:
systemd-resolve example.com
# 修改 DNS 配置后重启服务
vi /etc/systemd/resolved.conf
systemctl restart systemd-resolved
resolvectl query example.com # 测试 DNS 解析