我对 iptables 进行了以下设置
INPUT
ParentChain
ChildChain1
ChildChain2
... More Rules on INPUT ....
我怎样才能在 ParentChain 之后从 ChildChain1 返回到 INPUT?据我了解,从 ChildChain1 返回的目标将在 ChildChain2 进入 ParentChain?我怎样才能返回 2 个级别?
我的理解是,如果我跳转到输入并且没有匹配项,我最终会回到 ChildChain1(并最终到达 ChidlChain2,我本质上是想跳过它)
答案1
我同意@Glueon 的观点,你确实应该重新考虑你的 iptables 规则,因为它看起来不必要地复杂。
话虽如此,是一种方法来做你想做的事。我仅举一个例子:
-A INPUT <some_matches_here> -j ParentChain
...
-A ParentChain <some_matches_here> -g ChildChain1
...
交换机-g
命令netfilter
执行GOTO
而不是JUMP
到目标链。因此,过滤分支到 ChildChain1 时的“调用堆栈”仍记录INPUT
为“调用链”。在 ChildChain1 的末尾,如果没有匹配导致“终止目标”,则 netfilter 将恢复到 INPUT 链。
笔记:我实际上还没有测试过这一点,但根据我的了解iptables
,它应该可以那样工作。