最大下载限制

ham*_*dsh 4 networking linux bandwidth traffic

我正在为 Linux 中的带宽管理编写软件。我使用 TC 进行带宽整形,效果很好。我想在一段时间内限制用户带宽。例如:

  • 对于用户 1,一周 100MB

最好的方法是什么?

cor*_*ump 6

您可以为每个 IP 添加一个 iptables 规则,并使用它来计算通过该规则的流量。只需为每个 IP 添加 2 个规则:

 iptables -A FORWARD -s <ip>
 iptables -A FORWARD -d <ip>
Run Code Online (Sandbox Code Playgroud)

然后你可以得到结果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
Run Code Online (Sandbox Code Playgroud)

这个为零,但该bytes列会给你你想要的我发誓:)

之后,您需要做的就是cron保存这些值,并检查它们是否超过了当周分配的字节数,然后更改规则以阻止流量或用于tc限制其带宽或其他任何内容。