我无法使用 dig/nslookup/host 列出它们。
答案1
有两种方法,都需要管理员访问或信任 DNS 记录:
- 执行区域传输(AXFR) 来检索域的所有记录。DNS 管理员需要明确允许从您选择的 DNS 服务器向您的 IP 地址进行 AXFR 传输。您可以像这样执行此类传输:
dig @ns1.google.com google.com AXFR
- 直接查看相关 DNS 服务器上的区域文件。您需要具有 DNS 服务器的管理员权限才能执行此操作。
答案2
在具有适当的 DNS 权限的情况下,使用 grep 查找 cname 记录:
host -t axfr my.dom.com dns.my.dom.com | grep -i cname
答案3
我不知道这是否解决了缺少上述适当权限的情况下对给定域的“所有” CNAME 记录的需求,但自 2023 年 5 月起,dig
使用拟议的 CNAME 进行查询的以下技巧有效,例如,如果您想检查 CNAME www.stackexchange.com
:
dalton@dalton-Precision-3541:$ dig +nocmd www.stackexchange.com +noall +answer www.stackexchange.com。219 IN CNAME stackexchange.com。 stackexchange.com。219 在 151.101.65.69 stackexchange.com.219 IN A 151.101.129.69 stackexchange.com.219 在 151.101.1.69 stackexchange.com.219 IN A 151.101.193.69 dalton@dalton-Precision-3541:$ 日期 2023 年 5 月 5 日 星期五 07:54:23 MDT
该输出为您提供 A 记录,即站点的规范名称为,stackexchange.com
其值为 IP 地址(给出了四个)。显示的别名或 CNAME(指规范名称)为www.stackexchange.com
。我注意到术语的选择有点令人困惑,即 CNAME 类型是 A 记录中规范名称的别名。
为了防止操作系统dig
和dig
版本存在差异,我使用了上述方法:
DiG 9.11.3-1ubuntu1.11-Ubuntu
如果使用规范名称查询,则只会获得 A 记录:
dalton@dalton-Precision-3541:$ dig +nocmd stackexchange.com +noall +answer stackexchange.com.300 IN A 151.101.129.69 stackexchange.com.300 IN A 151.101.193.69 stackexchange.com.300 IN A 151.101.65.69 stackexchange.com.300 IN A 151.101.1.69