补充说明
systemd-resolve 是 systemd-resolved 提供的命令行工具,用于查看 DNS 配置、执行域名查询、刷新缓存和修改解析器设置。在新版 systemd 中它已经是 resolvectl 的符号链接,官方推荐直接使用 resolvectl。
典型用途是排查 DNS 问题:--status 查看每个网络接口使用的 DNS 服务器与当前 DNS 服务器,--query 直接向解析器查询某域名并显示结果来源,--flush-caches 在修改 DNS 或 hosts 后清空缓存。
注意 /etc/resolv.conf 在启用 systemd-resolved 时通常是符号链接到 127.0.0.53 的存根解析器,不要手工编辑。需要永久修改 DNS 时应通过网络管理工具(NetworkManager、systemd-networkd)配置,否则重启后会被覆盖。
语法
systemd-resolve [选项] [主机名|地址...]
resolvectl [选项] [主机名|地址...]
选项
--status:显示全局与各接口的解析状态--query 域名:查询域名的 A/AAAA 等记录--flush-caches:清空 DNS 缓存--statistics:显示缓存命中率等统计--reset-statistics:重置统计计数--set-dns 服务器:为接口设置 DNS 服务器--set-domain 域:设置搜索域--set-dnssec 模式:设置 DNSSEC 校验策略--set-llmnr 模式、--set-mdns 模式:设置 LLMNR / mDNS 行为
实例
# 查看当前 DNS 配置
systemd-resolve --status
# 查询一个域名
systemd-resolve --query example.com
# 修改 DNS 后清空缓存
sudo systemd-resolve --flush-caches
# 使用新版命令的等价写法
resolvectl status
resolvectl query example.com
sudo resolvectl flush-caches
# 查看解析统计
resolvectl statistics