自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

教你如何使用 dig?

系統(tǒng) Linux
當(dāng)我第一次使用 dig 時,我發(fā)現(xiàn)它有點(diǎn)嚇人 —— 有這么多的選項!我打算把大部分的選項省略。在這篇文章中,我打算不談 dig 的大部分選項,只談我實際使用的選項。

[[438753]]

你好!最近我和幾個朋友聊天,他們提到希望知道如何使用 dig 來進(jìn)行 DNS 查詢,所以這是一篇關(guān)于它的速讀博文。

當(dāng)我第一次使用 dig 時,我發(fā)現(xiàn)它有點(diǎn)嚇人 —— 有這么多的選項!我打算把大部分的選項省略。在這篇文章中,我打算不談 dig 的大部分選項,只談我實際使用的選項。

我最近還了解到,你可以設(shè)置一個 .digrc 配置文件,讓它的輸出更容易閱讀,這讓它的使用變得更加輕松。

幾年前我還畫了一個關(guān)于 dig 的 zine 頁,但我想寫這篇文章來包括更多的信息。

兩種類型的 dig 參數(shù):查詢和格式化

有兩種主要的參數(shù)可以傳遞給 dig

  1. 告訴 dig 要進(jìn)行什么 DNS 查詢的參數(shù)。
  2. 告訴 dig 如何 格式化響應(yīng)的參數(shù)。

首先,讓我們看一下查詢選項。

主要的查詢選項

你通常想控制 DNS 查詢的 3 件事是:

  1. 名稱(如 jvns.ca)。默認(rèn)情況下,查詢的是空名稱(.)。
  2. DNS 查詢類型(如 A 或 CNAME)。默認(rèn)是 A。
  3. 發(fā)送查詢的 服務(wù)器(如 8.8.8.8)。默認(rèn)是 /etc/resolv.conf 中的內(nèi)容。

其格式是:

  1. dig @server name type

這里有幾個例子:

  • dig @8.8.8.8 jvns.ca 向谷歌的公共 DNS 服務(wù)器(8.8.8.8)查詢 jvns.ca
  • dig ns jvns.ca 對 jvns.ca 進(jìn)行類型為 NS 的查詢。

-x:進(jìn)行反向 DNS 查詢

我偶爾使用的另一個查詢選項是 -x,用于進(jìn)行反向 DNS 查詢。下面是輸出結(jié)果的樣子。

  1. $ dig -x 172.217.13.174
  2. 174.13.217.172.in-addr.arpa. 72888 IN PTR yul03s04-in-f14.1e100.net

-x 不是魔術(shù)。dig -x 172.217.13.174 只是對 174.13.217.172.in-addr.arpa. 做了一個 PTR 查詢。下面是如何在不使用 `-x’ 的情況下進(jìn)行完全相同的反向 DNS 查詢。

  1. $ dig ptr 174.13.217.172.in-addr.arpa.
  2. 174.13.217.172.in-addr.arpa. 72888 IN PTR yul03s04-in-f14.1e100.net。

我總是使用 -x,因為它可以減少輸入。

格式化響應(yīng)的選項

現(xiàn)在,讓我們討論一下你可以用來格式化響應(yīng)的參數(shù)。

我發(fā)現(xiàn) dig 默認(rèn)格式化 DNS 響應(yīng)的方式對初學(xué)者來說是很難接受的。下面是輸出結(jié)果的樣子:

  1. ; <<>> DiG 9.16.20 <<>> -r jvns.ca
  2. ;; global options: +cmd
  3. ;; Got answer:
  4. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28629
  5. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
  6.  
  7. ;; OPT PSEUDOSECTION:
  8. ; EDNS: version: 0, flags:; udp: 4096
  9. ; COOKIE: d87fc3022c0604d60100000061ab74857110b908b274494d (good)
  10. ;; QUESTION SECTION:
  11. ;jvns.ca. IN A
  12.  
  13. ;; ANSWER SECTION:
  14. jvns.ca. 276 IN A 172.64.80.1
  15.  
  16. ;; Query time: 9 msec
  17. ;; SERVER: 192.168.1.1#53(192.168.1.1)
  18. ;; WHEN: Sat Dec 04 09:00:37 EST 2021
  19. ;; MSG SIZE rcvd: 80

如果你不習(xí)慣看這個,你可能需要花點(diǎn)時間來篩選,找到你要找的 IP 地址。而且大多數(shù)時候,你只對這個響應(yīng)中的一行感興趣(jvns.ca. 180 IN A 172.64.80.1)。

下面是我最喜歡的兩種方法,可以使 dig 的輸出更容易管理:

方式 1 : +noall +answer

這告訴 dig 只打印 DNS 響應(yīng)中的“答案”部分的內(nèi)容。下面是一個查詢 google.com 的 NS 記錄的例子:

  1. $ dig +noall +answer ns google.com
  2. google.com. 158564 IN NS ns4.google.com.
  3. google.com. 158564 IN NS ns1.google.com.
  4. google.com. 158564 IN NS ns2.google.com.
  5. google.com. 158564 IN NS ns3.google.com.

這里的格式是:

  1. NAME TTL TYPE CONTENT
  2. google.com 158564 IN NS ns3.google.com.

順便說一下:如果你曾經(jīng)想知道 IN 是什么意思,它是指“查詢類”,代表“互聯(lián)網(wǎng)internet”。它基本上只是上世紀(jì) 80、90 年代的遺物,當(dāng)時還有其他網(wǎng)絡(luò)與互聯(lián)網(wǎng)競爭,如“混沌網(wǎng)絡(luò)chaosnet”。

方式 2:+short

這就像 dig +noall +answer,但更短:它只顯示每條記錄的內(nèi)容。比如說:

  1. $ dig +short ns google.com
  2. ns2.google.com.
  3. ns1.google.com.
  4. ns4.google.com.
  5. ns3.google.com.

你可以在 digrc 中設(shè)置格式化選項

如果你不喜歡 dig 的默認(rèn)格式(我就不喜歡!),你可以在你的主目錄下創(chuàng)建一個 .digrc 文件,告訴它默認(rèn)使用不同的格式。

我非常喜歡 +noall +answer 格式,所以我把 +noall +answer 放在我的 ~/.digrc 中。下面是我使用該配置文件運(yùn)行 dig jvns.ca 時的情況。

  1. $ dig jvns.ca
  2. jvns.ca. 255172.64.80.1

這樣讀起來就容易多了!

如果我想回到所有輸出的長格式(我有時會這樣做,通常是因為我想看響應(yīng)的權(quán)威部分的記錄),我可以通過運(yùn)行再次得到一個長答案。

  1. $ dig +all jvns.ca

dig +trace

我使用的最后一個 dig 選項是 +trace。dig +trace 模仿 DNS 解析器在查找域名時的做法 —— 它從根域名服務(wù)器開始,然后查詢下一級域名服務(wù)器(如 .com),以此類推,直到到達(dá)該域名的權(quán)威域名服務(wù)器。因此,它將進(jìn)行大約 30 次 DNS 查詢。(我用 tcpdump 檢查了一下,對于每個根域名服務(wù)器的 A / AAAA 記錄它似乎要進(jìn)行 2 次查詢,所以這已經(jīng)是 26 次查詢了。我不太清楚它為什么這樣做,因為它應(yīng)該已經(jīng)有了這些 IP 的硬編碼,但它確實如此。)

我發(fā)現(xiàn)這對了解 DNS 的工作原理很有用,但我不認(rèn)為我用它解決過問題。

為什么要用 dig

盡管有一些更簡單的工具來進(jìn)行 DNS 查詢(如 dog 和 host),我發(fā)現(xiàn)自己還是堅持使用 dig。

我喜歡 dig 的地方實際上也是我 不喜歡 dig 的地方 —— 它顯示了大量的細(xì)節(jié)!

我知道,如果我運(yùn)行 dig +all,它將顯示 DNS 響應(yīng)的所有部分。例如,讓我們查詢 jvns.ca 的一個根名稱服務(wù)器。響應(yīng)有 3 個部分,我可能會關(guān)心:回答部分、權(quán)威部分和附加部分。

  1. $ dig @h.root-servers.net. jvns.ca +all
  2. ;; Got answer:
  3. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18229
  4. ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
  5. ;; WARNING: recursion requested but not available
  6.  
  7. ;; OPT PSEUDOSECTION:
  8. ; EDNS: version: 0, flags:; udp: 1232
  9. ;; QUESTION SECTION:
  10. ;jvns.ca. IN A
  11.  
  12. ;; AUTHORITY SECTION:
  13. ca. 172800 IN NS c.ca-servers.ca.
  14. ca. 172800 IN NS j.ca-servers.ca.
  15. ca. 172800 IN NS x.ca-servers.ca.
  16. ca. 172800 IN NS any.ca-servers.ca.
  17.  
  18. ;; ADDITIONAL SECTION:
  19. c.ca-servers.ca. 172800 IN A 185.159.196.2
  20. j.ca-servers.ca. 172800 IN A 198.182.167.1
  21. x.ca-servers.ca. 172800 IN A 199.253.250.68
  22. any.ca-servers.ca. 172800 IN A 199.4.144.2
  23. c.ca-servers.ca. 172800 IN AAAA 2620:10a:8053::2
  24. j.ca-servers.ca. 172800 IN AAAA 2001:500:83::1
  25. x.ca-servers.ca. 172800 IN AAAA 2620:10a:80ba::68
  26. any.ca-servers.ca. 172800 IN AAAA 2001:500:a7::2
  27.  
  28. ;; Query time: 103 msec
  29. ;; SERVER: 198.97.190.53#53(198.97.190.53)
  30. ;; WHEN: Sat Dec 04 11:23:32 EST 2021
  31. ;; MSG SIZE rcvd: 289
  32.  

dog 也顯示了 “附加” 部分的記錄,但它沒有明確指出哪個是哪個(我猜 + 意味著它在附加部分?) ,但它似乎沒有顯示“權(quán)威”部分的記錄。

  1. $ dog @h.root-servers.net. jvns.ca
  2. NS ca. 2d0h00m00s A "c.ca-servers.ca."
  3. NS ca. 2d0h00m00s A "j.ca-servers.ca."
  4. NS ca. 2d0h00m00s A "x.ca-servers.ca."
  5. NS ca. 2d0h00m00s A "any.ca-servers.ca."
  6. A c.ca-servers.ca. 2d0h00m00s + 185.159.196.2
  7. A j.ca-servers.ca. 2d0h00m00s + 198.182.167.1
  8. A x.ca-servers.ca. 2d0h00m00s + 199.253.250.68
  9. A any.ca-servers.ca. 2d0h00m00s + 199.4.144.2
  10. AAAA c.ca-servers.ca. 2d0h00m00s + 2620:10a:8053::2
  11. AAAA j.ca-servers.ca. 2d0h00m00s + 2001:500:83::1
  12. AAAA x.ca-servers.ca. 2d0h00m00s + 2620:10a:80ba::68
  13. AAAA any.ca-servers.ca. 2d0h00m00s + 2001:500:a7::2

而 host 似乎只顯示“答案”部分的記錄(在這種情況下沒有得到記錄):

  1. $ host jvns.ca h.root-servers.net
  2. Using domain server:
  3. Name: h.root-servers.net
  4. Address: 198.97.190.53#53
  5. Aliases:

總之,我認(rèn)為這些更簡單的 DNS 工具很好(我甚至自己做了一個 簡單的網(wǎng)絡(luò) DNS 工具),如果你覺得它們更容易,你絕對應(yīng)該使用它們,但這就是為什么我堅持使用 dig 的原因。drill 的輸出格式似乎與 dig 的非常相似,也許 drill 更好!但我還沒有真正試過它。

就這些了

我最近才知道 .digrc,我非常喜歡使用它,所以我希望它能幫助你們中的一些人花更少的時間來整理 dig 的輸出!

有人在 Twitter 上指出,如果有辦法讓 dig 顯示響應(yīng)的簡短版本,其中也包括響應(yīng)的狀態(tài)(如 NOERROR、NXDOMAIN、SERVFAIL 等),那就更好了!我同意這個觀點(diǎn)!不過我在手冊中沒有找到這樣的選項。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-02-26 18:00:12

dig命令Linux域名解析

2019-09-30 10:51:11

Markdown標(biāo)記語言

2011-04-27 16:38:31

投影機(jī)

2011-08-12 09:23:16

dig中文man

2011-05-03 15:13:32

墨盒噴墨打印機(jī)

2024-07-29 13:50:58

Linuxdig命令

2022-12-07 08:42:35

2015-08-18 09:02:37

2009-09-23 13:04:58

HibernateOracle sequ

2009-05-22 15:10:13

2023-10-20 14:08:35

digDNS

2019-12-11 10:42:10

Linuxdignslookup

2020-10-22 09:36:32

Ubuntu同步文件

2010-06-11 12:47:34

UML視圖

2009-02-10 15:46:00

VNCLinux服務(wù)器遠(yuǎn)程桌面

2021-10-10 08:06:29

磁盤PowerShell信息

2009-09-02 14:59:35

Comparable接

2011-03-04 12:18:24

FileZilla

2009-11-05 10:13:39

WCF框架

2010-08-03 15:44:08

FlexBuilder
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號