QoS命令和脚本例子
来源:互联网 发布:oracle nvl mysql 编辑:程序博客网 时间:2024/06/05 23:17
----以下是典型的QoS脚本例子----
#!/bin/sh
#--------------------------------
#tc规则
#--------------------------------
#下载部分
#定义下载设备
DDEV="br-lan"
#定义下载总带宽
TDOWN="3400kbps"
#清除旧规则,这行命令也可以停止QoS功能
tc qdisc del dev $DDEV root 2>/dev/null
#定义根队列规则,指定未标记数据(default类别)的编号为90
tc qdisc add dev $DDEV root handle 10: htb default 90
#以下rate值为保证带宽,ceil值为最大带宽,prio值为优先级
#定义第一层的10:1类别(总带宽)
tc class add dev $DDEV parent 10: classid 10:1 htb rate $TDOWN ceil $TDOWN
#定义第二层的10:X0类别
tc class add dev $DDEV parent 10:1 classid 10:10 htb rate 4kbps ceil 6kbps prio 0
tc class add dev $DDEV parent 10:1 classid 10:20 htb rate 2kbps ceil 4kbps prio 1
tc class add dev $DDEV parent 10:1 classid 10:30 htb rate 0kbps ceil 2kbps prio 2
#队列规则
tc qdisc add dev $DDEV parent 10:10 handle 101: pfifo
tc qdisc add dev $DDEV parent 10:20 handle 102: pfifo
tc qdisc add dev $DDEV parent 10:30 handle 103: pfifo
#过滤规则
tc filter add dev $DDEV parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev $DDEV parent 10: protocol ip prio 100 handle 20 fw classid 10:20
tc filter add dev $DDEV parent 10: protocol ip prio 100 handle 30 fw classid 10:30
#--------------------------------
#上传部分
#定义上传设备
UDEV="pppoe-wan"
#定义上传总带宽
TUP="3400kbps"
#清除旧规则,这行命令也可以停止QoS功能
tc qdisc del dev $UDEV root 2>/dev/null
#定义根队列规则,指定未标记数据(default类别)的编号为90
tc qdisc add dev $UDEV root handle 10: htb default 90
#定义第一层的10:1类别(总带宽的规则)
tc class add dev $UDEV parent 10: classid 10:1 htb rate $TUP ceil $TUP
#以下rate值为保证带宽,ceil值为最大带宽,prio值为优先级
#定义第二层的10:X0类别
tc class add dev $UDEV parent 10:1 classid 10:10 htb rate 4kbps ceil 6kbps prio 0
tc class add dev $UDEV parent 10:1 classid 10:20 htb rate 2kbps ceil 4kbps prio 1
tc class add dev $UDEV parent 10:1 classid 10:30 htb rate 0kbps ceil 2kbps prio 2
#定义队列规则
tc qdisc add dev $UDEV parent 10:10 handle 101: pfifo
tc qdisc add dev $UDEV parent 10:20 handle 102: pfifo
tc qdisc add dev $UDEV parent 10:30 handle 103: pfifo
#定义过滤规则
tc filter add dev $UDEV parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev $UDEV parent 10: protocol ip prio 100 handle 20 fw classid 10:20
tc filter add dev $UDEV parent 10: protocol ip prio 100 handle 30 fw classid 10:30
#--------------------------------
#!/bin/sh
#iptables规则:
#--------------------------------
#下载规则,为特定IP的数据包打上指定标志
iptables -t mangle -A POSTROUTING -d 192.168.1.128 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -d 192.168.1.128 -j RETURN
iptables -t mangle -A POSTROUTING -d 192.168.1.160 -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -d 192.168.1.160 -j RETURN
#--------------------------------
#上传规则,为特定IP的数据包打上指定标志
iptables -t mangle -A POSTROUTING -s 192.168.1.128 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -s 192.168.1.128 -j RETURN
iptables -t mangle -A POSTROUTING -s 192.168.1.160 -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -s 192.168.1.160 -j RETURN
----以下是可直接执行的命令----
tc qdisc del dev br-lan root 2>/dev/null
tc qdisc add dev br-lan root handle 10: htb default 90
tc class add dev br-lan parent 10: classid 10:1 htb rate 2800kbit ceil 2800kbit
tc class add dev br-lan parent 10:1 classid 10:10 htb rate 1000kbit ceil 2000kbit prio 0
tc class add dev br-lan parent 10:1 classid 10:20 htb rate 240kbit ceil 1280kbit prio 1
tc class add dev br-lan parent 10:1 classid 10:30 htb rate 0kbit ceil 1000kbit prio 2
tc qdisc add dev br-lan parent 10:10 handle 101: pfifo
tc qdisc add dev br-lan parent 10:20 handle 102: pfifo
tc qdisc add dev br-lan parent 10:30 handle 103: pfifo
tc filter add dev br-lan parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev br-lan parent 10: protocol ip prio 100 handle 20 fw classid 10:20
tc filter add dev br-lan parent 10: protocol ip prio 100 handle 30 fw classid 10:30
tc qdisc del dev pppoe-wan root 2>/dev/null
tc qdisc add dev pppoe-wan root handle 10: htb default 90
tc class add dev pppoe-wan parent 10: classid 10:1 htb rate 400kbit ceil 400kbit
tc class add dev pppoe-wan parent 10:1 classid 10:10 htb rate 160kbit ceil 320kbit prio 0
tc class add dev pppoe-wan parent 10:1 classid 10:20 htb rate 80kbit ceil 320kbit prio 1
tc class add dev pppoe-wan parent 10:1 classid 10:30 htb rate 0kbit ceil 320kbit prio 2
tc qdisc add dev pppoe-wan parent 10:10 handle 101: pfifo
tc qdisc add dev pppoe-wan parent 10:20 handle 102: pfifo
tc qdisc add dev pppoe-wan parent 10:30 handle 103: pfifo
tc filter add dev pppoe-wan parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev pppoe-wan parent 10: protocol ip prio 100 handle 20 fw classid 10:20
tc filter add dev pppoe-wan parent 10: protocol ip prio 100 handle 30 fw classid 10:30
iptables -t mangle -A POSTROUTING -d 192.168.1.160 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -d 192.168.1.160 -j RETURN
iptables -t mangle -A POSTROUTING -d 192.168.1.161 -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -d 192.168.1.161 -j RETURN
iptables -t mangle -A POSTROUTING -s 192.168.1.160 -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -s 192.168.1.160 -j RETURN
iptables -t mangle -A POSTROUTING -s 192.168.1.161 -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -s 192.168.1.161 -j RETURN
停止QoS功能的命令是:
tc qdisc del dev br-lan root 2>/dev/null
tc qdisc del dev pppoe-wan root 2>/dev/null
- QoS命令和脚本例子
- QoS脚本
- 卷类型和qos主要命令
- ftp命令和自动上下传的脚本例子
- 后台权限数据表和linux后台执行脚本命令例子
- qos功能脚本
- shell 脚本和case例子
- shell 脚本和case例子
- QoS和QoS队列调度算法
- QoS,ToS和DiffServ
- QoS,ToS和DiffServ
- QoS,ToS和DiffServ
- QoS,ToS和DiffServ
- COS和QOS区别
- QoS,ToS和DiffServ
- dd命令解析和例子
- nginx rewrite例子和命令
- QoS
- 实现线程的两种方式
- C++ Primer Plus 读书总结
- SQL语法总结
- 机器学习_导航
- shell的字符串处理
- QoS命令和脚本例子
- iOS,在应用之间共享文档
- Git服务器在Ubuntu中的搭建
- sniffer
- hdu——2066(dijkstra最短路)
- 利用UImageView实现简单坦克移动操作
- 正则表达式常用匹配组合汇总
- windows7 cocos2d-x 2.1.4 环境搭建(3 搭建安卓移植平台)
- 黑马程序员 关于Object中equals的理解