-m conntrack --ctstate ESTABLISHED,RELATED -j ...
-m state --state ESTABLISHED,RELATED -j ...
我们要对一条连接做处理,可以用以上两种match target来实现。
两者的区别是啥?!
有观点:
1. ubuntu的howto推荐是conntrack,除非有错的话,再使用state
2. conntrack模块会在以后的版本中取代state,现在保留state模块只是为了兼容老用户的习惯
3. />
这里面老外得出的结论是,conntrack在技术上完全可以取代state,state会逐渐废弃。然而,事实上state并没被废弃,一直在使用。
4. 一份邮件中提到,state仅仅是conntrack的alias,那么你是用哪个也就无所谓了,反正都是用的conntrack功能
结论:
根据
serverfault的QA
conntrack和state在内核层的实现是一致的(都使用contrack的nf_ct_get)。
xt_conntrack.c(conntrack模块的内核实现)比xt_state.c提供了更加丰富的选项和功能。
state只是一个最小化的状态集合,只支持基本的连接状态。
而conntrack可以支持包括NAT、连接协议、端口、地址等更复杂的选项。
iptables -m conntrack --help 可以看到支持的所有匹配选项
阅读(9826) | 评论(0) | 转发(0) |