我已经使用 TC 和 iptables 应用了带宽控制这我的 Strongswan VPN 服务器上的教程。仅当特定客户端已连接时,带宽控制才能正常工作。例如:在我的 Strongswan VPN 服务器中,我试图限制服务器 10.24.24.1 的带宽。
这问题是 只有当此客户端已连接然后我运行带宽脚本时,带宽限制才会起作用。否则,如果我先运行脚本,然后客户端再连接,带宽控制将不起作用。这是不是某种要求,即此脚本仅适用于已连接的客户端?
我的脚本如下所示
ikev2=24 #eth0
echo tc qdisc del dev $main root >>tcrules
echo tc qdisc add dev $main root handle 1: htb >>tcrules
for i in {1..254}
do
##udp1194
echo iptables -I FORWARD -s 10.$ikev2.$ikev2.$i -j MARK --set-mark 1$i >> mark
echo iptables -I FORWARD -d 10.$ikev2.$ikev2.$i -j MARK --set-mark 1$i >> mark
echo tc class add dev eth0 parent 1:1 classid 1:1$i htb rate 1mbit ceil 1mbit >> tcrules
echo tc qdisc add dev eth0 parent 1:1$i sfq perturb 10 >> tcrules
echo tc filter add dev eth0 protocol ip parent 1: prio 1 handle 1$i fw flowid 1:1$i >> tcrules
done