|
楼主 |
发表于 2010-1-12 13:37:02
|
显示全部楼层
最近迷上iptables了,进而迷上linux了,找到党的根据地啦。
所谓“智能QOS”是依据当前内网主机数的动态变化指定不同的QOS流量控制策略。不需要设置过多参数即可实现网络流量控制。
这是我研究iptables和TC一个月整搞出的一个山寨版智能QOS,可用于linux做路由器或嵌入。
使用前需要确保一些iptables模块如BCOUNT,ipt_length.o等在你的linux路由器上已经装载。
规则如下:
1.依据路由器ARP表的地址数判断当前在线主机数。
2.在线1PC,不限速;PC增加时,动态分配最小保证速率,单IP最大下载速率为总下载速率60%,但实际下载速率可能会超过这个值,因为还有来自小包和http下载的速。
3.对小包和网页浏览做了优先,利用iptables的BCOUNT模块区分网页浏览和http下载。
4.单IP连接数限制,默认每个内网IP地址TCP限制60,UDP限制80。为了防止连接数占满后无法打开网页等情况,对
53,80等常见端口作了例外。(可自己添加一些常见游戏端口,这样可以一边下载一边玩游戏)
5.对在线主机数动态判定加入反震荡措施(主机数变化只有1个时候不改策略,但1PC→2PC和2PC→1PC例外)
用法:分两部分,第一个较长的脚本设置为防火墙脚本(或开机脚本,只需要开机后执行一次),另一个脚本设置为定期执行脚本(使用crond就可以)
参数修改:
1.export NET=192.168.1.0/24\n #内网IP网段
export UIP="192.168.1."\n #内网IP前缀
export IPS=2\n #开始IP地址为192.168.1.2
export IPE=8\n #结束IP地址为192.168.1.8
2.ADSL用户:如果你申请带宽是2M,那么N=2(脚本默认),如果是4M,把第2行
N=2\n改为N=4\n就OK了。
3.小区宽带或其他情况:修改UPN参数,脚本默认是40,如果你小区宽带上传100KB/S,那么把第3行
UPN=40\n改为UPN=100\n。
4.其它一些参数:
export UPLOADC=8kbps\n #单机最大上传速率(不包括小包和http上传)
export DOWNN=$((N*90))\n #带宽总下行数值(无单位),也可以用数字指定,如500KB/S可修改为DOWNN=500\n
export NTCP=60\n #单机tcp连接数限制为60
export NUDP=80\n #单机UDP连接数限制为80
export UNLIMITPORT_UDP=53,4000:8000\n #udp的53,4000---4010端口不受连接数限制(对DNS服务和QQ开绿灯)
export UNLIMITPORT_TCP=20:23,25,53,80,110,443\n #tcp的20----23,25,53,80,110,443端口不受连接数限制(另可自己添加网游端口) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|