
標題: 簡單做 QOS [打印本頁]
	
	作者: danny    時間: 2006-11-19 18:54	     標題: 簡單做 QOS	
			建議存放位置及檔名:/usr/local/bin/qos.sh 
建議權限:711 
擁有者:root:root 
在 /etc/rc.d/rc.local 新增一行 
/usr/local/bin/qos.sh 
以便一開機即執行複製內容到剪貼板
代碼:
#!/bin/sh 
# #符號後面為註解 
# ============================================================================== 
# 變數設定區 
# ============================================================================== 
# 設定對外網卡介面名稱 
EXT_IF="eth0" 
# 設定網段 
# 網段1 的優先權比較高,網段2 的極速會被限制在 384kbps (48KB/S) 
SUBNET_1="10.0.0.x/27" 
SUBNET_2="192.168.0.x/27" 
# ============================================================================== 
# 上傳方向 
# ============================================================================== 
# 清除對外網卡所有佇列規則 
tc qdisc del dev $EXT_IF root 2>/dev/null 
# 定義最頂層的佇列規則 
tc qdisc add dev $EXT_IF root handle 10: htb default 20 
# 定義第一層根部類別  (rate 與 ceil 設一樣,是上傳最大頻寬,單位:KB/s) 
tc class add dev $EXT_IF parent 10: classid 10:1 htb rate 64kbps ceil 64kbps 
# 定義第二層葉類別  (rate 是保證頻寬,ceil 是最大限制頻寬,prio 是優先權,0最高) 
tc class add dev $EXT_IF parent 10:1 classid 10:10 htb rate 4kbps ceil 56kbps prio 0 
tc class add dev $EXT_IF parent 10:1 classid 10:20 htb rate 4kbps ceil 48kbps prio 1 
# 定義各葉類別的佇列規則 
tc qdisc add dev $EXT_IF parent 10:10 handle 101: pfifo 
tc qdisc add dev $EXT_IF parent 10:20 handle 102: pfifo 
# 設定過濾器 
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 10 fw classid 10:10 
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 20 fw classid 10:20 
# ============================================================================== 
# iptables 貼標籤 
# ============================================================================== 
# 符合規則的封包,就會被貼上標籤 
# 過濾器若偵測到標籤,會送到指定的 QoS 類別,進行限速 
iptables -F -t mangle 
# uploads 
iptables -t mangle -A PREROUTING -s $SUBNET_1 -j MARK --set-mark 10 
iptables -t mangle -A PREROUTING -s $SUBNET_2 -j MARK --set-mark 20 
echo "QoS set done"使用方法: 
-------------------------- 
修改其中的變數設定值 
# 設定對外網卡介面名稱 
EXT_IF="eth0" 
# 設定網段 
# 網段1 的優先權比較高,網段2 的極速會被限制在 384kbps (48KB/S) 
SUBNET_1="10.0.0.x/27" 
SUBNET_2="192.168.0.x/27" 
填入適當的值 
打 qos.sh,即可執行 
(前提:要放 /usr/local/bin,權限 711) 
這邊是假設你的上傳為 512K 
若不是請自行修改上傳的數值,和要流量限制的數值 
取自酷學園網站
| 歡迎光臨 ihao論壇 (https://www.ihao.org/dz5/) | 
Powered by Discuz! 6.0.0 |