我有一个有点奇怪的问题,我真的希望有人可以帮忙解决这个问题:
我上大学,无线网络在这里发出每个登录一定的配额/周(我的是2GB)。这意味着每周,我只能访问2GB的互联网 - 我的上传和下载一起最多必须达到2GB(我可以访问网页,告诉我剩余的配额)。我通常会获得一些恩典KB,但我们不考虑这个问题。
我的笔记本电脑运行Ubuntu并安装了conky系统监视器,我已将其配置为显示(除其他外)我剩余的无线配额。最初,我在网页和grep
上找到了剩下的配额。但是,由于我的conky每5秒刷新一次并且我在无线连接上超过12小时,因此检查网页本身会导致我的无线配额失效。
为了解决这个问题,我想我可以做两件事之一:
(1)是我到目前为止所做的:我设置了一个cron作业,每分钟点击网页并将结果存储在我本地文件系统的文件中。 Conky随后读取此文件 - 无需点击该网页;没有失去无线配额,感谢conky。
这个解决方案是一个12倍的胜利,但仍然不够。但是,我是实时数据的粉丝,不会进一步降低cron频率。
所以,我唯一的其他解决方案是(2)。这是我发现有关wireshark和它的命令行版本tshark的时候。现在,这就是我认为我应该做的事情:
最后,我的问题是:
如果有帮助,网站会告诉我剩余的配额是KB
我已经查看了tshark man page,遗憾的是,这对我来说毫无意义,是我的网络n00b。
提前谢谢。
答案 0 :(得分:0)
有趣的问题。我没有使用 tshark 的经验,所以我个人会用 iptables 来解决这个问题。
看着:
[root@home ~]# iptables -nvxL | grep -E "Chain (INPUT|OUTPUT)"
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
Chain OUTPUT (policy ACCEPT 9763462 packets, 1610901292 bytes)
我们看到iptables
保持了通过每个链的字节数。因此,可以通过以下方式监控您的带宽使用情况:
-z
选项)以下是using iptables for IP accounting的一些示例。
这种方法有一些缺点。首先,你需要root权限来运行 iptables ,这意味着你需要以root身份运行conky,或者运行一个cron守护进程,它将当前值写入conky可以访问的文件。
此外,并非所有INPUT / OUTPUT数据包都可以计入您的带宽分配,例如内部网访问,DNS等。可以通过匹配它们并将它们放在单独的 iptables 链中来过滤掉相关的连接(上面给出的链接中的示例)。一种更简单的方法(如果差异不是太大)将偶尔从网上获取您的实时配额,重置您的值并重新开始。
如果现有的 iptables 规则很复杂或使用自定义链,那么它也会变得有点棘手。然后,您将需要一些 iptables 的知识来检索正确的值。
答案 1 :(得分:0)
这听起来像是vnstat的工作!
请参阅:How do I calculate network utilization for both transmit and receive