tc 简单速率限制

tc 简单速率限制

我想做一个简单的速率限制,以便所有进出我的 http 服务器的 http 流量(进和出)都受到控制。

我在服务器上有一个 GigE 连接,我想将所有 HTTP 流量限制为 50mbps(此服务将用于本地速度测试)。

我已经尝试使用 tc 进行几次设置但都没有起作用,有什么想法可以让我轻松做到这一点吗?

我从不希望总流量(聚合 HTTP)超过 50mbps,否则会下降,如果我在同一个 vlan(在 GigE)上的另一台服务器上执行测试,我希望它获得 50mbps。

感谢致敬,

答案1

限制进出 http 流量的简单脚本:

#!/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/

答案2

你可以使用 htb-toolshttp://htb-tools.skydevel.ro/,它也使用 tc,但更易于使用。

相关内容