我正在编写 Linux 中的带宽管理软件。我使用 TC 进行带宽调整,效果很好。我想在一段时间内限制用户带宽。例如:
- 对于用户 1,一周 100MB
最好的方法是什么?
答案1
这iptables 配额模块也相当有用。
答案2
您可以为每个 IP 添加一条 iptables 规则,并使用它来统计通过该规则的流量。只需为每个 IP 添加 2 条规则:
iptables -A FORWARD -s <ip>
iptables -A FORWARD -d <ip>
然后您就可以获得iptables -nv -L FOWARD
如下结果:
# iptables -nvL FORWARD
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * virbr0 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED
这个是零,但bytes
我发誓该列会给你你想要的东西:)
之后,您需要做的就是cron
保存这些值,并检查它们是否超过了该周分配的字节数,然后更改规则以阻止流量或用来tc
限制其带宽或其他任何操作。