如何找出哪个应用程序正在发出DNS请求?

我使用BIND9作为我的机器上的caching唯一名称服务器。

BIND只在本地主机上侦听,只有本地主机被允许查询DNS服务器。 我用它来caching请求到RBL列表,因为这台机器是邮件服务器。

我从BIND得到很多关于lame服务器parsing的警告:

named[1017]: lame server resolving 'www.gadgethive.com' (in 'gadgethive.com'?): 109.73.163.116#53 named[1017]: lame server resolving 'www.gadgethive.com' (in 'gadgethive.com'?): 109.73.163.115#53 named[1017]: lame server resolving 'www.gadgethive.com' (in 'gadgethive.com'?): 109.73.163.116#53 

我明白这意味着什么,但我找不到这个讯息的罪魁祸首。 在日志中始终是相同的域,通过检查邮件服务器日志,我找不到具有该域的电子邮件。

为了使事情变得更糟,在系统日志中logging此日志时甚至没有收到电子邮件。

有没有办法find服务器上的哪个进程发出这个请求?

BIND9没有什么要求查询的概念。 它只知道连接是在一个端口上进行的…而且它要求提供一些DNSlogging。 你最好的select是使用iptablesloginDNS连接。 从那里你可以找出究竟是谁连接和什么时候,并交叉引用它们。