有没有简单的方法来限制用户带宽使用?

有没有简单的方法来限制用户带宽使用?

有没有简单的方法可以将用户带宽使用限制在 10kpbs 左右?其他用户应该不会受到影响。我发现最好的方法是 tc,但做这么简单的事情似乎太复杂了。

答案1

tc 是满足您配置需求的正确答案。tc
可能看起来很复杂,因为它管理全类(和更少)队列门徒,这为其提供了无限的灵活性和整形和过滤层。
但事实并非如此。由于 tc 利用内核中的内置(或模块化)队列门徒,因此它是按用户限制带宽的最简单/最佳方法。这
是一个示例设置,我将其保留为 Mbit 格式,但您可以将速率测量单位更改为 kbps。

tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1Mbit ceil 1Mbit prio 1

对于您的 iptables 规则,只需将 --uid-owner 更改为您希望限制的用户的 uid,文档说您可以使用用户名而不是 UID,但尚未测试过。

iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m owner --uid-owner 1000 -j CLASSIFY --set-class 1:1

仅供参考,即使您不需要 HTB,我也会根据可用选项和您限制的速度来推荐它。

相关内容