当我不知道状态时,iptable 规则有什么区别

当我不知道状态时,iptable 规则有什么区别

当我没有状态时,iptable 规则有什么不同?例如

iptables -A 输入 -p tcp --dport 22 -m 状态 --状态新 -j 接受

iptables -A 输入 -p tcp --dport 22 -j 接受

第二条规则中的默认状态是什么(如果有)?

答案1

没有默认状态值。如果规则中未匹配状态,则不会检查状态值。此逻辑适用于任何 iptables 匹配(地址、协议、端口号、接口等)。

因此,这两条规则之间的区别在于,第二条规则匹配并接受所有输入到端口tcp/22(标准 ssh 服务端口号)的数据包。第一条规则仅匹配连接到 ssh 端口的第一个(初始)传入数据包,但不匹配后续数据包。

要了解相关的 netfilter/iptables 概念,请阅读 iptables 教程:

答案2

只会--state NEW匹配新的连接,如果是TCP数据包,则匹配SYN数据包。

如果你没有这样的规则

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

TCP 握手后,该--state NEW规则将不再匹配数据包SYN

更多详细信息:iptables 文档

相关内容