Domain-Name-System

使用 dig 列出域中的所有 DNS 記錄?

  • September 21, 2021

我的公司執行一個內部 DNSmycompany.example

我需要在網路上找到一台機器,但我忘記了它的名稱。如果我能看到一份清單,它可能會喚起我的記憶。

如何列出所有域記錄mycompany.example

回答

對列出 CNAME 的具體問題的簡短回答是,未經許可,您不能進行區域轉移(請參閱如何列出給定域的所有 CNAME 記錄?)。

也就是說,如果您公司的 DNS 伺服器仍然支持 ANY 查詢,您可以使用 dig 列出其他記錄:

dig +noall +answer +multiline yourdomain.yourtld any 

這些 … +noall +answer +multiline… 是嚴格可選的,只是輸出格式標誌,以使輸出更易於人類閱讀(參見dig man page)。

例子

$ dig +noall +answer +multiline bad.horse any

回報:

bad.horse.              7200 IN A 162.252.205.157
bad.horse.              7200 IN CAA 0 issue "letsencrypt.org"
bad.horse.              7200 IN CAA 0 iodef "mailto:abuse@sandwich.net"
bad.horse.              7200 IN MX 10 mx.sandwich.net.
bad.horse.              7200 IN NS a.sn1.us.
bad.horse.              7200 IN NS b.sn1.us.
bad.horse.              7200 IN SOA a.sn1.us. n.sn1.us. (
                               2017032202 ; serial
                               1200       ; refresh (20 minutes)
                               180        ; retry (3 minutes)
                               1209600    ; expire (2 weeks)
                               60         ; minimum (1 minute)
                               )

警告 (RFC8482)

請注意,自 2019 年左右以來,大多數公共 DNS 伺服器已停止有效地回答大多數 DNSANY查詢。有關這方面的背景,請參閱:https ://blog.cloudflare.com/rfc8482-saying-goodbye-to-any/

如果ANY查詢未列舉多條記錄,則唯一的選擇是單獨請求每種記錄類型(例如 A、CNAME 或 MX)。

引用自:https://serverfault.com/questions/138949