LLMNR (Link-Local Multicast Name Resolution) 和 mDNS (Multicast DNS):用于在没有 DNS 服务器的局域网内解析主机名(类似于 Windows 的网络发现或 Apple 的 Bonjour)。
DNS over TLS (DoT): 支持加密 DNS 查询,防止隐私泄露和中间人篡改。
配置文件与工作模式
主配置文件
主要配置文件位于 /etc/systemd/resolved.conf。
常见的配置项包括:
ini
[Resolve]# 全局 DNS 服务器,配置 DNS,多个使用空格分隔DNS=8.8.8.8 1.1.1.1# 备用 DNSFallbackDNS=114.114.114.114# 是否开启多播 DNS 支持 (yes/no/resolve)MulticastDNS=yes# 是否开启 DNS over TLS (yes/no/opportunistic)DNSOverTLS=no# 是否开启缓存Cache=yes
$ resolvectl --help
resolvectl [OPTIONS...] COMMAND ...
Send control commands to the network name resolution manager, or
resolve domain names, IPv4 and IPv6 addresses, DNS records, and services.
Commands:
query HOSTNAME|ADDRESS... Resolve domain names, IPv4 and IPv6 addresses
service [[NAME] TYPE] DOMAIN Resolve service (SRV)
openpgp EMAIL@DOMAIN... Query OpenPGP public key
tlsa DOMAIN[:PORT]... Query TLS public key
status [LINK...] Show link and server status
statistics Show resolver statistics
reset-statistics Reset resolver statistics
flush-caches Flush all local DNS caches
reset-server-features Forget learnt DNS server feature levels
dns [LINK [SERVER...]] Get/set per-interface DNS server address
domain [LINK [DOMAIN...]] Get/set per-interface search domain
default-route [LINK [BOOL]] Get/set per-interface default route flag
llmnr [LINK [MODE]] Get/set per-interface LLMNR mode
mdns [LINK [MODE]] Get/set per-interface MulticastDNS mode
dnsovertls [LINK [MODE]] Get/set per-interface DNS-over-TLS mode
dnssec [LINK [MODE]] Get/set per-interface DNSSEC mode
nta [LINK [DOMAIN...]] Get/set per-interface DNSSEC NTA
revert LINK Revert per-interface configuration
Options:
-h --help Show this help
--version Show package version
--no-pager Do not pipe output into a pager
-4 Resolve IPv4 addresses
-6 Resolve IPv6 addresses
-i --interface=INTERFACE Look on interface
-p --protocol=PROTO|help Look via protocol
-t --type=TYPE|help Query RR with DNS type
-c --class=CLASS|help Query RR with DNS class
--service-address=BOOL Resolve address for services (default: yes)
--service-txt=BOOL Resolve TXT records for services (default: yes)
--cname=BOOL Follow CNAME redirects (default: yes)
--search=BOOL Use search domains for single-label names
(default: yes)
--raw[=payload|packet] Dump the answer as binary data
--legend=BOOL Print headers and additional info (default: yes)
See the resolvectl(1) man page for details.
systemd-resolved[]: Failed to add DNS server address
journalctl -u systemd-resolved 出现如上错误日志
原因:/etc/systemd/resolved.conf 中 DNS 字段配置异常导致,注意多个 DNS 使用空格分隔
总结
systemd-resolved 是现代 Linux 发行版(如 Ubuntu 18.04+, Fedora 等)网络栈的重要组成部分。它通过统一管理 DNS 请求,提供了更好的性能(缓存)和灵活性(针对不同接口的 DNS 配置)。对于大多数普通用户和服务器管理员,保留其默认设置是最佳选择;但对于需要精细控制 DNS 流量的高级用户,理解其工作原理(尤其是与 /etc/resolv.conf 的关系)至关重要。
We use cookies and similar methods to recognise visitors and remember preferences. We also use them to measure
campaign effectiveness and analyse site traffic.
By selecting 'Accept', you consent to the use of these methods by us and trusted third parties.