iptables:按接口删除所有规则

iptables:按接口删除所有规则

有没有办法删除与给定接口相关的所有 iptables 规则?我没有看到任何用于此的命令行选项,可能有用于此的快捷方式 bash 脚本吗?

答案1

有一些可能性,取决于您的设置。

如果你正在运行一个非常简单的链结构,并且不需要嵌套和隐含,请使用iptables-保存保存防火墙设置。删除所有行-i $如果或者-o $如果,具体取决于您的需求。使用 grep 或其他东西。保存该规则集,将其与您保存的第一个规则集进行区分,如果没问题,则使用iptables-恢复

或者 - 将您的规则收集到特定于接口的链中。这样,您就可以轻松迁移或删除接口。而且您将加快防火墙处理速度!

iptables -N fw-eth1
iptables -A FORWARD -o eth1 -j fw-eth1
iptables -A fw-eth1 --your-rules-here

答案2

添加一条规则以接受一个接口上的所有流量:iptables -A INPUT -i eth0 -j ACCEPT ; iptables -A OUTPUT -o eth0 -j ACCEPT 允许来自或到该接口的所有流量。

删除所有防火墙规则(阅读您的文字时我有疑问),:iptables -P INPUT ACCEPT ; iptables -P OUTPUT ACCEPT ; iptables -P FORWARD ACCEPT ; iptables -X允许所有流量。

相关内容