我有一个centos box设置为IPTables的网关(很多东西如使用Squid的代理caching)。 我的局域网由大约30台机器组成,都通过网关的eth0(它是连接到DSL调制解调器的唯一计算机 – 通过eth1)连接到互联网。
面对一个月份下载的配额,我在网关上安装了带宽监视器的带宽使用,并设置为监视eth0。
所有进入网关的networkingstream量都被转发到端口3128以供Squid处理,但在带宽上似乎并不准确。 例如,启动带宽之后,其中一台计算机上的3.3 MB下载在HTTP下为该计算机指定4.8 M。 据我所知,通过监测eth0,我正在监视所有的networking活动,而不仅仅是互联网的使用(端口80等),但不是与80端口上的数据包或互联网使用带宽有关的HTTP标签?
我需要知道每个IP每天使用多less互联网下载配额。 该怎么办 :) ?
我发现与计数器应用程序的问题是,一旦你有使用计数,或graphics,不可避免的问题变成“这是什么”(当指向一个总的graphics或峰)。
我发现调查这些事情的最好方法是通过netflows和nfsen。 networkingstream量是对话的logging:来源,目的地,港口,次数,时间。 想想一下,你不关心传输的实际字节,只是汇总信息。 通过使用像nfsen这样的networkingstream量收集分析,你可以看到谁在跟谁谈话,通过查看端口,通常可以猜测他们在做什么。 最重要的是,你可以回头看看旧的对话。
这里是我在CentOS上安装nfsen的注意事项 。
另外一个古老但值得信赖的工具是iptraf。 它随每个发行版一起提供,小而快速的安装。 这是很好的,它是基于ncursed,所以你可以从命令行快速运行,以获得有关该框上的stream量的实时信息。
你可以为端口3128设置一个特定的iptables允许规则,因为这是你所有的出站stream量,然后使用“/ sbin / iptables -L -v”,它显示了每个规则所经过的数据包的带宽和数量。
您可以使用一对非常简单的iptables规则来计算您的CentOS网关盒中的所有IPnetworkingstream量。 如果eth0是面向互联网的networking接口,则规则可以是:
iptables -I 1 INPUT -i eth0 iptables -I 1 OUTPUT -o eth0
第一条规则匹配所有进入的stream量; 第二,所有的stream量都出去了。 这两条规则都没有采取任何行动,所以networkingstream量不会被修改。 还要注意, -I 1选项已将规则放在各自链的顶部,以确保所有数据包都能够打到它们。
iptables保持所有包匹配所有规则的包和字节数。 您可以按如下方式查询规则及其计数器:
iptables -L -n -v
您也可以查看计数器并将其重置为零,如下所示:
iptables -L -n -v -Z
信任带宽。 一个3.3MB的文件可以想象使用4.8MB的带宽。 我不认为你是会计开销。 每个数据包或来自该文件的一些数据都附加了信息,以帮助它到达目的地。
我不知道如何计算你应该看到的开销量。 希望有人可以在这一点上添加到这个答案。
我决定使用ntop,它相当简单,安装一个非常丰富的networking界面。 它将最有可能做的工作:)
编辑:我的问题解决了。 在HTTP下使用ntop,同时监视eth0所有的stream量路由,我可以准确地看到我下载到每个ip的大小。