Linux 下查看 DNS 配置信息的常用命令详解

在 Linux 系统中,了解当前服务器所使用的 DNS(Domain Name System)配置对于网络排错、服务部署和系统管理都至关重要。本文将详细介绍几种常用的查看 DNS 信息的方法,帮助你快速定位和验证 DNS 设置。

方法一:查看 /etc/resolv.conf 文件

这是最直接的方式。Linux 系统通常通过 /etc/resolv.conf 文件指定 DNS 服务器地址。

root@localhost \~# cat /etc/resolv.conf

nameserver 192.168.xxx.xxx

search localdomain

  • 说明:
    • nameserver 后面的 IP 地址即为系统当前使用的 DNS 服务器。
    • search 行定义了域名搜索后缀(本例中被注释掉了)。
  • 注意:在使用 NetworkManager 或 systemd-resolved 的现代发行版(如 CentOS 7+/Ubuntu 18.04+)中,该文件可能是自动生成的符号链接或由服务动态管理,手动修改可能被覆盖。

方法二:使用 nslookup 命令

nslookup 是一个交互式网络工具,可用于查询 DNS 记录。我们可以通过它间接查看当前使用的 DNS 服务器。

root@localhost \~# nslookup 127.0.0.1 | grep Server

Server: 192.168.xxx.xxx

  • 说明:
    • 虽然查询的是本地回环地址(127.0.0.1),但返回的 Server 字段显示了实际使用的 DNS 服务器。
    • 更推荐使用 nslookup example.com 查询任意域名,观察其使用的解析服务器。

💡 提示:nslookup 在部分新系统中可能未默认安装,可使用以下命令安装:

  • RHEL/CentOS:yum install bind-utils
  • Debian/Ubuntu:apt install dnsutils

方法三:使用 dig 命令

dig(Domain Information Groper)是功能强大的 DNS 查询工具,输出信息更详细。

root@localhost \~# dig

; > DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 >

;; ->>HEADER<<- ...

;; SERVER: 192.168.xxx.xxx#53(192.168.xxx.xxx)

...

要快速提取 DNS 服务器地址,可结合管道过滤:

root@localhost \~# dig | grep "SERVER:" | awk -F'#' '{print 1}' | awk -F': ' '{print 2}'

192.168.xxx.xxx

  • 优点:dig 不仅能显示使用的 DNS 服务器,还能展示完整的查询过程、响应时间、权威记录等,非常适合调试。

方法四:其他实用方法(适用于特定环境)

  1. 使用 nmcli(NetworkManager 命令行工具)

适用于使用 NetworkManager 管理网络的系统(如桌面版或较新的服务器版):

查看所有连接的 DNS 信息

nmcli dev show | grep DNS

查看特定接口(如 eth0)的 DNS

nmcli dev show eth0 | grep IP4.DNS

  1. 使用 resolvectl(新版 systemd 推荐方式)

在使用 systemd-resolved 服务的系统中(如 Ubuntu 20.04+、CentOS 8+):

resolvectl status

该命令会显示每个网络接口的 DNS 配置、是否启用 DNSSEC、当前使用的解析器等详细信息。

⚠️ 旧版系统可能使用 systemd-resolve --status,但该命令已在较新版本中被弃用。

  1. 已过时的工具(不推荐在新系统使用)

nm-tool | grep DNS

nm-tool 在 NetworkManager 1.0+ 版本中已被移除,请改用 nmcli。

总结对比

方法 适用场景 是否需安装额外包 备注

/etc/resolv.conf 所有 Linux 系统 否 最基础,但可能被服务覆盖

nslookup 快速验证 DNS 解析 可能需要安装 简单直观

dig 专业 DNS 调试 可能需要安装 功能最全

nmcli / resolvectl 使用 NetworkManager 或 systemd-resolved 的系统 否(通常预装) 更符合现代 Linux 架构

小贴士

  • 如果你发现 /etc/resolv.conf 中的 DNS 被自动修改,很可能是 DHCP 客户端或 NetworkManager 在管理它。

  • 修改 DNS 配置时,建议优先通过网络管理工具(如 nmcli、netplan 或编辑网卡配置文件)进行,而非直接编辑 /etc/resolv.conf。

  • 测试 DNS 是否生效,可使用以下命令验证:
    dig example.com

    host google.com

    nslookup baidu.com

希望本文能帮助你高效地查看和管理 Linux 系统中的 DNS 配置!如有疑问,欢迎留言交流。

相关推荐
uzong7 小时前
一个好的面试官,应该让候选人感到被尊重
面试
爱写代码的森9 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
触底反弹10 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
大耳朵-小飞象11 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技12 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
沉默王二12 小时前
腾讯一面,我霸气反问:“你说你们在做Agent项目,说说 SubAgent、Plan 模式、Skill 调用这些你们都是怎么做的?”面试官一直在擦汗。。
面试·agent·ai编程
HLC++12 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室13 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
白露与泡影14 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙15 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程