在Linux下通常的数据包捕获系统,通过Libpcab函数框架实现,而在该体系下实现的包捕获存在着一些缺陷。在Linux2.4版本后,Linux使用了Netfilter框架,便于用户构建自己的防火墙。在该框架下,通过注册钩子函数,可以轻松实现数据包的捕获。本文通过研究Linux2.4后版本内核中的网络框架Netfilter,给出了在该框架下对数据包进行捕获的设计方案,并集中解决了数据信息提取和使用Netlink实现内核与用户态通信的关键问题。