|
我的脚本,你参照一下吧
#!/bin/sh
ODEV="ppp0"
IDEV="eth0"
UP="60kbps"
DOWN="250kbps"
tc qdisc del dev $ODEV root 2>/dev/null
tc qdisc del dev $IDEV root 2>/dev/null
tc qdisc add dev $ODEV root handle 10: htb default 2254
tc qdisc add dev $IDEV root handle 10: htb default 2254
tc class add dev $ODEV parent 10: classid 10:1 htb rate $UP ceil $UP
tc class add dev $IDEV parent 10: classid 10:1 htb rate $DOWN ceil $DOWN
setipli()
{
tc class add dev $ODEV parent 10:1 classid 10:2$1 htb rate $3 ceil $4 prio $2
tc qdisc add dev $ODEV parent 10:2$1 handle 100$1: pfifo
tc filter add dev $ODEV parent 10: protocol ip prio $2 handle 2$1 fw classid 10:2$1
tc class add dev $IDEV parent 10:1 classid 10:2$1 htb rate $5 ceil $6 prio $2
tc qdisc add dev $IDEV parent 10:2$1 handle 100$1: pfifo
tc filter add dev $IDEV parent 10: protocol ip prio $2 handle 2$1 fw classid 10:2$1
iptables -t mangle -A PREROUTING -s 192.168.1.$1 -j MARK --set-mark 2$1
iptables -t mangle -A POSTROUTING -d 192.168.1.$1 -j MARK --set-mark 2$1
iptables -A FORWARD -i br0 -s 192.168.1.$1 -m mac --mac-source $7 -j ACCEPT
}
setiptcplimit()
{
iptables -I FORWARD -p tcp -d 192.168.1.$1 -m connlimit --connlimit-above $2 -j DROP
iptables -I FORWARD -p tcp -s 192.168.1.$1 -m connlimit --connlimit-above $3 -j DROP
iptables -I FORWARD -p tcp --syn -d 192.168.1.$1 -m connlimit --connlimit-above $4 -j DROP
iptables -I FORWARD -p tcp --syn -s 192.168.1.$1 -m connlimit --connlimit-above $5 -j DROP
iptables -I FORWARD -p udp -d 192.168.1.$1 -m connlimit --connlimit-above $2 -j DROP
iptables -I FORWARD -p udp -s 192.168.1.$1 -m connlimit --connlimit-above $3 -j DROP
}
iptables -P FORWARD DROP
iptables -D FORWARD -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -d 59.42.71.245 -j DROP
setipli "11" "4" "2kbps" "5kbps" "10kbps" "150kbps" "00:E0:4C:E1:11:EE"
setiptcplimit "11" "100" "200" "5" "20"
tc class add dev $ODEV parent 10:1 classid 10:2254 htb rate 0kbps ceil 1kbps prio 4
tc qdisc add dev $ODEV parent 10:2254 handle 100254: pfifo
tc filter add dev $ODEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254
tc class add dev $IDEV parent 10:1 classid 10:2254 htb rate 0kbps ceil 1kbps prio 4
tc qdisc add dev $IDEV parent 10:2254 handle 100254: pfifo
tc filter add dev $IDEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254
tc class add dev $ODEV parent 10:1 classid 10:2254 htb rate 0kbps ceil 1kbps prio 4
tc qdisc add dev $ODEV parent 10:2254 handle 100254: pfifo
tc filter add dev $ODEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254
tc class add dev $IDEV parent 10:1 classid 10:2254 htb rate 0kbps ceil 1kbps prio 4
tc qdisc add dev $IDEV parent 10:2254 handle 100254: pfifo
tc filter add dev $IDEV parent 10: protocol ip prio 100 handle 2254 fw classid 10:2254 |
|