ROS 全自动智能限速脚本
2011-07-22 01:27
369 查看
:local RxCurPacket 0
:local RxCurAddress 0
:local RxCurUser 0
:local RxCurRate 0
:local TxCurRate 0
:local RxMaxRate 450000
:local TxMaxRate 800000
:local RxCurMax 400
:local RxCurMaxb 200
:foreach i in=[/interface find mtu=1480] do={/interface monitor $i once do={:set RxCurPacket ($received-packets-per-second+$sent-packets-per-second); :set RxCurRate ($received-bits-per-second); :set TxCurRate ($sent-bits-per-second); :set RxCurAddress [/ppp active get $i address]; :set RxCurUser [/ppp active get $i name]}; :if($RxCurMax
:for aa from 1 to 200 do={/queue simple remove (queue . $aa)}
###########################################################################
#说明:我的环境是光纤50M 用户在200,所以分给每个人的速度还是比较大的。mtu=1480根据自己ROS /interface 显示的值修改
首先对超过规定的速度和包量的用户进行限速,:set RxCurPacket ($received-packets-per-second+$sent-packets-per-second)就是定义变量RxCurPacket为上行和下行包量之和。RxCurMax 400 中的400为自己定义的包量数,可以根据自己的需要更改。 ..
:if($RxCurMax
由于你的流量过大,影响了别人的正常应用,系统将自动对你的连接封闭。
请关闭下载软件等,再尝试新开网页。避免再次被系统拦截。
谢谢合作! ”
RxCurMaxb 200就是正常的限制包量值,我算了下,一般速度在150多K的时候,总包量差不多就到200了,这个时候就应该限制。:set RxCurRate ($received-bits-per-second)定义从用户看是上传的变量。:set TxCurRate ($sent-bits-per-second)从用户看是下栽的变量定义:local RxMaxRate 450000 就是当上传大于450K就限速:local TxMaxRate 800000 就是下载大于800K就限制速,这里速度和真实的速度换算要除8哦。:set RxCurAddress [/ppp active get $i address] 就是定义获取用户的地址 :set RxCurUser [/ppp active get $i name]定义获取用户名。/queue simple add name=$RxCurUser target-addresses=$RxCurAddress limit-at=0/0 max-limit=50000/250000 burst-limit=80000/500000 burst-threshold=70000/400000 burst-time=5/10 这里是定义最大速度 爆发速度,爆发时间等,根据自己的需要修改。:for aa from 1 to 200 do={/queue simple remove (queue . $aa)}是防止获取错误而添加默认名的全局限速队列。
#然后建一个脚本B,为用户给限制以后,速度下来了解除限制, .
:local RxCurPacket 0
:local RxCurAddress 0
:local RxCurUser 0
:local RxCurMin 80
:foreach i in=[/interface find mtu=1480] do={/interface monitor $i once do={:set RxCurPacket ($received-packets-per-second+$sent-packets-per-second); :set RxCurAddress [/ppp active get $i address]; :set RxCurUser [/ppp active get $i name]}; :if($RxCurMin>$RxCurPacket) do={/queue simple remove [find name=$RxCurUser]; /ip firewall nat remove [find comment=$RxCurUser]}}
说明和上面的差不多,这里说下作用,:if($RxCurMin>$RxCurPacket) do={/queue simple remove [find name=$RxCurUser]; /ip firewall nat remove [find comment=$RxCurUser]}就是当总包量小于80个的时候,删除用户的限制速度和网页警告,这样用户就不再限速度,然后如果速度又超过了A脚本里的速度值话,又会自动限速了。这样循环反复。
:local RxCurAddress 0
:local RxCurUser 0
:local RxCurRate 0
:local TxCurRate 0
:local RxMaxRate 450000
:local TxMaxRate 800000
:local RxCurMax 400
:local RxCurMaxb 200
:foreach i in=[/interface find mtu=1480] do={/interface monitor $i once do={:set RxCurPacket ($received-packets-per-second+$sent-packets-per-second); :set RxCurRate ($received-bits-per-second); :set TxCurRate ($sent-bits-per-second); :set RxCurAddress [/ppp active get $i address]; :set RxCurUser [/ppp active get $i name]}; :if($RxCurMax
:for aa from 1 to 200 do={/queue simple remove (queue . $aa)}
###########################################################################
#说明:我的环境是光纤50M 用户在200,所以分给每个人的速度还是比较大的。mtu=1480根据自己ROS /interface 显示的值修改
首先对超过规定的速度和包量的用户进行限速,:set RxCurPacket ($received-packets-per-second+$sent-packets-per-second)就是定义变量RxCurPacket为上行和下行包量之和。RxCurMax 400 中的400为自己定义的包量数,可以根据自己的需要更改。 ..
:if($RxCurMax
由于你的流量过大,影响了别人的正常应用,系统将自动对你的连接封闭。
请关闭下载软件等,再尝试新开网页。避免再次被系统拦截。
谢谢合作! ”
RxCurMaxb 200就是正常的限制包量值,我算了下,一般速度在150多K的时候,总包量差不多就到200了,这个时候就应该限制。:set RxCurRate ($received-bits-per-second)定义从用户看是上传的变量。:set TxCurRate ($sent-bits-per-second)从用户看是下栽的变量定义:local RxMaxRate 450000 就是当上传大于450K就限速:local TxMaxRate 800000 就是下载大于800K就限制速,这里速度和真实的速度换算要除8哦。:set RxCurAddress [/ppp active get $i address] 就是定义获取用户的地址 :set RxCurUser [/ppp active get $i name]定义获取用户名。/queue simple add name=$RxCurUser target-addresses=$RxCurAddress limit-at=0/0 max-limit=50000/250000 burst-limit=80000/500000 burst-threshold=70000/400000 burst-time=5/10 这里是定义最大速度 爆发速度,爆发时间等,根据自己的需要修改。:for aa from 1 to 200 do={/queue simple remove (queue . $aa)}是防止获取错误而添加默认名的全局限速队列。
#然后建一个脚本B,为用户给限制以后,速度下来了解除限制, .
:local RxCurPacket 0
:local RxCurAddress 0
:local RxCurUser 0
:local RxCurMin 80
:foreach i in=[/interface find mtu=1480] do={/interface monitor $i once do={:set RxCurPacket ($received-packets-per-second+$sent-packets-per-second); :set RxCurAddress [/ppp active get $i address]; :set RxCurUser [/ppp active get $i name]}; :if($RxCurMin>$RxCurPacket) do={/queue simple remove [find name=$RxCurUser]; /ip firewall nat remove [find comment=$RxCurUser]}}
说明和上面的差不多,这里说下作用,:if($RxCurMin>$RxCurPacket) do={/queue simple remove [find name=$RxCurUser]; /ip firewall nat remove [find comment=$RxCurUser]}就是当总包量小于80个的时候,删除用户的限制速度和网页警告,这样用户就不再限速度,然后如果速度又超过了A脚本里的速度值话,又会自动限速了。这样循环反复。
相关文章推荐
- ROS智能限速脚本,可以根据时间和流量来开启限速
- ROS智能集体、单IP限速脚本2.9.27
- ROS智能限速脚本,可以根据时间和流量来开启限速
- ROS 做PCQ脚本集体(每IP)自动限速 +带宽按端口管理流量
- ros routeros限速和限线程脚本
- 智能监测自动重启Apache服务器的Shell脚本
- 智能监测自动重启Apache服务器的Shell脚本
- ROS限速脚本 动态限速 固定限速
- ROS2.9.27网吧限速脚本
- Python脚本实现Mac开机自动语音播报天气
- [MySQL-MM] 生产环境自动恢复MM中一台M2库的过程,分享从零开始写的自动化重建脚本以及思路
- 自动化脚本自动生成技术探讨
- Nginx 日志自动分割脚本
- 简单的实现文件自动更新FTP脚本
- Iptables DDOS/CC 自动屏蔽脚本
- python pyenv 多版本管理(自动安装脚本)
- 脚本自动配置ssh互信 推荐
- Linux中脚本文件的自动执行
- 如何自动把域帐户加到本地管理员组|ad活动目录域组策略登录脚本
- oracle数据库自动备份脚本