iptables -X 和 iptables -F 有什么区别?

iptables -X 和 iptables -F 有什么区别?

在许多示例中,我看到以下两个连续的命令:

iptables -F
iptables -X

从手册页中,我无法弄清楚刷新和删除之间的区别。这两者之间有区别吗?

答案1

对于所有链,你可以使用 -F :

+---------------+       +---------------+
|               |       |               |
| Chain MyChain |       | Chain MyChain |
|     Rule 1    |  -F   |      is       |
|     Rule 2    |       |     empty     |
|     Rule 3    |  ==>  |               |
|               |       |               |
+---------------+       +---------------+

为了仅限用户定义链(使用 iptables -N MyChain 创建的链)如果它为空,你可以使用 -X :

+---------------+
|               |
| Chain MyChain |         Chain MyChain
|      is       |  -X      does not exist
|     empty     |
|               |  ==>
|               |
+---------------+

两个都

iptables -F
iptables -X

之所以使用,是因为只有当用户定义链为空时才可以删除它。内置链无法删除,但可以刷新。

答案2

iptables -F刷新链的规则。

http://explainshell.com/explain?cmd=iptables+-F

-F, --flush [chain] 刷新选定的链(如果没有指定,则刷新表中的所有链)。这相当于逐个删除所有规则。

iptables -X删除一条链。

http://explainshell.com/explain?cmd=iptables+-X

-X, --delete-chain [chain] 删除指定的可选用户定义链。必须没有对该链的引用。如果有,则必须先删除或替换引用规则,然后才能删除该链。该链必须为空,即不包含任何规则。如果没有给出参数,它将尝试删除表中的每个非内置链。

相关内容