找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 56351|回复: 86

限制连接数与限制带宽的效果比较

[复制链接]
发表于 2007-10-11 10:48:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
以前使用coyote2.24软路由,参照一些教程,写了Qos脚本限制局域网内每台机器的带宽,限制了p2p,甚至把迅雷、狗狗的网站给屏蔽了,可就是没有什么效果。在测试流量的时候发现,整个局域网使用带宽远远没有达到电信分给我们的带宽,可就是网速慢,估计电信已经限制了我们的并发连接数,而我们局域网内有很多人在同时看p2p电影,无效连接很多,所以,虽然带宽没用多少,连接数却用完了。我曾经想过用限制连接数,但coyote2.24不支持。
    后来改用了minifw36,里面有connlimit的插件,可以限制连接数,于是创建了以下脚本,限制每ip的连接数为20:
a=2     
while [ $a -le 254 ]    #从192.168.0.2开始到192.168.0.254限制连接数
do
iptables -I FORWARD -p tcp -s 192.168.0.$a -m connlimit --connlimit-above 20 -j REJECT
iptables -I INPUT -p tcp -s 192.168.0.$a -m connlimit --connlimit-above 20 -j REJECT
a=`expr $a "+" 1`
done
除了限制连接数,其他都不限制,其效果是浏览网页速度如飞,比以前这限制那限制的要快多了——限制的东西多了,必然会占用路由器更多资源,速度自然就不快了。到现在,整个局域网上网都很稳定。
    有些人会认为限制连接数会浪费带宽,其实这是一种误解。用网际快车下载时,最多也不过用10个连接,下载速度足以占用整个带宽了。相反,象我以前没有限制连接数时,明明带宽远远没有用尽,却上不了网,那才叫浪费带宽。
    另外说明一下,20个连接数用来看pplive等p2p电影也很流畅了,不过同一机器在看电影的同时,就无法浏览网页了,因为这台机器分配到的连接数已用完。如果想边看电影边浏览网页,只能把p2p电影的最大并发连接数设为20以下(最好是15以下)。
routeros
发表于 2007-10-11 23:30:14 | 显示全部楼层
谢谢分享,希望有效果。
routeros
回复

使用道具 举报

 楼主| 发表于 2007-10-12 08:30:25 | 显示全部楼层
绝对有效果。本来我这里一到晚上很多人看p2p电影,网页基本上就别想浏览了;限制连接数以后,从未出现过此类现象。我做过试验,让很多人同时观看p2p电影,这时上行带宽很大,有时比下行带宽还要大很多,浏览网页速度却基本不受影响。
routeros
回复

使用道具 举报

发表于 2007-10-12 09:54:16 | 显示全部楼层
这是个好方法,谢谢你!
routeros
回复

使用道具 举报

发表于 2007-10-12 14:37:05 | 显示全部楼层
20是不是太少了,有谁帮测试一下.
routeros
回复

使用道具 举报

 楼主| 发表于 2007-10-12 18:22:22 | 显示全部楼层
对一般应用来说(比如浏览网页、普通下载、网络游戏),20个连接数已经够用了,如果你知道你的服务商提供你的并发连接数,你可以根据你的局域网上网机器数量,平均分配给他们,这样应该最合理。因为我到电信查询,他们技术人员也不知道提供给我们的并发连接数是多少,为了保险起见,我限制到20,即使这样,有些机器的上行速度还能达到150KByte/s以上,而我用网际快车下载软件,用足10个线程(也就是10个并发连接),下载速度可达到1MByte/s以上。

[ 本帖最后由 bfrader 于 2007-10-12 18:36 编辑 ]
routeros
回复

使用道具 举报

发表于 2007-10-13 21:28:44 | 显示全部楼层
请问!是加在“防火墙规则配置”--“编辑配置文件”里吗?
routeros
回复

使用道具 举报

发表于 2007-10-13 21:36:55 | 显示全部楼层
请问下minifw3.7能用吗?我刚用了3.7的```
routeros
回复

使用道具 举报

 楼主| 发表于 2007-10-13 21:45:27 | 显示全部楼层



应该加在“防火墙规则配置”--“编辑自定义防火墙规则”里,或者其它自动运行脚本文件里

注意:要备份配置后,重新启动路由器才能生效!

[ 本帖最后由 bfrader 于 2007-10-13 21:49 编辑 ]
routeros
回复

使用道具 举报

 楼主| 发表于 2007-10-13 21:46:55 | 显示全部楼层
原帖由 hsyihao 于 2007-10-13 21:36 发表
请问下minifw3.7能用吗?我刚用了3.7的```


可以的,只要有connlimit模块就行,而minifw里都有这个模块

希望各位试过以后,能回来交流心得。万分感谢!

[ 本帖最后由 bfrader 于 2007-10-13 21:51 编辑 ]
routeros
回复

使用道具 举报

发表于 2007-10-13 22:27:16 | 显示全部楼层
这样是不是已经加载成功并生效了?

Chain INPUT (policy DROP 85 packets, 8619 bytes)
pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     tcp  --  *      *       192.168.2.9          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.8          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.7          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.9          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.6          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.8          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.5          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.4          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.3          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.2          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.7          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.6          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.5          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.4          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.3          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.2          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
  496 58747 remote-admin  0    --  *      *       0.0.0.0/0            0.0.0.0/0           
  346 46590 ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   65  3538 ACCEPT     0    --  eth0   *       0.0.0.0/0            0.0.0.0/0           state NEW
    0     0 ACCEPT     0    --  lo     *       0.0.0.0/0            0.0.0.0/0           state NEW

Chain FORWARD (policy DROP 9 packets, 360 bytes)
pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0           ipp2p v0.8.2 --ipp2p
    0     0 REJECT     tcp  --  *      *       192.168.2.9          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.8          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.7          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.9          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.6          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.5          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.8          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.4          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.3          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.2          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.7          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.6          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.5          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.4          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.3          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       192.168.2.2          0.0.0.0/0           #conn/32 > 15 reject-with icmp-port-unreachable
routeros
回复

使用道具 举报

发表于 2007-10-14 00:10:52 | 显示全部楼层
我今天也 m0n0wall 的shellcmd加了句:
/sbin/ipfw add allow tcp from 192.168.1.1/24 to any setup limit src-addr 20

确实有效果,哈哈。
routeros
回复

使用道具 举报

发表于 2007-10-14 11:45:48 | 显示全部楼层
minifw3.6的流量整形里ip小于20的客户机没有速度限制, 可我需要限制ip为2到9的带宽,有什么脚本配合这个限制连接数的脚本。
routeros
回复

使用道具 举报

发表于 2007-10-14 16:02:41 | 显示全部楼层
我感觉tc限速的效率就是不高,,如果我有6个C的ip怎么办?上千条队列,,,系统受得了吗?
routeros
回复

使用道具 举报

 楼主| 发表于 2007-10-14 16:40:29 | 显示全部楼层
回复zlin:你的限制已经生效了。你要限制2到9的连接数,实际上已经实现了,你只是没有限制他们的带宽而已。如果你想限制他们的带宽,只要绑定整个局域网的mac和ip,不让他们使用这些 ip。
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-9 21:31 , Processed in 0.137366 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表