我有2个iptables的规则
iptables -A INPUT -s 5.5.5.5 -j DROP iptables -A INPUT -s 6.5.5.5 -j ACCEPT
有没有一个函数或命令将交换规则是这样的:
iptables -A INPUT -s 6.5.5.5 -j ACCEPT iptables -A INPUT -s 5.5.5.5 -j DROP
首先检查行号:
iptables -nL --line-numbers
基于行删除:
iptables -D INPUT {line}
插入你想要的地方:
iptables -I INPUT {line} -i lo -p tcp --dport {port} -j ACCEPT -m comment --comment "This rule is here for this reason"
发现在这些来源:
删除规则
插入规则
没有这样的命令交换两个iptables规则。
您可以删除并将其插入适当的位置。
有一个名为iptables-persistent
的程序,它使得iptable的规则作为os服务持久化。 这个服务包含一个配置文件作为iptables-save
导出。
所以你可以重新排序配置文件中的行并重新启动服务。
sudo service iptables-persistent restart
太简单!!!!!
而不是-A使用-D删除然后再添加
iptables -D INPUT -s 5.5.5.5 -j DROP
iptables -D INPUT -s 6.5.5.5 -j ACCEPT
现在添加交换值
iptables -A INPUT -s 5.5.5.5 -j ACCEPT
iptables -A INPUT -s 6.5.5.5 -j DROP
假设您的INPUT链只有这两条规则,那么它们的ID号分别为1
和2
分别为-A INPUT -s 5.5.5.5 -j DROP
和-A INPUT -s 6.5.5.5 -j ACCEPT
现在让我们切换它们: iptables -R INPUT 2 -s 5.5.5.5 -j DROP iptables -R INPUT 1 -s 6.5.5.5 -j ACCEPT
iptables -R
是一个命令来替换iptables中已存在的规则。
其用法是: iptables -R [chain name] [line number] [new rule]