系统极客一直在努力
专注操作系统及软件使用技能

如何在 Linux 中查看 DNS 服务器 IP 地址

Linux

DNS 域名系统是互联网世界不可或缺的基石。无论你是收发邮件、浏览网页,还是刷抖音、B 站这样的流媒体服务,背后都离不开 DNS 的默默支持。它护着一个庞大的数据库,记录了海量域名和对应的公网 IP 地址。

每当用户访问一个网站时,DNS 服务器就会负责把域名「翻译」成机器能够识别的 IP 地址。正是有了 DNS,我们才不用「费脑壳」去记忆那些复杂难记的网站 IP 地址。

本文我们不展开探讨 DNS 的工作原理,而是聚焦在一个非常实际的问题上:如何在 Linux 系统中,查看当前正在使用的 DNS 服务器 IP 地址。

在 Linux 中查看 DNS 服务器 IP 地址

查看 DNS 服务器 IP 的方法因操作系统而异,但对于 Linux、BSD 以及其他类 Unix 系统来说,方法都大同小异。下面我们就来介绍 4 种常用的方法。

01. 使用 dig 命令(通用方法)

dig 命令是 Linux 系统中广泛内置的一个 DNS 查询工具。我们只要用它随便查询一个域名,就能从返回结果中,轻松找到当前使用的 DNS 服务器 IP 地址和端口。

1在「终端」中执行以下命令:

dig www.sysgeek.cn

2查看输出结果中的SERVER这一行,这里显示的就是你正在使用的 DNS 服务器信息。

使用 dig 命令查看 DNS 服务器 IP
使用 dig 命令查看 DNS 服务器 IP

02. 查看 resolv.conf 文件

/etc/resolv.conf文件是许多 Linux 系统进行域名解析时的「第一站」,可以说是系统里的「DNS 地址簿」。它明确告诉系统:当需要把demo.com这样的域名转成 IP 时,该去问哪台服务器。

1使用cat命令查看文件内容:

cat /etc/resolv.conf

2在这个文件中,每个以nameserver开头的,就表示一台 DNS 服务器,后面跟的就是 DNS IP 地址。

查看 resolv.conf 文件
查看 resolv.conf 文件

该文件可能是动态生成的,特别是当你使用 DHCP 或 NetworkManager 时。有些系统会将它链接到systemd-resolved的 stub 文件(如 /run/systemd/resolve/stub-resolv.conf),所以你看到的可能不是「真实」的上游 DNS。

03. 使用 systemd 的系统

许多现代 Linux 发行版,比如 Ubuntu、Fedora 和 Debian,都使用了 systemd 来管理系统服务,它也接管了包括 DNS 在内的网络配置。这类系统通常会由systemd-resolved服务来负责解析 DNS。

1使用resolvectl命令配合 grep 工具,快速提取 DNS 服务器 IP:

resolvectl status | grep "DNS Server"

2这条命令的作用是:

  • resolvectl status:显示当前网络连接的详细信息,包括活跃的 DNS 服务器。
  • grep "DNS Server":过滤输出,只保留包含 DNS IP 的行。
使用 resolvectl 命令查看活动 DNS
使用 resolvectl 命令查看活动 DNS

你也可以直接运行resolvectl不带参数,查看更完整的 DNS 和网络状态摘要。

04. 使用 NetworkManager 的系统

大多数现代 Linux 桌面发行版都使用 NetworkManager 来管理网络连接。在这种环境下,你可以通过nmcli命令行工具,来轻松获取 DNS 配置。

1在「终端」中执行以下命令:

nmcli dev show | grep 'IP4.DNS'

2在输出结果中,IP4.DNS[1]表示第一个 IPv4 DNS 服务器。如果你配置了备用 DNS,可能还会有IP4.DNS[2],甚至更多。

使用 nmcli 命令查看 DNS
使用 nmcli 命令查看 DNS

nmcli是 NetworkManager 的核心命令工具,功能十分强大。它不仅能查 DNS,还能管理 Wi-Fi、切换连接、查看信号强度等,非常值得深入学习。


以上 4 种方法,基本覆盖了在主流 Linux 中查看 DNS 服务器 IP 地址的方式。你可以根据自己的发行版和使用习惯,选择最合适的一种。

赞(0)
分享到

评论 抢沙发