![接口上所有会话的流量控制](https://linux22.com/image/786226/%E6%8E%A5%E5%8F%A3%E4%B8%8A%E6%89%80%E6%9C%89%E4%BC%9A%E8%AF%9D%E7%9A%84%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6.png)
在连接到 1G 端口的接口上,我想限制所有用户/会话的单独下载速度不超过 20Mbits。我的意思是,如果其中两个用户尝试同时使用带宽,则每个用户都应该能够获得 20Mbits。
我将其用于不同的应用程序。一个是 Openvpn 用户管理。因此,让我们考虑一下界面tun0
。似乎在 Ubuntu 服务器机器上,最好的方法是使用tc
界面tun0
。
我尝试像这样设置我的塑造场景:
tc qdisc add dev tun0 root handle 1:0 htb
tc class add dev tun0 parent 1:0 classid 1:1 htb rate 20Mbit ceil 20Mbit prio 1
iptables -t mangle -A POSTROUTING -o tun0 -p tcp -j CLASSIFY --set-class 1:1
输入这些行后,我的调整似乎开始了。当我从用户连接到我的 openvpn 服务器并运行 oakla 速度测试时,我大致获得 20Mbits 的下载速度,如果没有 tc,则可能是 200Mbits。但问题是,当我连接第二个客户端并同时运行速度测试时,似乎 20Mbits 是随机在它们之间共享的。总和始终大约为 20Mbits,但没有一个可以单独达到甚至接近此限制。
我不想限制总金额。我应该限制个人。请帮我找出我做错了哪一部分。我是新手tc
。