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

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 控制。

特点:

  1. 集成性:resolvectl 与 systemd 紧密集成,依赖于 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) ↩︎
相关推荐
HideF2 小时前
Linux
linux·服务器·网络
Ruiery4 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
丰锋ff6 小时前
压缩命令笔记
linux
GeW8 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
by209998 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
cq林志炫9 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
无人生还别怕9 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
企鹅侠客10 小时前
Linux CPU 负载平均值(Load Average)详解:从原理到实践
linux·运维·服务器·服务器负载
易点云徐源11 小时前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
第404号工位11 小时前
离职退电脑前别只点“清空回收站”!手把手教你彻底抹除凭证与数字痕迹
linux·python·架构