resolvectl和resolvconf的区别及用法(dns问题排查及解决)
文章目录
前言
resolvectl
和resolvconf
都是用于管理和配置 DNS 解析设置的工具,但它们的设计理念和使用场景有所不同,目前博主使用debian11 ubuntu22.04以上更多采用resolvectl
下文也会主要从resolvectl
入手,讲解如何配置DNS解决DNS冲突问题。
之前博主有遇到Tailscale
域名、ip解析问题也是通过该软件解决的。
正文
resolvectl说明介绍
resolvectl
是 systemd-resolved
服务的一部分,它是 systemd 框架下的一个组件,用于处理 DNS 解析任务。resolvectl
提供了更高级的功能,如支持 DNS-over-TLS、多播 DNS(mDNS)、以及更精细的 DNS 控制。
特点:
- 集成性:
resolvectl
与systemd
紧密集成,依赖于systemd-resolved
服务; - 多功能性:除了基本的 DNS 配置外,还支持 DNS-over-TLS 加密、多播 DNS(mDNS)等高级特性;
- 现代化设计:旨在为现代 Linux 系统提供更稳定、安全的 DNS 解决方案;
resolvconf说明介绍
resolvconf
是一个较早的工具,用于动态地管理 /etc/resolv.conf
文件。它的主要功能是在不同的网络接口之间切换时自动更新 DNS 设置。resolvconf
通常在没有 systemd 或其他现代化系统和服务管理器的老版本 Linux 发行版中使用。
特点:
- 独立性:resolvconf 是一个独立的程序,不依赖于任何特定的服务管理框架;
- 动态更新:它可以监听网络接口的变化,并根据这些变化更新 /etc/resolv.conf 文件;
- 简单直接:resolvconf 的配置相对简单,主要通过简单的命令行工具进行管理;
resolvectl使用例子
bash
resolvectl [OPTIONS...] {COMMAND} [NAME...]
resolvectl
^1^可用于通过systemd-resolved.service(8) 解析器服务解析域名、IPv4和IPv6地址、DNS资源记录和服务。默认情况下,指定的参数列表将解析为主机名,检索其IPv4和IPv6地址。如果指定的参数被格式化为IPv4或IPv6地址,则执行反向操作,并检索指定地址的主机名。
程序的输出包含有关用于查找的协议以及在哪个网络接口上发现数据的信息。它还包含关于该信息是否可以被认证的信息。本地DNSSEC验证成功的所有数据都被视为经过身份验证。此外,还报告验证了源自本地可信来源的所有数据,包括本地主机名的解析、 "本地主机" 主机名或来自/etc/hosts的所有数据。
查询主机名:
bash
$ resolvectl query baidu.com
baidu.com: 110.242.68.66 -- link: eno1
39.156.66.10 -- link: eno1
-- Information acquired via protocol DNS in 8.0ms.
-- Data is authenticated: no
$ resolvectl query 85.214.157.71
85.214.157.71: gardel.0pointer.net -- link: eno1
-- Information acquired via protocol DNS in 1.3549s.
-- Data is authenticated: no
查询DNS解析状态:
bash
$ resolvectl status
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: foreign
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
Link 2 (eno1)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
设置DNS服务器:
bash
# 设置dns为114
$ resolvectl dns eno1 114.114.114.114
# 查看反馈
$ resolvectl status
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: foreign
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
Link 2 (eno1)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 114.114.114.114