pcap

概述

参考:

在计算机网络管理领域,Packet Capture(包捕获,简称 pcap) 是一个用于捕获网络流量的 API。很多数据包分析器都依赖于 pcap 来运行。所以,pcap 准确来说,应该称为 PCAP API

Notes: 虽然该名称是 packet capture 的缩写,但这并不是 API 的正确名称。类 Unix 系统在 libpcap 库中实现 pcap;对于 Windows,有一个名为 WinPcap 的 libpcap 端口不再受支持或开发,而对于 Windows 7 及更高版本,仍支持一个名为 Npcap 的端口。

很多实现 pcap 能力的语言若想开发 PCAP 能力必须依赖 libpcap(e.g. go 语言需要开启 CGO_ENABLED=1,且保证系统中安装了 pcap)

pcap 安装

Npcap

https://npcap.com/#download

无注意事项,直接安装即可。

libpcap

参考:

libpcap 是 Unix-like OS 下的 pcap C 库,若想基于 libpcap 进行开发,通常需要在系统中安装 C 语言的头文件(i.e. libpcap 的开发库)

  • Ubuntu 系系统
    • apt install libpcap-dev
  • RedHat 系系统
    • yum install libpcap-devel

libpcap 与 TCPDump 项目一起进行维护

其它抓包工具

netcap # 一个基于 BCC 工具集,可对含skb作为参数的系统函数,或者基于 DPDK 的mbuf抓包分析的工具。


最后修改 August 12, 2024: prom data model, netcap (88ba30c3)