resolvectl和resolvconf的区别及用法(dns问题排查及解决)

resolvectl和resolvconf的区别及用法(dns问题排查及解决)

文章目录

前言

resolvectlresolvconf 都是用于管理和配置 DNS 解析设置的工具,但它们的设计理念和使用场景有所不同,目前博主使用debian11 ubuntu22.04以上更多采用resolvectl下文也会主要从resolvectl入手,讲解如何配置DNS解决DNS冲突问题。

之前博主有遇到Tailscale域名、ip解析问题也是通过该软件解决的。

正文

resolvectl说明介绍

resolvectlsystemd-resolved 服务的一部分,它是 systemd 框架下的一个组件,用于处理 DNS 解析任务。resolvectl 提供了更高级的功能,如支持 DNS-over-TLS、多播 DNS(mDNS)、以及更精细的 DNS 控制。

特点:

  1. 集成性:resolvectlsystemd 紧密集成,依赖于 systemd-resolved 服务;
  2. 多功能性:除了基本的 DNS 配置外,还支持 DNS-over-TLS 加密、多播 DNS(mDNS)等高级特性;
  3. 现代化设计:旨在为现代 Linux 系统提供更稳定、安全的 DNS 解决方案;

resolvconf说明介绍

resolvconf 是一个较早的工具,用于动态地管理 /etc/resolv.conf 文件。它的主要功能是在不同的网络接口之间切换时自动更新 DNS 设置。resolvconf 通常在没有 systemd 或其他现代化系统和服务管理器的老版本 Linux 发行版中使用。

特点:

  1. 独立性:resolvconf 是一个独立的程序,不依赖于任何特定的服务管理框架;
  2. 动态更新:它可以监听网络接口的变化,并根据这些变化更新 /etc/resolv.conf 文件;
  3. 简单直接:resolvconf 的配置相对简单,主要通过简单的命令行工具进行管理;

resolvectl使用例子

bash 复制代码
       resolvectl [OPTIONS...] {COMMAND} [NAME...]

resolvectl[1](#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

参考


  1. resolvectl(1) - Linux manual page (man7.org) ↩︎
相关推荐
x_lrong7 小时前
Linux虚拟机配置jupyter环境并在宿主机访问
linux·运维·笔记·jupyter·虚拟机
羚羊角uou7 小时前
【Linux网络】Socket编程TCP-实现Echo Server(上)
linux·运维·服务器
爱奥尼欧8 小时前
【Linux笔记】网络部分——数据链路层mac-arp
linux·网络·笔记
Evan_ZGYF丶8 小时前
深入解析CFS虚拟运行时间:Linux公平调度的核心引擎
linux·驱动开发·嵌入式·bsp
CHN悠远8 小时前
debian13 安装钉钉后,钉钉无法运行问题的解决办法
linux·运维·服务器·钉钉·debian13
祎直向前8 小时前
在Ubuntu中下载gcc
linux·运维·ubuntu
guygg888 小时前
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
linux·kubernetes·centos
liu****8 小时前
11.Linux进程信号(三)
linux·运维·服务器·数据结构·1024程序员节
csdn_aspnet8 小时前
CentOS 7 上安装 MySQL 8.0
linux·mysql·centos
郝学胜-神的一滴8 小时前
Linux下,获取子进程退出值和异常终止信号
linux·服务器·开发语言·c++·程序人生