如何记录我的所有 DNS 查询?

如何记录我的所有 DNS 查询?

如何创建我的计算机发出的每个 DNS 查询及其收到的响应的日志?

答案1

您可以tcpdump记录所有端口 53 UDP 和 TCP 活动。

答案2

要显示所有ADNS 请求并将其保存到文件中,请运行以下命令:

script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f8" | tee dns.log

输出示例:

google.com。
维基百科.org。

更新(2023):改变的输出格式tcpdump;域名位于字段 #9,而不是字段 #8。

固定单线:

script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f9" | tee dns.log

答案3

最简单的方法是在本地安装 Bind。大多数发行版默认安装的 Bind 都是非自动缓存。

只需添加一个logging {}配置块(如Bind 9 配置参考)然后将您的系统设置为使用127.0.0.1::1作为 DNS 解析器。

答案4

对于您感兴趣的请求,过滤 DNS 的一种简单方法是 grep 下一行,其中grep -A 2-A 位于之后,之后 2 行。如果服务器有很多 DNS 请求,则从 2 增加到 4-5

tcpdump -l port 53 |grep -A 2  redis

第二行是 DNS -> IP, CNAME,none , other 的答案

相关内容