我运行一个带宽为 1 Gbps 的 OpenVPN 服务器,我需要将其限制为每个用户 5 Mbps。
在互联网上搜索我找到了这个 bash 脚本:
$U32 = "tc filter add dev tun0 protocol ip parent 1:0 prio 1 u32"
tc qdisc add dev tun0 root handle 1: htb default 30
tc class add dev tun0 parent 1: classid 1:1 htb rate 5mbit
tc class add dev tun0 parent 1: classid 1:2 htb rate 5mbit
$U32 match ip dst 10.8.0.0/16 flowid 1:1
$U32 match ip src 10.8.0.0/16 flowid 1:2
我试过了,但是它将整个接口限制到 5Mbps 而不是单个 IP,而且由于我不知道如何使用 tc,所以我无法进一步操作。
你们中有人知道如何修改它以将范围内的每个 IP 限制为最大 5Mbps 吗?
附加问题:您是否知道任何好的在线资源可以了解有关 tc 的更多信息?
答案1
我很确定它是这样的:
tc qdisc add dev tun0 parent root handle 1: htb default 30
tc class add dev tun0 parent 1: classid 1:1 htb sc rate 1000mbit ul rate 1000mbit
tc class add dev tun0 parent 1:1 classid 1:11 htb sc rate 5mbit ul rate 5mbit
我这样说的原因是,我使用了一个脚本将除选择集之外的所有人都限制为 5mbit,而且由于您不需要该集,所以应该没问题。但是我使用 hfsc所以我可能对格式有误,但要点似乎是父类具有最大带宽,子类具有每个用户的实际限制。我不敢说自己是专家,但由于一年半以来您都没有得到答复,也许您已经找到了答案,但忘记更新帖子,或者您仍在寻找解决方案。