DNS(Domain Name System)是诸如邮件服务器、互联网浏览和流媒体服务(例如 Netflix 和 Spotify)等众多网络技术的基础支撑。
DNS 工作在一台称为 DNS 服务器的特殊计算机上,该服务器会保存多个公共 IP 地址及其对应主机名的数据库记录,以便在用户请求时解析或将主机名转换为 IP 地址。
有了 DNS,我们就不用费心记住访问过的不同网站的 IP 地址了。
虽然我们可以讨论 DNS 服务器的一些内容,例如重定向和恶意软件攻击预防,但今天的重点是如何找到自己的 DNS 服务器 IP 地址。
根据所运行的操作系统,有多种方法可以查找 IP 地址。Linux、BSD 和类 Unix 系统都使用相同的方法,因此,我们就从这些系统开始吧。
1] 使用 /etc/resolv.conf 文件
/etc/resolv.conf 文件就像操作系统的一本小型地址簿,它会告诉系统在需要将网站名称(例如 google.com)转换为 IP 地址时使用哪些 DNS 服务器。
要查看此文件,可以使用 cat 命令,它会将全部内容在终端上显示出来:
# cat /etc/resolv.conf
如果想更为舒适地滚动浏览该文件,则可以使用 less 命令:
# less /etc/resolv.conf
根据文件内容,通常会看到如下几行:
nameserver 121.83.238.17 nameserver 58.191.153.13
文件中每行为一条记录,具体含义如下:
- nameserver – 此关键字表示该行定义了一个 DNS 服务器
- 121.83.238.17 – 这是计算机在查找网站名称时将查询的 DNS 服务器的 IP 地址
因此,每当计算机想要打开一个网站时,它都会向这个 DNS 服务器询问:”嘿,example.com 的 IP 是多少?” 然后,服务器会返回正确的 IP 地址,以便系统能够连接正确的 IP 地址。
所以,我们可以将 /etc/resolv.conf 视为计算机尝试确定网站位置时的第一站。通过检查此文件,就可以准确地了解自己的系统正在使用哪个 DNS 服务器。
2] 对于使用 systemd 的系统
许多现代 Linux 发行版(例如 Ubuntu、Fedora 和 Debian)都使用 systemd 来管理系统服务,而 systemd 处理的任务之一就是网络配置,包括 DNS。
如果当前的系统使用了 systemd,由于 systemd 会动态管理 DNS,传统的 /etc/resolv.conf 文件可能无法始终显示完整或正确的 DNS 信息。在这种情况下,就可以使用 resolvectl 命令和 grep 来可靠地检查当前使用的 DNS 服务器。
# resolvectl status | grep "DNS"
该命令的作用:
- resolvectl status 显示有关网络连接的详细信息,包括正在使用的 DNS 服务器
- grep “DNS” 会过滤输出,只显示 DNS IP 地址的行
示例输出:
DNS Servers: 192.168.0.1 8.8.8.8
这里,第一个地址(192.168.0.1)通常是主机的本地路由器或网关,而第二个地址(8.8.8.8)可能是像 Google DNS 这样的公共 DNS 服务器。
3] 使用 Network Manager
如果所使用的 Linux 系统使用了 Network Manager(大多数现代桌面发行版都使用),我们就可以使用 nmcli 命令轻松找到 DNS 服务器 IP,该命令会显示所有网络连接的详细信息。
# nmcli dev show | grep 'IP4.DNS'
示例输出如下:
IP4.DNS[1]: 192.168.0.1
输出内容意义如下:
- IP4.DNS[1] 表示这是系统正在使用的第一个 IPv4 DNS 服务器。如果系统配置了多个 DNS 服务器,它可能显示为 IP4.DNS[2]
- 192.168.0.1 是 DNS 服务器的 IP 地址,计算机将通过该地址将域名解析为 IP 地址
4] 如何查看 web 网站的 IP 地址
要查找 web 网站对应的 DNS 记录的 IP 地址,可以使用 dig 命令,该命令用于查询 DNS 信息。
例如想查看本网站的 DNS 记录信息,则可以使用如下命令:
输出将为您提供您网站的权威名称服务器(即负责您域名的 DNS 服务器)的 IP 地址列表。
示例输出如下:;
<<>> DiG 9.16.50-Debian <<>> rultr.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51459 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;rultr.com. IN A ;; ANSWER SECTION: rultr.com. 1799 IN A 162.255.119.254 ;; Query time: 16 msec ;; SERVER: 205.185.112.68#53(205.185.112.68) ;; WHEN: Sun Sep 07 19:09:09 PDT 2025 ;; MSG SIZE rcvd: 54
该命令会输出网站的权威 DNS 服务器(即负责网站域名的 DNS 服务器)给出的的 IP 地址信息:
;; ANSWER SECTION: rultr.com. 1799 IN A 162.255.119.254
需要注意的是,我们收到的 IP 地址可能会因网站托管服务提供商或域名注册商而异。如果网站使用第三方 DNS 服务(例如 Cloudflare 或 Google Cloud DNS),则 IP 地址将特定于这些服务。
以上就是关于查看 DNS 信息的主要内容,是不是很简单呢。