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

前端之家收集整理的这篇文章主要介绍了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/

猜你在找的Linux相关文章