17
2018
08

小米路由器pro iptables限速指令严格限速,智能限速波动幅度太大了

 

我的小米路由pro开启智能限速后,客户端的网速波动太大了,虽说是智能分配,剩余带宽充足的时候就多分配一点给你,但我还是想严格限速的,分给你多少就是多少,误差不能太大了,不管我剩余带宽有多少。



原理说明:

iptables本身并没有限速指令,但可以通过limit指令匹配包速率,溢出部分使用DROP指令丢弃,从而变相实现限速功能,需要注意规则的顺序。

正常都是内网主机接小米路由访问外网,根据iptables数据包的流程图来看,数据包是路过小米路由器,只需要转发数据,

所以我们需要在FORWARD链上执行限速。 而FORWARD链在mangle表和filter表里。根据我测试结果来看,小米路由pro需要在mangle表上做限速设置,下面给出具体限速指令

比如我给局域网的一台主机 IP地址为 192.168.31.23的限速 1.5MB。


iptables -t mangle -I FORWARD 1 -s 192.168.31.23 -m limit --limit 1000/s --limit-burst 1500 -j ACCEPT

iptables -t mangle -A FORWARD -s 192.168.31.23 -j DROP


--limit 1000/s :这个是说每秒种只允许通过1000个IP包,一个IP包大约在1.5KB, 1000个也就是1.5M,具体限速多少,可以根据这个来计算,比如我想限速4.5MB/S, 那就是设置 --limit 3000/S 

--limit-burst 1500: 这个是初始值,开始有1500包可以直接通过,后续就每秒1000个包。


执行命令后,可以查询一下是否正常写入了。

iptables -t mangle  -n -v -L  FORWARD   

限速是时实生效的,命令执行成功后,限速就生效了,这个限速策略是保存在内存里的,重启会消失的,需要保存指令。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。