2008-09-16 65 views
1

在基于Linux的系统(特别是Ubuntu Server 8.04)中,如何测量每个用户的下行带宽?最好,我想要一个直接提供数据的方法,而不必运行另一个进程并解析其输出。我有一种技术可以通过为每个用户设置一个iptables过滤器并定期检查他们的计数器来测量每个用户的上行带宽,但这似乎不支持下游连接,我认为这是因为iptables在它们之前检查数据包被路由到一个进程。你如何衡量每个用户的下行带宽?

[edit 20080916 153434 EST]“每个用户”,我的意思是在系统上的文字帐户。也就是说,任何拥有实际正在运行的进程的真实POSIX UID帐户。因此,对于Ubuntu Server 8.04,测量值将包括root,www-data,我自己的帐户等的值。

+0

您能否详细说明您的意思是“每个用户的基础?”用户是否通过PPP或其他机制连接到您,然后通过您路由流量,还是有人登录到本机并在本地使用? – 2008-09-16 19:31:45

回答

1

我没有看到任何显而易见的方式来执行此操作,但我希望它会是您可以使用自定义ip_conntrack模块。首次创建conntrack条目时,您会捕获uid,然后在两个方向上应用相同的uid。