LINUX下 对来访的每个IP进行带宽限制 Linux教程


LINUX自带的带宽管理工具 tc


第一步,先清空默认的tc配置

tc qdisc del dev eth0 root


第二步,创建根序列

tc qdisc add dev eth0 root handle 1: htb default 1


第三步,创建一个主分类绑定所有带宽资源(10M限速)

tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Mbit burst 15k

(到此,成功对每个ip进行限速)


#创建子分类(可选)

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 30Mbit ceil 10Mbit burst 15k

tc class add dev eth0 parent 1:1 classid 1:20 htb rate 30Mbit ceil 20Mbit burst 15k


#避免一个ip霸占带宽资源(上方子分类有写这个就要执行,1:20和1:10对应上方的)

tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10

tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10


#创建过滤器

#对所有ip限速(1:10可以修改为1:20,对应上方

tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 match ip dst 0.0.0.0/0 flowid 1:10

#对内网ip放行(1:20可以修改为1:10,对应上方

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 12.0.0.0/8 flowid 1:20


完事



总结配置简化

#限速10MBPS  --SSH一行搞定

[root@host~]# 

tc qdisc add dev eth0 root handle 1: htb default 1 && tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Mbit burst 15k && tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 match ip dst 0.0.0.0/0 flowid 1:1 && tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 12.0.0.0/8 flowid 1:1






琉璃玩家 ----------------2017-02-08a
最新回复 (0)
    • 琉璃玩家
      2
        登录 注册 
返回