Linux

Linux #

systemd-resolved #

https://manpages.ubuntu.com/manpages/noble/man8/systemd-resolved.service.8.html

systemd-resolved 是一个系统服务,提供网络名称解析功能,供本地应用程序使用。本地应用程序可以通过以下三种接口提交网络名称解析请求:

  • systemd-resolved 在系统总线上提供的原生全功能API。建议客户端使用该 API,因为它是异步的并且功能全面,

  • glibcgetaddrinfo(3) API,定义于 RFC3493[1],以及其相关的解析器函数,包括 gethostbyname(3)。该API在多个平台上得到广泛支持,包括Linux以外的平台。然而,目前它不提供DNSSEC验证状态信息,并且只支持同步调用。

  • 另外,systemd-resolved 在本地回环接口的IP地址127.0.0.53和127.0.0.54上提供了本地DNS stub监听器。可以将直接发出DNS请求且绕过本地API的程序指向这个stub,以连接到systemd-resolved。不过,强烈建议本地程序使用 glibc NSS 或总线 API(如上所述),因为某些网络解析概念(如链路本地地址或 LLMNR Unicode 域名)无法映射到单播DNS协议中。

    127.0.0.53 上的 DNS stub 解析器提供了本地解析器的完整功能集,包括 LLMNR 和多播 DNS 解析功能。而 127.0.0.54 上的 DNS stub 解析器则功能有限,它仅在“代理”模式下运行,也就是说,它会将大部分 DNS 消息几乎不做修改地传递给当前的上游 DNS 服务器,但不会在本地处理这些消息。

使用的 DNS 服务器由全局设置 /etc/systemd/resolved.conf

在Ubuntu上查看/etc/systemd/resolved.conf:

1nameserver 127.0.0.53
2options edns0 trust-ad
3search openstacklocal

配置的DNS服务器是127.0.0.53,如果想要查看实际的DNS服务器可以使用resolvectlresolvectl是一个用于管理系统DNS解析配置的命令行工具。 它是systemd-resolved服务的一部分。

 1resolvectl 
 2Global
 3         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
 4  resolv.conf mode: stub
 5
 6Link 2 (ens3)
 7    Current Scopes: DNS
 8         Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
 9Current DNS Server: 10.10.200.21
10       DNS Servers: 10.10.200.21 10.10.200.22
11        DNS Domain: openstacklocal
© 2024 青蛙小白
comments powered by Disqus