sja*_*jas 5 linux firewall iptables stateful
从发行版的手册页中,我对下面的粗体部分特别感兴趣。
-j,-跳转目标
这指定了规则的目标;即,如果数据包匹配,该怎么办。目标可以是用户定义的链(此规则所在的链除外),可以立即确定数据包命运的特殊内置目标之一,也可以是扩展(请参见下面的“扩展”)。如果在规则中省略了此选项(并且未使用-g),则匹配规则将不会影响数据包的命运,但是规则上的计数器将增加。
-g,--goto链
这指定处理应按用户指定的链继续进行。与--jump选项不同,return不会在此链中继续处理,而是在通过--jump调用我们的链中继续处理。
我担心我误会了-g实际的情况。
-g现在到底有-j什么不同?
当当前链中的匹配规则指定了目标时RETURN,或者当到达当前链的末端时,处理继续在跳转到当前链的前一个链中,从下一个仍未处理的规则开始遍历它,即规则低于实际将当前链指定为其目标并触发跳转到当前链的规则。
但是,如果跳转到当前链是通过-g(而不是通过-j)完成的,那么处理将不会在前一个链中继续,而是在之前的链中继续,假设那里的跳转是用 完成的-j。如果情况也不是这样(即即使-g使用了),则将考虑之前的链,依此类推。换句话说,接下来将处理实际指定下一个链的最新链-j,而不是 with -g。
如果没有找到这样的链(即直到并包括指定的内置链的所有链-g),或者到达内置链的末端,或者内置链中的规则与目标RETURN匹配,则指定目标由内置的链策略决定了数据包的命运。