系统管理员的利器:深入解析 dig 命令
作为系统管理员,日常工作看似平静,实则暗藏危机。当突发事件来临时,一些强大的命令就显得尤为重要。本文将聚焦于其中一个关键工具:dig 命令。
系统管理员的工作压力巨大,需要时刻保持警惕,随时应对各种挑战。 24/7 全天候待命是他们工作的基本要求之一,我们对此深感敬佩。
我们今天不探讨系统管理员的职业生涯,而是深入了解他们用来解决 DNS 问题的利器。
什么是 dig 命令?
Dig 是 Domain Information Groper 的缩写,它是一种快速查询 DNS 服务器状态的工具,帮助我们快速定位哪些环节运转正常,哪些环节出现故障。
通过 dig 命令,我们可以获取服务器 IP 地址、域名服务器信息、邮件交换记录、查询 TTL 等重要信息,并且命令本身简单易记。
在开始学习 dig 命令之前,请先检查系统是否已安装 dig 工具:
$ dig -v
如果已安装,应该返回 dig 的版本信息,例如:
DiG 9.18.1-1ubuntu1-Ubuntu
如果没有得到类似的回应,则需要先安装 dig 工具。
对于 Ubuntu 和 Debian 用户,可以使用以下命令安装:
$ sudo apt-get install dnsutils
对于 CentOS 或 RHEL 用户,请使用:
$ sudo yum install bind-utils
安装完成后,再次运行 dig -v 确认安装成功。
接下来,我们将深入了解一些常用的 dig 命令,帮助您高效处理系统管理任务。
检查 IP 地址
这是查询域名对应的服务器 IP 地址的最基本的方法之一。
我们将从最简单的命令开始:dig techblik.com.com
$ dig techblik.com.com ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> techblik.com.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38635 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;techblik.com.com. IN A ;; ANSWER SECTION: techblik.com.com. 67 IN A 172.66.43.163 techblik.com.com. 67 IN A 172.66.40.93 ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Wed Nov 09 04:29:58 UTC 2022
首先,查看顶部的 “Got answer” 部分中的 “status: NOERROR”,这表示查询顺利完成,没有发生任何错误。
我们主要关注的是服务器 IP 地址,这些信息在 “ANSWER SECTION” 中显示:172.66.40.93 (主服务器) 和 172.66.43.163 (备用服务器)。
“QUESTION SECTION” 则显示了您原始的查询语句。
最后一部分提供了一些关于查询的统计信息。
但是,默认的 dig 命令输出的信息比较多,并非所有信息都是必要的。
因此,可以通过添加参数来简化输出:
$ dig techblik.com.com +noall +answer techblik.com.com. 53 IN A 172.66.43.163 techblik.com.com. 53 IN A 172.66.40.93
在这里,”+noall” 屏蔽了所有的默认输出,”+answer” 只保留了我们需要的答案部分。
如果想要更简洁的输出,可以使用以下命令:
$ dig techblik.com.com +short 172.66.43.163 172.66.40.93
以上是查询 DNS A 记录的基本方法,接下来我们将介绍其他类型的查询。
查找特定的 DNS 记录
域名服务器 (Nameservers) 是域名的权威 DNS 服务器,可以使用 “ns” 变量进行查询。
$ dig techblik.com.com ns +short olga.ns.cloudflare.com. todd.ns.cloudflare.com.
同样,”mx” 变量可以查询邮件服务器及其优先级。
$ dig techblik.com.com mx +noall +answer techblik.com.com. 300 IN MX 1 aspmx.l.google.com. techblik.com.com. 300 IN MX 10 alt3.aspmx.l.google.com. techblik.com.com. 300 IN MX 10 alt4.aspmx.l.google.com. techblik.com.com. 300 IN MX 5 alt1.aspmx.l.google.com. techblik.com.com. 300 IN MX 5 alt2.aspmx.l.google.com.
类似地,使用 “txt”, “aaaa”, “cname” 等变量可以查询不同类型的 DNS 记录。
跟踪 DNS 解析路径
顾名思义,跟踪 DNS (Trace DNS) 可以显示从根域名服务器到权威域名服务器,最终到目标域名的 IP 地址的完整解析路径。
$ dig techblik.com.com +trace ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> techblik.com.com +trace ;; global options: +cmd . 322660 IN NS a.root-servers.net. . 322660 IN NS b.root-servers.net. . 322660 IN NS c.root-servers.net. . 322660 IN NS d.root-servers.net. . 322660 IN NS e.root-servers.net. . 322660 IN NS f.root-servers.net. . 322660 IN NS g.root-servers.net. . 322660 IN NS h.root-servers.net. . 322660 IN NS i.root-servers.net. . 322660 IN NS j.root-servers.net. . 322660 IN NS k.root-servers.net. . 322660 IN NS l.root-servers.net. . 322660 IN NS m.root-servers.net. ;; Received 811 bytes from 127.0.0.53#53(127.0.0.53) in 16 ms com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766 com. 86400 IN RRSIG DS 8 1 86400 20221121170000 20221108160000 18733 . ZgW2dKMBP6rqIgQSGN5uzFhNFZuIPUg7JrkXzgE9VKh68LOIuQlFgTTV xt3Sz4ytgru8JWcwCHgiqCTjbaN3WeHcrDVf0ItG0Az/01ofBWfoAu9S 1JFYcOrYkTUidn8R4vROkwzsTrZMirnB/4yrA4MD5thWVBr3IczcnFto DbADuw8Qy/RUEUfcu+LcQ4Ge+OzIP8eE1T6+nbMRqFZBSMFoBO1w0Mmk xNGyEclfFkymQ4CsYxnvYVstljpLqh1OhoAEwY6D+0cSh9dKNQ5LKhgq UXqfJ+zmdcvL+cVvMjfcB0Wj6/hmEkpEp1ISawlTjFUDgiKNZxiow02r JL4tsw== ;; Received 1201 bytes from 192.33.4.12#53(c.root-servers.net) in 148 ms techblik.com.com. 172800 IN NS olga.ns.cloudflare.com. techblik.com.com. 172800 IN NS todd.ns.cloudflare.com. techblik.com.com. 86400 IN DS 2371 13 2 CBAA2018F41B29985DAEDE7F127D4F9626ADA609665CEBAB0011903B 7C639254 techblik.com.com. 86400 IN RRSIG DS 8 2 86400 20221112051535 20221105030535 53929 com. sbqDGqvxmEAjS4KRx8LvQAG9IusLgRRm5GPDf+AFkXddGgfJN37vJP1H 4JKMriWtgXZHc3g1ANMNjij+5J1K3GgeNy2w0UYc7xHkmvhsd15pDvi9 +BoiBsjC8ffznyli8sV8XVhm65oKDHJRx5YEtXUVA4p9hegO0NHDccvt ujQKMShBWX3nxs7P4onL13gspVScOoZgzXL3470UfDW7MA== ;; Received 601 bytes from 2001:501:b1f9::30#53(m.gtld-servers.net) in 144 ms techblik.com.com. 300 IN A 172.66.43.163 techblik.com.com. 300 IN A 172.66.40.93 techblik.com.com. 300 IN RRSIG A 13 2 300 20221110051242 20221108031242 34505 techblik.com.com. tKDYd/FHjs/aRHeOQJlsxXDJYtVcHA4G16QRJKlhFyYkZ2TmLKNIc6eM vXfpO91IVArK67KbyW5lIxI5cCxcQg== ;; Received 183 bytes from 172.64.32.137#53(olga.ns.cloudflare.com) in 16 ms
你也可以使用 +short
或 +noall +answer
参数来获取更简洁的输出。
反向 DNS 查找
反向 DNS 查找显示与 IP 地址关联的 PTR 记录。 它与 DNS A 记录相反,将 IP 地址与域名相匹配。
但是,如果域名没有 DNS PTR 记录,则不会显示任何答案部分。
反向查找的命令格式是 dig -x IP地址
。
[email protected]:~$ dig yahoo.com +short 74.6.143.26 74.6.231.20 98.137.11.164 98.137.11.163 74.6.143.25 74.6.231.21 [email protected]:~$ dig -x 74.6.143.26 ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> -x 74.6.143.26 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32267 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;26.143.6.74.in-addr.arpa. IN PTR ;; ANSWER SECTION: 26.143.6.74.in-addr.arpa. 600 IN PTR media-router-fp74.prod.media.vip.bf1.yahoo.com. ;; AUTHORITY SECTION: 143.6.74.in-addr.arpa. 172800 IN NS ns3.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns4.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns5.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns2.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns1.yahoo.com. ;; Query time: 192 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Wed Nov 09 04:17:08 UTC 2022 ;; MSG SIZE rcvd: 203
如你所见,”Answer Section” 中显示域名 “media-router-fp74.prod.media.vip.bf1.yahoo.com” 与其 IP 地址 74.6.143.26 关联。
访问此 URL 实际上会将您重定向到 Yahoo 的搜索主页。
但需要注意的是,并非所有 Web 主机都支持反向 DNS 查找,在某些情况下,这些看似冗长的 URL 可能无法正常工作。
查询特定的 DNS 服务器
有时,您可能需要向特定的 DNS 服务器发送查询请求。 你可以通过添加 @DNS服务器IP地址
的方式来指定查询所使用的服务器。
$ dig @1.1.1.1 techblik.com.com +noall +answer +stats techblik.com.com. 300 IN A 172.66.40.93 techblik.com.com. 300 IN A 172.66.43.163 ;; Query time: 156 msec ;; SERVER: 1.1.1.1#53(1.1.1.1) (UDP) ;; WHEN: Wed Nov 09 04:18:56 UTC 2022 ;; MSG SIZE rcvd: 74
你可以在 “stats” 部分验证是否使用了指定的服务器,其中 “Server: 1.1.1.1” 代表使用的是 Cloudflare 的 DNS 服务器。
类似地,你可以查询 Google 的 DNS 服务器 (8.8.8.8):
$ dig @8.8.8.8 techblik.com.com mx +noall +answer +stats techblik.com.com. 300 IN MX 1 aspmx.l.google.com. techblik.com.com. 300 IN MX 10 alt3.aspmx.l.google.com. techblik.com.com. 300 IN MX 10 alt4.aspmx.l.google.com. techblik.com.com. 300 IN MX 5 alt1.aspmx.l.google.com. techblik.com.com. 300 IN MX 5 alt2.aspmx.l.google.com. ;; Query time: 44 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP) ;; WHEN: Wed Nov 09 04:23:16 UTC 2022 ;; MSG SIZE rcvd: 157
总结
正如其名称所示,dig 命令用于深入挖掘 DNS 信息,并帮助我们识别和解决相关问题。它通常运行速度很快,并且易于记忆。
此外,dig 工具可以在 Mac 和 Windows 上安装,使得它在各种操作系统中都通用。
最后,不要忘记访问 techblik.com 的系统管理员资源库,这是一个为您解决系统管理员难题的一站式中心。