Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5698347
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2007-08-26 16:08:55

今天还看到一个比较好玩的东西---shaperd,用来限制带宽。
shapred是给予libipq开发的,就是在用户空间,这样避免了比较复杂的内核空间编程和调试,但是会有少许性能的损失。
可以作为学习libipq的辅助材料。

还有一位台湾兄弟用它来限制本机流量,道德高尚啊 :)
http://tetralet.luna.com.tw/index.php?op=ViewArticle&articleId=116&blogId=1

在 Debian GNU/Linux 裡,要限制您的 Linux 主機的本機頻寬並非難事。首先,安裝 shaperd 套件:

apt-get install 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


阅读(2315) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~