从发行版的手册页中,我对下面的粗体部分特别感兴趣。
-j,-跳转目标
-g,--goto链
我担心我误解了-g
的实际作用。
现在-g
和-j
有什么不同?
最佳答案
当当前链中的匹配规则指定目标RETURN
时,或者到达当前链的末尾时,处理将在跳到当前链的上一个链中继续进行,从仍未处理的下一个规则遍历它,即实际将当前链指定为其目标并触发跳转到当前链的规则下方的规则。
但是,如果跳转到当前链是通过-g
(而不是-j
)完成的,则处理不会在前一个链中继续进行,而是在此之前的链中继续进行,假设跳转是通过-j
完成的。如果情况并非如此(即使用了-g
),那么之前的链也将被考虑在内,依此类推。换句话说,实际上将使用-j
而不是-g
指定下一个链的最新链将被处理。
如果未找到这样的链(即,直到并包括指定的-g
的内置链的所有链),或者到达了内置链的末尾,或者匹配了带有目标RETURN
的内置链中的规则,则内置链策略指定的目标确定数据包的命运。
关于linux - iptables -j与-g参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31606411/