不断地监视ip_conntrack为了监视在NAT路由器的浏览

所以,我有一个服务器,也为我的局域网(NAT)(伪装),并转发所有的互联网stream量到网关。

我需要知道谁在我的局域网访问什么网站。 我不想去整个SQUID代理路由

我(非常意外?)找不到任何能轻松完成的软件。

AFAICT,/ proc / net / ip_conntrack应该有我需要的所有信息,因为我所有的LAN连接都通过NAT。

所以我一起黑了一个小脚本,只是DNSparsingip_conntrack中的所有条目,并logging下来。

我的计划是简单地做一个'tail -f / proc / net / ip_conntrack | my_script.pl',并且用它来完成,但是tail-f似乎不能在这个文件上工作? 它倾倒了很多线,然后停下来。

我怎样才能获得实时NAT服务器上的每个新连接? 我错过了一个现成的软件,只是告诉我谁在我的局域网正在谈论互联网上的哪个服务器,通过这个NAT?

/proc/net/ip_conntrack不是tail -f可以工作的日志文件。 它更像是一个API,在查询时返回当前的内存状态。

为了得到相同的结果,你可以添加netfilter(iptables)规则,logging你所知道的stream量。 然后只是尾随你的系统日志文件,这些特定的内核消息去。

虽然在我看来,这或多或less是毫无意义的,因为所使用的IP的反向DNS并不会接近可靠地告诉你人们将要做什么。 目前互联网上的一大部分是CDN,或者像Amazon / Azure / Google /等云服务。 对于任何大型网站,您的反向DNS可能只会告诉您,您访问的大量内容都托pipe在许多云服务之一上。

还有一个很好的netstat-nat工具可以显示NAT连接,由netfilter / iptablespipe理。 程序从/proc/net/ip_conntrack/proc/net/nf_conntrack读取它的信息,这是netfilter的临时存储过程。

您只需要注意logging其输出并监视它。