Linux iptables检测是否已存在规则避免重复插入规则

项目中需要用脚本去插入链规则,但是重复调用shell脚本可能导致重复插入,新版本可以用-C选项进行检测,老版本可以筛选判断一下再做处理。

一、检测方式

1、iptables新版本中有 -C 选项进行检测。

复制代码
# iptables -C INPUT -p tcp --dport 8080 --jump ACCEPT
iptables: Bad rule (does a matching rule exist in that chain?).
# echo $?
1
# iptables -A INPUT -p tcp --dport 8080 --jump ACCEPT
# iptables -C INPUT -p tcp --dport 8080 --jump ACCEPT
# echo $?
0

2、对于早期的iptables可以用下面命令来检测

复制代码
# iptables-save | grep -- "-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT"

二、避免重复插入方法

为了 通用性,采用早期iptables能使用的方式,具体操作如下,先用iptables-save命令获取,做判断不存在再插入就可以避免重复插入

复制代码
local client_limit_deal=`iptables-save | grep -- "-A PREROUTING -i br-lan -j CLIENT_LIMIT_DEAL"`
if [ -z client_limit_deal ] ;
then
	iptables -t mangle -I PREROUTING -i br-lan -j CLIENT_LIMIT_DEAL
fi

三、其他

可以删除后再插入,如果不知道删除的规则可以使用iptables-save查看,根据规则删除即可,如:

c 复制代码
//mangle表的PREROUTING链中规则如下:
Chain PREROUTING (policy ACCEPT 4127 packets, 345K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2109  188K PACKAGE_PRI_DEAL  all  --  eth1   *       0.0.0.0/0            0.0.0.0/0           
 4127  345K fwmark     all  --  *      *       0.0.0.0/0            0.0.0.0/0  
 
//iptables-save查到对应的规则为
-A PREROUTING -i eth1 -j PACKAGE_PRI_DEAL
//删除可以按照如下写法:$DEV为对应的网口
iptables -t mangle -D PREROUTING -i $DEV -j PACKAGE_PRI_DEAL
相关推荐
藥瓿亭3 天前
IPtables部署和使用
linux·运维·服务器·网络·iptables·防火墙·firewall
麟城Lincoln15 天前
【Linux笔记】防火墙firewall与相关实验(iptables、firewall-cmd、firewalld)
linux·服务器·笔记·iptables·防火墙·firewalld·firewall
�FENG2 个月前
Linux系统中iptables防火墙
iptables·防火墙
漫谈网络2 个月前
DDoS防御与流量优化
linux·网络·iptables·ddos·netfilter·syn攻击·流量审计
漫谈网络2 个月前
网络命名空间之iptables规则解析
linux·网络·iptables·网络命名空间·netns
小屁不止是运维4 个月前
麒麟操作系统服务架构保姆级教程(十四)iptables防火墙四表五链和防火墙应用案例
安全·web安全·架构·iptables·防火墙
问道飞鱼5 个月前
【Linux知识】Linux防火墙介绍
linux·运维·网络·iptables·firewall
gs801406 个月前
全面解析 Kubernetes 流量负载均衡:iptables 与 IPVS 模式
容器·iptables·kubernetes·负载均衡·ipvs
俺俺7 个月前
(33)iptables设置防火墙策略常用命令(docker环境、非docker环境)
运维·docker·容器·iptables·防火墙
D00PING8 个月前
Android IP路由策略和防火墙
android·iptables·ip toute·ip rule