ptcpdump: 基于 eBPF 的抓包神器,支持抓取进程、容器或 Pod 的网络流量

发布时间: 更新时间: 总字数:699 阅读时间:2m 作者: IP:上海 网址

ptcpdump 是一款进程感知、基于 eBPF 实现的 tcpdump,

介绍

  • 进程感知
    • 感知与数据包相关的进程信息
    • 支持按进程 ID 和进程名称过滤数据包
  • 容器感知和 Kubernetes 感知
    • 感知与数据包相关的容器和 pod 信息
    • 支持多个容器运行时:支持按容器 ID、容器名称和 pod 名称过滤数据包
  • 支持使用 pcap-filter(7) 语法过滤数据包
  • 直接在内核空间应用过滤器
  • 支持将捕获的数据包保存为 PcapNG 格式,以便使用 Wireshark 等第三方工具进行离线分析

安装

help

ptcpdump --help ...

示例

Filter like tcpdump:

sudo ptcpdump -i eth0 tcp
sudo ptcpdump -i eth0 tcp and port 80 and host 10.10.1.1
sudo ptcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'

Multiple interfaces:

sudo ptcpdump -i eth0 -i lo

Filter by process:

sudo ptcpdump -i any --pid 1234
sudo ptcpdump -i any --pname curl

Capture by process via run target program:

sudo ptcpdump -i any -- curl ubuntu.com

Filter by container:

sudo ptcpdump -i any --container-id 36f0310403b1
sudo ptcpdump -i any --container-name test

Filter by Pod:

sudo ptcpdump -i any --pod-name test.default

Save data in PcapNG format:

sudo ptcpdump -i any -w demo.pcapng
sudo ptcpdump -i any -w - port 80 | tcpdump -n -r -
sudo ptcpdump -i any -w - port 80 | tshark -r -
本文总阅读量 次 本站总访问量 次 本站总访客数