凌峰创科服务平台

Linux如何查看当前DNS服务器?

查看系统配置文件

这是最直接的方法,可以查看系统当前静态配置的 DNS 服务器,这些配置通常在启动时被网络管理器或系统服务加载。

Linux如何查看当前DNS服务器?-图1
(图片来源网络,侵删)

查看 /etc/resolv.conf 文件

这是 Linux 系统中最核心的 DNS 解析配置文件,它记录了系统在进行域名解析时应该使用的 DNS 服务器地址。

如何查看:

cat /etc/resolv.conf

输出示例:

# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 1.1.1.1
search mylocal.lan

输出解读:

Linux如何查看当前DNS服务器?-图2
(图片来源网络,侵删)
  • nameserver <IP地址>:指定 DNS 服务器的 IP 地址,系统会按顺序尝试这些服务器,如果第一个不通,会尝试第二个,以此类推。
  • search <域名>:指定本地域名,当你查询一个不完整的域名(如 hostname)时,系统会自动尝试 hostname.mylocal.lan 等形式。

⚠️ 重要提示: 在许多现代 Linux 发行版(如 Ubuntu 18.04+, CentOS 7+, Fedora)中,/etc/resolv.conf 文件可能是由 systemd-resolvedNetworkManager 等服务动态管理的,直接编辑这个文件可能效果是暂时的,重启后会恢复,查看它通常是没问题的,但修改它可能不是最佳方式。

查看 NetworkManager 的配置

如果你的系统使用 NetworkManager(桌面版 Linux 如 Ubuntu, Fedora, CentOS 7+ 的默认选择),可以通过它来查看和管理 DNS 配置。

对于使用 netplan 的系统 (如 Ubuntu 18.04+): 配置文件通常在 /etc/netplan/ 目录下。

# 查看配置文件内容
cat /etc/netplan/01-netcfg.yaml

示例输出:

Linux如何查看当前DNS服务器?-图3
(图片来源网络,侵删)
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: true
      # dhcp4-overrides 可以强制指定 DNS
      dhcp4-overrides:
        use-dns: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

这里的 nameservers 部分明确指定了 DNS 服务器。

对于使用 ifcfg 文件的系统 (如旧版 CentOS/RHEL): 配置文件在 /etc/sysconfig/network-scripts/ 目录下。

# 查看 ens33 网卡的配置
cat /etc/sysconfig/network-scripts/ifcfg-ens33

如果配置了静态 DNS,会看到类似 DNS1="8.8.8.8"DNS2="1.1.1.1" 的行。


使用命令行工具查询

这些方法可以让你实时测试 DNS 解析是否正常工作,并看到当前生效的 DNS 服务器。

使用 nslookup 命令

nslookup 是一个经典的 DNS 查询工具,可以用来查询域名对应的 IP 地址,或者反向查询 IP 对应的域名。

如何查看当前使用的 DNS 服务器:

nslookup google.com

输出示例:

Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
Name:   google.com
Address: 142.250.185.78
Name:   google.com
Address: 2404:6800:4005:80c::200e

输出的第一部分 Server: 192.168.1.1 就告诉你当前查询所使用的 DNS 服务器是哪个。

你也可以指定使用哪个 DNS 服务器进行查询:

# 使用 Google 的 DNS 服务器查询
nslookup google.com 8.8.8.8

使用 dig 命令

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

如何查看当前使用的 DNS 服务器:

dig google.com

输出示例:

; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;google.com.                    IN      A
;; ANSWER SECTION:
google.com.             300     IN      A       142.250.185.78
;; Query time: 15 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Oct 26 10:30:00 CST 2025
;; MSG SIZE  rcvd: 55

在输出的末尾,;; SERVER: 192.168.1.1#53(192.168.1.1) 清晰地显示了查询所用的 DNS 服务器。

同样,你也可以指定 DNS 服务器:

# 使用 Cloudflare 的 DNS 服务器查询
dig google.com @1.1.1.1

使用 host 命令

host 是一个简单易用的 DNS 查询工具,是 dig 的简化版。

如何查看当前使用的 DNS 服务器:

host google.com

输出示例:

Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
google.com has address 142.250.185.78
google.com has IPv6 address 2404:6800:4005:80c::200e

输出的第一行 Using domain server: Name: 192.168.1.1 显示了当前使用的 DNS 服务器。


检查系统服务

检查 systemd-resolved 服务

在许多现代发行版中,systemd-resolved 服务负责管理和提供 DNS 解析,它可能会覆盖 /etc/resolv.conf 中的配置。

如何检查服务状态:

systemctl status systemd-resolved

如何查看其详细配置和使用的 DNS 服务器:

# 查看 resolved.service 的详细信息
systemd-resolve --status

输出示例 (关键部分):

Global
       DNS Servers: 192.168.1.1
                    8.8.8.8
                    1.1.1.1
          DNSSEC NTA: com.
...
Link 2 (enp0s3)
      Current Scopes: DNS
       LLMNR setting: resolve
MulticastDNS setting: no
      DNSSEC setting: no
    DNS Servers: 192.168.1.1
                  8.8.8.8

这里的 Global DNS ServersLink 2 (enp0s3) DNS Servers 都列出了它正在使用的 DNS 服务器。


总结与对比

方法 命令/文件 用途 优点 缺点
配置文件查看 cat /etc/resolv.conf 查看系统静态配置的 DNS 简单直接,显示所有配置的 DNS 可能是动态生成的,修改后易失效
网络管理器 cat /etc/netplan/*.yaml 查看 NetworkManager 的配置 真正的源头配置,适合修改 需要知道配置文件位置和格式
实时查询 nslookup google.com 测试 DNS 解析和查看当前生效的 DNS 简单,能快速测试连通性 信息相对简单
实时查询 dig google.com 测试 DNS 解析,获取最详细信息 功能强大,信息全面,是首选工具 输出信息较多,对新手可能复杂
系统服务 systemd-resolve --status 检查 systemd-resolved 服务的状态和配置 了解底层服务的工作方式 仅适用于使用该服务的系统

推荐流程

  1. 快速检查:运行 dig google.comnslookup google.com,查看输出中的 SERVER 信息,这是最快、最有效的方法来确认当前正在工作的 DNS 服务器。
  2. 排查配置问题:DNS 解析失败,查看 /etc/resolv.conf 和 Netplan/ifcfg 配置文件,确保 DNS 服务器地址设置正确。
  3. 深入分析:使用 digsystemd-resolve --status 获取更详细的信息,以进行更深入的故障排除。
分享:
扫描分享到社交APP
上一篇
下一篇