以前没接触过TC,今天偶然看到,便记录下来,以后在服务器上试试。
TC 无需安装,Linux 内核自带
下面示例为将vpn IP地址段192.168.1.0/24 上传下载限速为 5M
将以下内容添加到/etc/ppp/ip-up文件exit 0上面
down=5Mbit upload=5Mbit #设置速度变量 #down /sbin/tc qdisc add dev $1 root handle 2:0 htb #建立qdisc队列 /sbin/tc class add dev $1 parent 2:1 classid 2:10 htb rate $down #建立类,限速5M /sbin/tc class add dev $1 parent 2:2 classid 2:11 htb rate 1024kbps #建立类,限速1M /sbin/tc qdisc add dev $1 parent 2:10 handle 1: sfq perturb 1 #为了不使一个会话永占带宽,添加随机公平队列sfq /sbin/tc filter add dev $1 protocol ip parent 2:0 u32 match ip dst 192.168.1.0/24 flowid 2:10 #建立过滤器规则,对192.168.1.0/24下载限速为5M #upload /sbin/tc qdisc add dev $1 handle ffff: ingress /sbin/tc filter add dev $1 parent ffff: protocol ip u32 match ip dst \ 192.168.1.0/24 police rate $upload burst 100k drop flowid 2:11 #限制192.168.1.0/24上传限速为5M
说明:$1为网络设备接口名称,如ppp0,ppp1……
还有其它可以使用的变量:
$PEERNAME #vpn登录用户名 $6 #客户端真实IP $4 #vpn服务端IP $5 $vpn客户端IP
删除所有 TC 限速规则
# tc qdisc del dev ppp0 root
显示qdisc队列状态
# tc -s -d qdisc show dev ppp0
显示class类状态
# tc -s -d class show dev ppp0
显示filter规则状态
# tc -s -d filter show dev ppp0
参考文档TC
http://www.php-oa.com/2009/06/23/linux_tc.html
转载请注明:HANLEI'BLOG » linux下tc限速方法