У меня есть этот сценарий, в котором я пытаюсь поместить в «тюрьму» 1mbit/s
всех пользователей, которые скачивают все, что больше 10 МБ. Я думаю, я слишком много играл с этим и сломал что-то, что не могу понять:
#!/bin/sh
TC=/sbin/tc
IPT=/sbin/iptables
# eno1
# ---------------------------------------------------------
$TC qdisc del dev eno1 root
$TC qdisc add dev eno1 root handle 1: htb default 2
# total and desired bandwidths: WIP
$TC class add dev eno1 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
$TC class add dev eno1 parent 1:1 classid 1:2 htb rate 100mbit ceil 100mbit
$TC class add dev eno1 parent 1:1 classid 1:3 htb rate 1mbit ceil 1mbit
$TC qdisc add dev eno1 parent 1:2 sfq
$TC qdisc add dev eno1 parent 1:3 sfq
$TC filter add dev eno1 parent 1:0 protocol ip prio 1 handle 1 fw flowid 1:3
$IPT -A PREROUTING -i eno1 -t mangle -j CONNMARK --restore-mark
$IPT -A POSTROUTING -t mangle -m mark ! --mark 0 -j ACCEPT
$IPT -A POSTROUTING -t mangle -j CONNMARK --save-mark
$IPT -A OUTPUT -p tcp -m connbytes --connbytes 10000000: --connbytes-dir both --connbytes-mode bytes -j MARK --set-mark 1
Проблема в том, что он, похоже, ничего не делает. Есть идеи?