蘭雅sRGB 个人博客 | https://262235.xyz
路由器使用 iptables 限制 玩客云上传数据流量
### 限制玩客云设备 192.168.1.90 每秒钟通过 200×1.5=300K ;超过的流量都丢弃 (设置的太少,会导致无法开机) |
查询 iptables -t mangle 结果
/home/root # iptables -t mangle -nvL FORWARD |
路由器里开机脚本设置
原理说明:
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
限速是时实生效的,命令执行成功后,限速就生效了,这个限速策略是保存在内存里的,重启会消失的,需要保存指令。