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


14

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


如果给出的答案解决您的问题(我希望如此),请选择它作为接受,因此,作为解决这一问题可以被标记..
heemayl

Answers:


8

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,我也会根据可用选项和您限制的速度推荐它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.