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) ↩︎
相关推荐
jimy12 小时前
安卓里运行Linux
linux·运维·服务器
爱凤的小光3 小时前
Linux清理磁盘技巧---个人笔记
linux·运维
耗同学一米八4 小时前
2026年河北省职业院校技能大赛中职组“网络建设与运维”赛项答案解析 1.系统安装
linux·服务器·centos
知星小度S5 小时前
系统核心解析:深入文件系统底层机制——Ext系列探秘:从磁盘结构到挂载链接的全链路解析
linux
2401_890443025 小时前
Linux 基础IO
linux·c语言
智慧地球(AI·Earth)6 小时前
在Linux上使用Claude Code 并使用本地VS Code SSH远程访问的完整指南
linux·ssh·ai编程
老王熬夜敲代码7 小时前
解决IP不够用的问题
linux·网络·笔记
zly35007 小时前
linux查看正在运行的nginx的当前工作目录(webroot)
linux·运维·nginx
QT 小鲜肉7 小时前
【Linux命令大全】001.文件管理之file命令(实操篇)
linux·运维·前端·网络·chrome·笔记
问道飞鱼8 小时前
【Linux知识】Linux 虚拟机磁盘扩缩容操作指南(按文件系统分类)
linux·运维·服务器·磁盘扩缩容