一、前言
dnstop
是一个用于监听和解析 DNS 流量的实用工具。它可以帮助您监视网络中的 DNS 查询,并提供有关域名、IP 地址、查询类型等信息的实时统计。
当我们在分析DNS 服务器日志时,想去了解哪些用户在使用DNS 服务器,同时也希望对DNS 查询做一个统计。一般情况下,可以使用命令“tcpdump –i eth0 port 53”来查看DNS查询包,当然也可以把输出重定向到文件,然后使用rndc stats(bind9)来获取。但这种方法对于初学者而言操作复杂,也不直观。了解下工具dnstop,使用起来就非常方便。
二、安装dnstop
dnstop是一种非常优秀的开源软件,用户可以到网站http://dns.measurement-factory.com/tools/dnstop/src/上进行下载源码安装。
安装前,先安装依赖环境
源码安装dnstop:
# ./configure
# make && make instal
三、dnstop基本使用
一旦安装了 dnstop,您可以使用以下命令来启动它:
dnstop <网络接口>
例如,要监听名为 eth0 的网络接口上的 DNS 流量,您可以运行以下命令:
dnstop eth0
这将启动 dnstop 并开始监视指定网络接口上的 DNS 流量。
选项和参数
dnstop 支持多种选项和参数,可以根据您的需求对其进行配置。以下是一些常用的选项:
-l:设置要监听的 DNS 流量的源地址。默认为所有源地址。
-r:设置要监听的 DNS 流量的目标地址。默认为所有目标地址。
-T:指定输出时间间隔(以秒为单位)。默认为 5 秒。
-s:按查询统计排序输出。
-p:以 DNS 查询包的数量排序输出。
-S:按 DNS 响应大小排序输出。
-Q:显示详细的 DNS 查询类型统计信息。
-R:显示逆向 DNS 查询的统计信息。
您可以通过以下命令来查看所有可用选项和参数:
dnstop --help
示例用法
监视所有网络接口上的 DNS 流量:
dnstop
监视名为 eth0 的网络接口上的 DNS 流量,并按查询统计排序输出:
dnstop -s eth0
监视名为 eth0 的网络接口上的 DNS 流量,并按 DNS 查询包的数量排序输出:
dnstop -p eth0
四、dnstop扩展使用
在运行dnstop的过程中,可以键入<S>、<D>、<T>、<1>、<2>、<Ctr+R>、<Ctr+X>等方式以交互方式来显示不同的信息:
S:记录发送DNS查询的客户端IP地址列表:
D:记录DNS查询的目的服务器的IP地址表:
T:记录查询详细类型:
1:记录查询的***域名:
2:记录查询的二级域名:
Ctr+R:重新纪录
Ctr+X:退出