我想做一个简单的速率限制,所有去往或来自我的http服务器的httpstream量(进出)都是成形的。
我有一个GigE连接在服务器上,我想速度限制所有的HTTPstream量为50mbps例如(这项服务将用于本地speedtests)。
我已经尝试了几个与TC的设置,但没有任何工作,任何想法我可以轻松地做到这一点?
我从来不希望总stream量(聚合的HTTP)超过50mbps,过度下降,如果我在同一个vlan(在GigE)的另一台服务器上testing,我会想办法获得50mbps。
感谢致敬,
简单的脚本来限制入口和出口httpstream量:
#!/bin/bash INT="eth1" case "$1" in start|restart) tc qdisc del dev $INT handle ffff: ingress 2>/dev/null tc qdisc add dev $INT handle ffff: ingress tc filter add dev $INT parent ffff: protocol ip prio 50 u32 match ip dport 80 0xffff police rate 50Mbit burst 10m drop flowid :1 tc qdisc del dev $INT root handle 1: htb 2>/dev/null tc qdisc add dev $INT root handle 1: htb tc class add dev $INT parent 1: classid 1:1 htb rate 1000Mbit tc class add dev $INT parent 1:1 classid 1:5 htb rate 50Mbit prio 1 tc filter add dev $INT parent 1:0 prio 1 protocol ip u32 match ip dport 80 0xffff flowid 1:5 ;; stop) tc qdisc del dev $INT handle ffff: ingress 2>/dev/null tc qdisc del dev $INT root handle 1: htb 2>/dev/null ;; *) echo "Use: $0 start|stop" esac
脚本在工作: http : //linux.dyndns-work.com/video/linux_tc_simple_shape_ingress_and_egress_traffic.ogv/
你可以使用htb-tools http://htb-tools.skydevel.ro/ ,它也使用tc,但它更易于使用。