iptables,-m状态和-m conntrack有什么区别?

有什么实际的区别:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 

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

哪一个最好用?

谢谢。

两者在下面使用相同的内核内部(连接跟踪子系统)。

xt_conntrack.c的标题:

 xt_conntrack - Netfilter module to match connection tracking information. (Superset of Rusty's minimalistic state match.) 

所以我会说 – 状态模块更简单(也可能更less错误)。 在内核中它也更长。 另一方面的Conntrack有更多的select和function[1]。

我的电话是使用conntrack,如果你需要它的function,否则坚持状态模块。

关于netfilter maillist的类似问题。

[1]非常有用的像“-m conntrack –ctate DNAT -j MASQUERADE”路由/ DNAT修复;-)

这两条规则的结果没有什么区别。 两个匹配扩展使用相同的数据来匹配连接跟踪状态。 状态是“旧”的匹配扩展,并且conntrack更新,并且比匹配连接跟踪状态有更多的select。

iptables文件

正如文件所说:

Blockquote conntrack匹配是状态匹配的扩展版本,可以以更细化的方式匹配数据包。 让我们来看看连接跟踪系统中直接可用的信息,没有任何“前端”系统,比如在状态匹配中。 有关连接跟踪系统的更多信息,请看“状态机”一章。