
申明:此脚本不是我写的,也是在这里找的,具体是哪位兄弟写的不知道了,帖子也找不到了,在这里要感谢那位兄弟。
以前下回来操作没成功就放弃了,昨天晚上研究了3个小时终于能用了。现在把详细调试说明写下来,我的版本是2.927,其他版本未做测试。
--------------脚本开始,请按照下面修改说明,把速度修改好后,再一并导入----------
:for szwm from 1 to 253 do={/queue simple add name=(TX . $szwm) target-addresses=(192.168.1. . $szwm) max-limit=500000/500000 interface=lan disabled=no} / ip firewall mangle add chain=prerouting action=mark-packet new-packet-mark=all-mark / passthrough=yes comment="" disabled=no / queue type add name="PCQ-up" kind=pcq pcq-rate=350000 pcq-limit=50 / pcq-classifier=src-address pcq-total-limit=2000 add name="PCQ-down" kind=pcq pcq-rate=350000 pcq-limit=50 / pcq-classifier=dst-address pcq-total-limit=2000 / queue simple add name="PCQ" target-addresses=192.168.1.254/24 dst-address=0.0.0.0/0 / interface=all parent=none packet-marks=all-mark direction=both priority=1 / queue=PCQ-up/PCQ-down limit-at=0/0 max-limit=10000000/10000000 / total-queue=default-small disabled=yes / system script add name="PCQON" source=":if /(/[ /queue sim get /[/queue sim find / name=/"PCQ/"/] disable /]=true /) do={/queue sim enable PCQ}" / policy=ftp,reboot,read,write,policy,test,winbox,password add name="PCQOFF" source=":if /(/[ /queue sim get /[/queue sim find / name=/"PCQ/"/] disable /]=false /) do={/queue sim disable PCQ}" / policy=ftp,reboot,read,write,policy,test,winbox,password / tool traffic-monitor add name="PCQON" interface=ether3 traffic=received trigger=above / threshold=9800000 on-event=PCQON comment="" disabled=no add name="PCQOFF" interface=ether3 traffic=received trigger=below / threshold=5000000 on-event=PCQOFF comment="" disabled=no
----------上面是我修改好的完整脚本,是10m速度设置,下面是脚本注释,请仔细看下面说明,修改好你要的速度后在全部导入------
:for szwm from 1 to 253 do={/queue simple add name=(TX . $szwm) target-addresses=(192.168.1. . $szwm) max-limit=500000/500000 interface=lan disabled=no}
这个是建立静态限速,也就是普通速度。1 to 253 改为你内网的IP!注意,不要把你的路由ip加进去了(我的路由是254)。比如 2 to 120! 192.168.1. 这里改为你的IP段! max-limit=500000/500000 是普通限速上传和下载都是500k,注意,这个500k是要除以8的,也就是说实际上传下载速度是 63KB 左右,自己算好修改,还有要注意,前面上传不能大于后面下载,我反复测试过,2个都一样就没问题,否则不成功。 -------------------------------------------------------
/ ip firewall mangle add chain=prerouting action=mark-packet new-packet-mark=all-mark / passthrough=yes comment="" disabled=no
这个是固定脚本!无需修改 ------------------------------------------------------------------
/ queue type add name="PCQ-up" kind=pcq pcq-rate=350000 pcq-limit=50 / pcq-classifier=src-address pcq-total-limit=2000 add name="PCQ-down" kind=pcq pcq-rate=350000 pcq-limit=50 / pcq-classifier=dst-address pcq-total-limit=2000
这里把350000改为你动态限速时的全网上传速度和下载速度!其他不要改!这里是350k除以8=44KB左右,这段脚本就是说,当你的速度达到你设置的最高峰的时候,需要开启的另一个速度脚本。我这里是当速度达到9.8m的时候,就44k了。 ------------------------------------------------------------------------------
/ queue simple add name="PCQ" target-addresses=192.168.1.254/24 dst-address=0.0.0.0/0 / interface=all parent=none packet-marks=all-mark direction=both priority=1 / queue=PCQ-up/PCQ-down limit-at=0/0 max-limit=10000000/10000000 / total-queue=default-small disabled=yes
到这里就是建立动态限速的策略了!192.168.1.254/24 改为你IP段,如果你的内网是192.168.0开头的,那就是192.168.0.254/24,其他类推,max-limit=10000000/10000000 这里是你总宽带,电信给你多少就填多少!其他不用改,因为需要转跳到上面的!我的是10M,自己算好修改。 -------------------------------------------------------------------------
/ system script add name="PCQON" source=":if /(/[ /queue sim get /[/queue sim find / name=/"PCQ/"/] disable /]=true /) do={/queue sim enable PCQ}" / policy=ftp,reboot,read,write,policy,test,winbox,password add name="PCQOFF" source=":if /(/[ /queue sim get /[/queue sim find / name=/"PCQ/"/] disable /]=false /) do={/queue sim disable PCQ}" / policy=ftp,reboot,read,write,policy,test,winbox,password
这个是启发脚本,就是启发动态和关闭动态的脚本!无需要修改。 -------------------------------------------------------------
/ tool traffic-monitor add name="PCQON" interface=ether3 traffic=received trigger=above / threshold=9800000 on-event=PCQON comment="" disabled=no add name="PCQOFF" interface=ether3 traffic=received trigger=below / threshold=5000000 on-event=PCQOFF comment="" disabled=no
这个是流量监控,我有10M设置是9.8M启发,足够了。不会延时或者怎么的,不建议改得太少。threshold=5000000是少于5M时关闭动态!这个自己掌握好!多试试!
另外注意的是!interface=ether3 把ether3改成你的网卡名字!
------------------------------------下面是检查自动是否成功------------
修改好以后,先删除你原来的速度,使ros处于无限速状态(重要),再一起导入上面所有脚本,然后检查是否成功:
1、先检查限速,点菜单Queues,看看有没有速度,因为你之前是清空了的,导入自动限速以后,就会有新的速度,如果没有,那么表示失败,请仔细检查第一段脚本的速度。
2、如果第1步正常,检查第system 里面的scripts,也就是限速脚本,里面有新加2个脚本,一个是pcqoff,一个是pcqon,(注意:不管成功与否,都会有这2个),我们要看的是他后面的 run cont,这是代表此脚本执行的次数,如果正常,当下载流量达到你设置的最大数时,就会自动开启pcqon,这个时候,pcqon后面的run cont的数字就会加1,表示此脚本被执行了一次,中间last time started的时间是表示最后一次执行的时间。相反,到流量底于你设置的最小速度时,就会自动执行pcqoff脚本,后面的数字也会变化,跟pcqon一个道理。
所以现在就要测试,想办法使你的下载速度高与你设定的最大速度,看看pcqon有没有被执行,如果后面的run cont没有加1,代表限速失败,同样,想办法使速度底于你设置的最底速度,看看pcqoff有没有加1,没有也代表失败。(举例:假设我们设置最底速度小于5m时关闭动态速度,那么当你的下载速度从5.0m以上下降到5.0m以下,pcqoff就会执行一次,当速度再次高于5.0m以后又再次低于5.0m时又会执行一次)
3、失败了,修改好速度,在重来之前,请先执行下面步骤:
删除 system /scripts 下的 pcqon和pcqoff脚本;
删除 Queues / Queue Types 下的pcq-down和pcq-up
删除 Tools / Traffic Monitor 下的 pcqoff和pcqon
删除 IP /Firewall/Mangle 下的 mark packet
最后删除 Queues下的速度,然后在重新导入脚本,再检查是否成功,如果不成功,修改速度,并删除上面提到的地方的东西后再测试,直到成功为止。
提示:速度(上传/下载)错误,就会出现上面第1步检查中的错误,请仔细修改测试,最好都写一样。失败的最大因数就是这里了。
如果还是不成功的,自己研究,不要找我,相信一句话:重试10000次=成功!
