微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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/

原文地址:https://www.jb51.cc/linux/398476.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐