有没有办法获取我的 BIND DNS 服务器上的 A 和 CNAME 记录的完整列表?
我可以访问区域文件。但我的服务器上有很多区域文件,手动查看所有文件会花费太长时间。是否有命令可以列出这些信息,还是我必须自己编写脚本?
答案1
grep
不要在所有区域文件上使用,而是使用:
% rndc dumpdb -zones
这将创建一个名为的服务器权威数据转储named_dump.db
,可能位于/var/named/data
(或类似)。
此文件比原始区域文件更容易解析,因为每行都以其适用的域名开头。原始区域文件可能已缩写。
答案2
从您的var/named/data
(或同等目录)使用适当的正则表达式通过 db.* 文件进行 grep,例如:
grep '\(. *A *[0-9][0-9]*\)\|\(..*CNAME..*\)' db.*
请注意,最后的 'db.*` 将所有 db 文件合并在一起。对每个包含区域文件的目录重复此操作。
答案3
对于我的域名列表中的 i;执行 dig -t axfr $i @localhost;完成
必须首先允许从本地主机进行区域传输。