简单来来说 ,netfilter 是一个工作在内核空间的数据包过滤系统,iptables 是一个工作在用户控件。调用netfilter 的规则管理工具。
netfilter.org是Linux 2.4.x及更高版本内核系列中包过滤框架软件的所在地。通常与netfilter.org相关的软件是iptables。
该框架内的软件支持包过滤,网络地址[和端口]转换(NA [P] T)和其他数据包重整。它是以前的Linux 2.2.x ipchains和Linux 2.0.x ipfwadm系统的重新设计和大幅改进的后继者。
netfilter是Linux内核中的一组钩子,允许内核模块向网络堆栈注册回调函数。然后,对于遍历网络堆栈内的相应挂钩的每个数据包,回调注册的回调函数。
iptables是规则集定义的通用表结构。IP表中的每个规则都包含许多分类器(iptables匹配)和一个连接动作(iptables目标)。
netfilter,ip_tables,连接跟踪(ip_conntrack,nf_conntrack)和NAT子系统共同构建了框架的主要部分。
iptables是用户空间命令行程序,用于配置Linux 2.4.x及更高版本的包过滤规则集。是一个工作管理工具,它面向系统管理员。
由于网络地址转换也是从数据包过滤规则集配置的,因此 也使用iptables。
的iptables的包装还包括 ip6tables。 ip6tables用于配置IPv6数据包过滤器。
iptables需要一个具有ip_tables数据包过滤器的内核。这包括所有2.4.x及更高版本的内核版本。
具体调用过程如下:
原文:https://www.cnblogs.com/zy09/p/10384051.html