我看到很多工具可以获取接口上传输的 RX 和 TX 字节数,是否有任何工具/程序可以用来获取单个指定套接字的总传输字节数?
我正在尝试限制用户对该服务的使用,例如,用户编号 23 已购买 20 GiB 的传输量,而他们刚刚下载了 1 GiB 的 linux .iso。现在他们剩余的传输量应该少了 1 GiB。
问题是我正在使用基于云的解决方案...我有一个每个用户都会使用的共享界面,但我不知道是否可以使用 SNMP,因为我不知道硬件的具体细节。(我也不太清楚 SNMP 是什么,或者它是否需要特定的硬件)
我只是想跟踪每个用户的传输,可能是每个套接字或地址,或者不可能。有没有接近我想要的东西?
答案1
您没有可以查询的每个套接字计数器,特别是因为一旦套接字关闭,就没有任何内容可以再查询了。
您可以做的一件事是安装一组iptables
具有不同--uid-owner
选项和-j ACCEPT
目标的规则。这些规则不会阻止任何内容,但每条规则上的计数器(使用 可见iptables -L -n -v
)将根据每个用户计算数据包和字节数。请注意,这将仅计算传出流量(因为传入流量不是来自用户,而是来自网络)。