如何配置iptables规则排除单个IP不受连接数限制
如何配置iptables规则排除单个IP不受连接数限制
嗨,这事儿其实很好解决,iptables的规则是按顺序从上到下匹配的,咱们只要把允许特定IP的规则放在最前面,让它优先匹配,后面的连接数限制规则就不会对这个IP生效啦。
具体操作分两步来:
先添加允许目标IP的规则
用这条命令把你想豁免的IP(比如把xxx换成实际的IP地址,比如192.168.0.5)直接放行,不管它的连接数多少:iptables -A INPUT -p udp --dport 100:65535 -s xxx -j ACCEPT这里的
-s xxx就是指定要豁免的源IP,匹配到这个IP的UDP请求直接ACCEPT,不会再走后面的规则。再添加你的连接数限制规则
这就是你原本的那条规则,现在它只会作用在除了刚才豁免IP之外的其他所有IP上:iptables -A INPUT -p udp --dport 100:65535 -m connlimit --connlimit-above 200 -j REJECT
原理说明
iptables的规则匹配逻辑是“命中即停止”——只要某个请求匹配到了前面的ACCEPT规则,就直接放行,不会再去检查后面的限制规则。这样就实现了:除了指定IP外,其他所有IP的UDP连接数超过200就会被拒绝的需求。
如果你不确定规则顺序对不对,可以用这条命令查看INPUT链的规则和序号:
iptables -L INPUT --line-numbers
确保允许特定IP的规则排在限制规则的前面就行,如果顺序不对,还可以用iptables -I INPUT [序号]把允许规则插入到正确的位置。
备注:内容来源于stack exchange,提问作者MaxIT
相关产品推荐
相关产品推荐

