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

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

iptables -F iptables -X 

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

对于所有的链条,你可以-F:

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

对于仅用户定义的链 (使用iptables -N MyChain创build的链),如果为空,则可以使用-X:

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

 iptables -F iptables -X 

因为只有在用户定义链为空时才能删除。 内置链不能被删除,但可以刷新。

iptables -F刷新链的规则。

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

-F,–flush [链]冲洗选定的链(如果没有给出,则链中的所有链)。 这相当于逐个删除所有的规则。

iptables -X删除一个链。

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

-X,–delete-chain [chain]删除指定的可选用户定义链。 一定不能提及这个链条。 如果有,则必须删除或replace引用规则,然后才能删除链。 链条必须是空的,即不包含任何规则。 如果没有提供参数,它将尝试删除表中的每个非内build链。