iptables-源ip单或多端口速率
目前在在Google
上还没有用这个hashlimit来直接限制速率。大多都是使用数据包来限速或者用tc
布局介绍
运维工程师连接到堡垒机时,在堡垒机上做iptables限速,避免运维过多占用客户生产服务器带宽。中间堡垒机有做一个ssh的跳板。
iptables策略思路
使用源ip、单端口或多端口进行限速。上行和下行都限制为100Kb/s。把所有的数据都丢到hash lable中,用令牌桶来分发令牌,没有令牌的数据包丢弃。这样来达到限速的功能
iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit-name conn_limitA --hashlimit-htable-expire 30000 --hashlimit-upto 100kb/s --hashlimit-mode srcip --hashlimit-burst 200kb -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
----------------------------上传----------------------------------
iptables -A OUTPUT -p tcp --sport 22 -m hashlimit --hashlimit-name conn_limitB --hashlimit-htable-expire 30000 --hashlimit-upto 100kb/s --hashlimit-mode dstip --hashlimit-burst 200kb -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j DROP
-----------------------------下载---------------------------------
注意问题
其中有一个坑卡了我好久,那就是hashlimit-name必须是唯一的。如果相同,数据包被多条iptables策略过滤。比如上面的hashlimit-name相同的话。上传速率平均是100kb/s但是下载速率是50kb/s
扩展用处
百度云等不良限速,大概也是这样限速用户的流量速度。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。