linux – 测量每个用户或每个进程的累积网络统计信息

我一直在谷歌搜索几个小时 – 在 Linux下我想知道用户或通过所有IP协议进程发送和接收的累积字节数.我在搜索中发现的最好的是可以使用iptables为用户标记数据包,例如:
iptables -t mangle -A OUTPUT -p tcp -m owner --uid-owner test -j MARK --set-mark 1

似乎“tc”可以随之形成交通,但我只想要统计数据 – 我不想塑造流量.我想要一些类似的东西:“用户U从Y开始就传输了使用过的XMB”.我无法弄清楚如何从这些标记的数据包中获取统计信息.此外,我看过nethogs,但他们似乎正在测量瞬时流量,我需要累积计数.有人有想法吗?

解决方法

iptables -m owner技巧只能跟踪发送出去的用户的数据包(根据定义).它不能用于跟踪为该用户接收的数据包.

我承认,在我的头脑中,我没有看到任何好办法.在黑暗中,它将涉及在内核级别应用补丁,例如,仅允许特定用户绑定到网络堆栈上的特定端口范围(类似于只有root可以绑定到网络套接字的想法)在端口1024和更低).然后,您可以在这些端口范围上应用iptables流量日志记录,并确保任何流量仅适用于允许绑定到这些端口的相应用户.不足之处是,这会对那些不了解这些限制的用户应用程序造成严重破坏,然后他们决定尝试绑定到一个端口而内核拒绝这样做.

也许可以用SE Linux做到这一点,但我怀疑有可能成为系统管理员维护的噩梦:http://www.linuxquestions.org/questions/linux-server-73/how-can-i-restrict-ports-for-users-to-bind-to-667153/

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...