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 2. 使用 resolvectl(新版 systemd 推荐方式) 在使用 systemd-resolved 服务的系统中(如 Ubuntu 20.04+、CentOS 8+): resolvectl status 该命令会显示每个网络接口的 DNS 配置、是否启用 DNSSEC、当前使用的解析器等详细信息。 ⚠️ 旧版系统可能使用 systemd-resolve --status,但该命令已在较新版本中被弃用。 3. 已过时的工具(不推荐在新系统使用) 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 配置!如有疑问,欢迎留言交流。

相关推荐
June bug2 小时前
(#字符串处理)字符串中第一个不重复的字母
python·leetcode·面试·职场和发展·跳槽
数通工程师2 小时前
企业级硬件防火墙基础配置实战:从初始化到规则上线全流程
运维·网络·网络协议·tcp/ip·华为
zhangrelay3 小时前
Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下
linux·笔记·学习
_OP_CHEN3 小时前
【Linux系统编程】(二十)揭秘 Linux 文件描述符:从底层原理到实战应用,一篇吃透 fd 本质!
linux·后端·操作系统·c/c++·重定向·文件描述符·linux文件
Anastasiozzzz3 小时前
Redis的键过期是如何删除的?【面试高频】
java·数据库·redis·缓存·面试
岁岁种桃花儿3 小时前
详解kubectl get replicaset命令及与kubectl get pods的核心区别
运维·nginx·容器·kubernetes·k8s
捷智算云服务3 小时前
告别运维割裂!捷智算GPU维修中心重新定义“全栈式”维修新标准
运维·服务器·性能优化
chem41113 小时前
玩客云 边缘AI模型 本地搭建部署 llama.cpp qwen
linux·人工智能·llama
青火coding3 小时前
SOFAServerless架构的意义
java·运维·中间件·架构·serverless