linux tc实现ingress&&egress限速

451 阅读1分钟

限制网卡的上行流量

上行流量用ingress这个qdisc实现,实现简单的限速

tc qdisc add dev wg0 ingress
tc filter add dev wg0 protocol ip ingress  u32 match ip src 13.0.0.3/32 police rate 10mbit burst 10k drop flowid :1
tc filter add dev wg0 protocol ip ingress  u32 match ip src 13.0.0.4/32 police rate 10mbit burst 10k drop flowid :1

限制网卡的下行流量

下行流量用htb这个qdisc实现,用不同的class来区分需要限制的ip地址 tc qdisc add dev wg0 root handle 1: htb default 2 tc class add dev wg0 parent 1: classid 1:1 htb rate 5Mbit ceil 10Mbit tc class add dev wg0 parent 1: classid 1:2 htb rate 1000Mbit ceil 10Mbit tc filter add dev wg0 parent 1: protocol ip prio 1 u32 match ip dst 13.0.0.3/32 flowid 1:1 tc filter add dev wg0 parent 1: protocol ip prio 1 u32 match ip dst 13.0.0.4/32 flowid 1:2

用iperf分别测试上行速率和下行速率

  • 上行

    1728989628070.png

  • 下行

1728989610279.png