IPtables 删除除一条链外的所有链

IPtables 删除除一条链外的所有链

我知道可以使用iptables -F或刷新 iptables iptables -X,但是,是否可以刷新除一个关键链/规则之外的 iptables?

答案1

将规则转储到文件中

iptables-save > file

删除除要保留的规则之外的所有规则,恢复未删除的规则,覆盖当前的 iptables 规则。

iptables-restore < file

或者只是刷新所有规则并创建您想要的规则。

当您将规则转储到文件时,您将看到它们的格式都类似于

-A SomeChain SomeActions Target

例如

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

您可以使用 iptables 命令创建相同的规则

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

答案2

您不能直接冲洗或移除除一根链条之外的所有链条。然而,由于列出链很简单,选项的简短组合就足够了

列出链

iptables -nL | awk '$1 == "Chain" { print $2 }'

INPUT
FORWARD
OUTPUT
f2b-iptables-log
f2b-recidive
f2b-sshd

冲洗除以下内容之外的所有内容INPUTecho当您确定它适合您时将其删除):

iptables -nL |
    awk -v keep=INPUT '$1 == "Chain" && $2 != keep { system("echo iptables -F " $2) }'

相关内容