我有一个 centOS 盒子,它被设置为网关,带有 IPTables(以及使用 Squid 的代理缓存等许多功能)。我的 LAN 由大约 30 台机器组成,所有机器都通过网关的 eth0(这是唯一一台连接到 DSL 调制解调器的计算机 - 通过 eth1)连接到互联网。
面对每月的下载配额,我在网关上安装了bandwidthd来监控PC的带宽使用情况,并设置为监控eth0。
所有进入网关的网络流量都会转发到端口 3128 以供 Squid 处理,但在 broadbandd 上似乎并不准确。例如,在启动 broadbandd 后,其中一台计算机上的下载量为 3.3 MB,但在 HTTP 下该计算机的下载量为 4.8 M。我理解通过监控 eth0,我可以监控所有网络活动,而不仅仅是互联网使用情况(端口 80 等),但 broadbandd 中的 HTTP 选项卡难道与端口 80 上的数据包或互联网使用情况无关吗?
我需要知道每个 IP 每天使用了多少互联网下载配额。该怎么办 :)?
答案1
我发现计数器应用程序的问题是,一旦你有了使用计数或图表,不可避免的问题就变成了“什么是那“(当指向图表上的总数或峰值时)。
我发现调查这些事情的最佳方法是通过 netflows 和 nfsen。netflow 是对话的记录:源、目标、端口、字节数、时间。想象一下,您不关心实际传输的字节数,而只关心聚合信息。通过使用 nfsen 之类的工具对 netflow 集合进行分析,您可以看到谁在与谁交谈,并且通过查看端口,通常可以很好地猜测他们在做什么。最重要的是,您可以回到过去查看旧对话。
答案2
另一个老旧但值得信赖的工具是 iptraf。它随每个发行版提供,体积小且安装快捷。它基于 ncursed,因此您可以从命令行快速运行它,以获取有关该机器上流量的实时信息,这一点很不错。
答案3
您可能需要为端口 3128 设置特定的 iptables 允许规则,因为这是您所有的出站流量,然后使用“/sbin/iptables -L -v”,它会显示通过每个规则的带宽和数据包数量。
答案4
相信带宽。一个 3.3MB 的文件可能会使用 4.8MB 的带宽。我认为你没有考虑开销。该文件中的每个数据包或数据位都附带有信息,可帮助其到达目的地。
我不知道如何计算您应该看到的开销金额。希望有人能对此发表意见并补充此答案。