1. 下载源代码

Github Releases 页面下载源代码。本文使用的 PF_RING 8.4。

按需设置代理,比如 export https_proxy=http://10.1.1.117:7890


2. 安装依赖

本文使用的操作系统是 Ubuntu 20.10。

卸载系统自带的 libpcap,比如博主的操作系统安装的是 libpcap0.8:


3. 安装 PF_RING

3.1. 安装内核模块

进入 PF_RING-8.4.0/kernel/ 目录。

3.2. 加载内核模块

进入 PF_RING-8.4.0/kernel/ 目录。

使用如下命令查看内核模块 pf_ring 的参数:

其中以 parm: 开头的行是内核模块 pf_ring 的参数。

比如,enable_ip_defrag 参数的作用如下。

IP 数据包可以被分片成较小的片段进行传输,然后在目的地重新组装成完整的数据包。这种分片和重组的过程在网络中是常见的,特别是在处理大型数据包或经过具有较小 MTU(最大传输单元)限制的链路时。

enable_ip_defrag 参数的作用是控制 pf_ring 是否对接收到的 IP 分片进行重组。以下是该参数的作用:

3.3. 修改驱动

如果想在 Intel 适配器上,实现万兆及以上的速率捕获数据包,那么需要使用零拷贝驱动。本文暂不使用 PF_RING ZC,故不修改驱动。

3.4. 安装用户空间 lib

进入 PF_RING-8.4.0/userland/lib/ 目录。

3.5. 安装 libpcap

进入 PF_RING-8.4.0/userland/libpcap/ 目录。

查看:

3.6. 查看信息


4. 测试

进入 PF_RING-8.4.0/userland/ 目录。

进入 PF_RING-8.4.0/userland/examples/ 目录。

注意:

  1. 按需修改网卡名称

  2. pfcount 使用 pf_ring;pcount 不使用 pf_ring

  3. 使用 ./pfcount -h 查看帮助信息