今天还看到一个比较好玩的东西---shaperd,用来限制带宽。
shapred是给予libipq开发的,就是在用户空间,这样避免了比较复杂的内核空间编程和调试,但是会有少许性能的损失。
可以作为学习libipq的辅助材料。
还有一位台湾兄弟用它来限制本机流量,道德高尚啊 :)
http://tetralet.luna.com.tw/index.php?op=ViewArticle&articleId=116&blogId=1
在 Debian GNU/Linux 裡,要限制您的 Linux 主機的本機頻寬並非難事。首先,安裝 shaperd 套件:
然後在 /etc/shaperd/shaperd.conf 中設定頻寬限制範圍,例:
log level = warning
packet forwarding = ipq
daemon = yes
class all_up {
bandwidth = 96 kbit/s
ipv4 classifier out_if=ppp0
daddr=0/0
queue limits = 0 kb 180
packets
}
class all_down {
bandwidth = 1000 kbit/s
ipv4 classifier inp_if=ppp0
saddr=0/0
queue limits = 0 kb 150
packets
} |
接下來,設定 iptables,將規則為 ACCEPT 的皆改為 QUEUE,例:
# 預設上不接受任何連線
itables -P INPUT DROP
iptables -P OUTPUT DROP
# 本機 lo 連線不受管控
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 不回應來自 ppp0 介面的 ping 封包
iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -i ppp0 -p icmp -j ACCEPT
# 不接受任何來自 ppp0 的連線
iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP
# 所有的連線皆要接受頻寬控管
iptables -A INPUT -i ppp0 -p all -j
QUEUE
iptables -A OUTPUT -o ppp0 -p all -j
QUEUE
阅读(2353) | 评论(0) | 转发(0) |