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) ↩︎
相关推荐
凉、介1 小时前
CPU Cache 的映射与寻址
linux·arm开发·数据库·redis·缓存·嵌入式
2301_793102492 小时前
Linux——linux的基本命令
linux
蚊子不吸吸3 小时前
在Docker、KVM、K8S常见主要命令以及在Centos7.9中部署的关键步骤学习备存
linux·学习·docker·kubernetes·centos·k8s·kvm
Ven%3 小时前
掌握Bash脚本编写:从服务启动脚本到语法精要
linux·服务器·开发语言·chrome·bash
rqtz4 小时前
【Linux-shell】探索Dialog 工具在 Shell 图形化编程中的高效范式重构
linux·运维·重构
行止65 小时前
LVS+Keepalived高可用群集
linux·lvs·keepalived
风好衣轻5 小时前
【环境配置】在Ubuntu Server上安装5090 PyTorch环境
linux·pytorch·ubuntu
华清远见成都中心6 小时前
Linux嵌入式和单片机嵌入式的区别?
linux·运维·单片机·嵌入式
lisanmengmeng6 小时前
rabbitMQ 高可用
linux·分布式·rabbitmq
小妖6667 小时前
ubuntu 22.04 更换阿里源 (wsl2 参照)
linux·运维·ubuntu