菜鸟科技网

CentOS如何查看DNS配置命令?

使用 nslookup 命令(推荐,最常用)

nslookup 是一个用于查询 DNS 服务器的交互式工具,可以用来验证域名解析是否正常工作。

CentOS如何查看DNS配置命令?-图1
(图片来源网络,侵删)

基本查询(查询 A 记录)

nslookup www.google.com

示例输出:

Server:         192.168.1.1  <-- 使用的 DNS 服务器
Address:        192.168.1.1#53  <-- DNS 服务器地址和端口
Non-authoritative answer:
Name:   www.google.com
Address: 142.250.191.46  <-- 解析到的 IP 地址
Name:   www.google.com
Address: 142.250.191.110
  • 说明:这个命令会显示系统当前正在使用的 DNS 服务器(通常是 /etc/resolv.conf 中配置的),并显示查询结果。

查询指定类型的 DNS 记录 查询 MX(邮件交换)记录:

nslookup -type=mx qq.com

示例输出:

CentOS如何查看DNS配置命令?-图2
(图片来源网络,侵删)
Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
qq.com      mail exchanger = 21.qq.com.
qq.com      mail exchanger = 20.qq.com.
...

指定 DNS 服务器进行查询 如果你想用特定的 DNS 服务器(如 Google 的 8.8.8)来查询,可以这样使用:

nslookup www.baidu.com 8.8.8.8

说明:这个命令会绕过系统默认的 DNS 服务器,直接使用 8.8.8 进行查询,非常适合用于排查 DNS 问题。


使用 dig 命令(功能更强大,信息更详细)

dig (Domain Information Groper) 是一个比 nslookup 更强大、更灵活的 DNS 查询工具,能提供更详细的返回信息。

基本查询

CentOS如何查看DNS配置命令?-图3
(图片来源网络,侵删)
dig www.github.com

示例输出(部分截取):

; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> www.github.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;www.github.com.                    IN      A
;; ANSWER SECTION:
www.github.com.             60      IN      A       140.82.121.3
www.github.com.             60      IN      A       140.82.121.4
;; Query time: 15 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu May 25 10:30:00 CST 2025
;; MSG SIZE  rcvd: 76
  • 说明dig 的输出非常结构化,包含了请求的 DNS 服务器、查询状态、响应时间等丰富信息。

简洁输出模式 只返回答案部分,适合脚本处理:

dig +short www.github.com

示例输出:

82.121.3
140.82.121.4

查询指定 DNS 服务器

dig @8.8.8.8 www.github.com
  • 说明: 符号后面紧跟要查询的 DNS 服务器 IP。

查看系统配置文件(查看静态或手动配置的 DNS)

这些方法可以查看系统当前使用的 DNS 服务器配置来源。

查看 /etc/resolv.conf 文件 这是 Linux 系统中存放 DNS 服务器配置的核心文件,在较新的 CentOS/RHEL 7/8/9 版本中,它可能由 NetworkManagersystemd-resolved 动态管理。

cat /etc/resolv.conf

示例输出:

# Generated by NetworkManager
nameserver 192.168.1.1  <-- 这就是系统当前配置的 DNS 服务器
nameserver 8.8.8.8
  • 注意:直接修改这个文件在某些系统上可能不会持久化,重启网络后会恢复,建议通过网络管理工具修改。

查看 NetworkManager 配置(适用于使用 NetworkManager 的系统) NetworkManager 是 CentOS 7 及以后版本的默认网络管理工具,你可以查看它为特定网络连接配置的 DNS。

  • 查看所有连接的配置:
    nmcli connection show
  • 查看某个特定连接的详细配置("ens33"):
    nmcli connection show ens33 | grep "ipv4.dns"

    示例输出:

    ipv4.dns:                            192.168.1.1, 8.8.8.8
  • 查看活动连接的 DNS 服务器:
    nmcli device show ens33 | grep "DNS"

    示例输出:

    DNS:                             192.168.1.1
    DNS:                             8.8.8.8

查看 systemd-resolved 状态(适用于使用 systemd-resolved 的系统) 在一些配置中,systemd-resolved 服务会处理本地 DNS 查询,并可能提供一个本地 DNS 转发地址(如 0.0.53)。

resolvectl status

示例输出:

Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  Current DNS Server: 192.168.1.1
         DNS Servers: 192.168.1.1 8.8.8.8
...
  • 说明:如果你的 /etc/resolv.conf 里第一行是 nameserver 127.0.0.53,说明你的系统正在使用 systemd-resolved 服务,这个命令可以帮你看到真实的上游 DNS 服务器。

使用 host 命令(简单易用)

host 是一个简单的 DNS 查询工具,输出比 nslookup 更简洁。

host github.com

示例输出:

Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
github.com has address 140.82.121.3
github.com has address 140.82.121.4

总结与选择建议

命令 主要用途 优点 缺点
nslookup 日常 DNS 解析检查 简单、直观,几乎所有系统都自带 信息不如 dig 详细
dig 深入 DNS 故障排查 信息最全面、详细,功能强大 输出复杂,初学者不易理解
cat /etc/resolv.conf 查看当前生效的 DNS 配置 直接显示配置文件内容 可能是动态生成的,修改不持久
nmcli 查看和管理 NetworkManager 的 DNS 配置 查看和管理永久配置 只适用于 NetworkManager 管理的网络
resolvectl 查看 systemd-resolved 的 DNS 状态 查看 systemd-resolved 的真实上游 DNS 仅在使用 systemd-resolved 的系统上有效
host 快速、简单的 DNS 查询 输出简洁明了 功能相对单一

  • 只想快速查一个域名能不能解析? -> 用 nslookuphost
  • DNS 出问题了,需要详细信息排查? -> 用 dig
  • 想看系统到底配置了哪些 DNS 服务器? -> 用 cat /etc/resolv.confnmcli
  • 你的 DNS 服务器是 0.0.53 -> 用 resolvectl status 看看真实配置。
分享:
扫描分享到社交APP
上一篇
下一篇