Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ptcpdump — eBPFベースのパケットアナライザで、ネットワークトラフィックをキャプチャし、プロセス、コンテナ、Kubernetes Podのメタデータを自動で注釈付けします。tcpdump互換のフィルタリングとPcapNG出力をサポートしています。 | Kitploit
ツール/GitHubGitHub/mozillazg/ptcpdump
パケットスニッフィングと分析コンテナセキュリティ動的分析 (サンドボックス)ネットワークフォレンジックフォレンジックネットワークセキュリティデジタルフォレンジッククラウドセキュリティ
GitHubmozillazg/ptcpdump

ptcpdump

eBPFベースのパケットアナライザで、ネットワークトラフィックをキャプチャし、プロセス、コンテナ、Kubernetes Podのメタデータを自動で注釈付けします。tcpdump互換のフィルタリングとPcapNG出力をサポートしています。

リポジトリを見る
1.3k67724ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ptcpdump

amd64-e2e arm64-e2e Release Coveralls English | 中文

ptcpdumpは、eBPFを搭載したtcpdump互換のパケットアナライザです。検出可能な場合、パケットにプロセス/コンテナ/ポッドのメタデータを自動的に注釈付けします。 jschwinger233/skbdumpに触発されています。

目次

  • 特徴
  • インストール
    • 要件
  • 使い方
    • コマンド例
    • 出力例
    • Dockerでの実行
    • バックエンド
    • フラグ
  • tcpdumpとの比較
  • 開発
    • 依存関係
    • ビルド
  • 関連プロジェクト
    • Flownix

特徴

  • 🔍 プロセス/コンテナ/ポッド対応のパケットキャプチャ。
  • 📦 --pid(プロセス)、--pname(プロセス名)、--container-id(コンテナ)、--pod-name(ポッド)でフィルタリング。
  • 🎯 tcpdump互換のフラグ(-i、-w、-c、-s、-n、-C、-W、-Aなど)。
  • 📜 tcpdumpのようにpcap-filter(7)構文をサポート。
  • 🌳 tcpdump風の出力+プロセス/コンテナ/ポッドのコンテキスト。
  • 📑 冗長モードでは、プロセスやコンテナ/ポッドの詳細メタデータを表示。
  • 💾 メタデータを埋め込んだPcapNG(Wireshark対応)。
  • 🌐 名前空間を越えたキャプチャ(--netns)。
  • 🚀 カーネル空間BPFフィルタリング(低オーバーヘッド、CPU使用率低減)。
  • ⚡ コンテナランタイム統合(Docker、containerd)。

インストール

静的リンクされた実行可能ファイル(x86_64およびarm64向け)は、リリースページからダウンロードできます。

要件

Linuxカーネル >= 5.2(BPFおよびBTFサポート付きでコンパイルされていること)。

ptcpdumpはオプションでdebugfsを必要とします。/sys/kernel/debugにマウントされている必要があります。 フォルダが空の場合、以下のようにマウントできます:

mount -t debugfs none /sys/kernel/debug

以下のカーネル設定が必要です。モジュールとしてのビルドも可能です。

オプションバックエンド備考
CONFIG_BPF=y両方必須
CONFIG_BPF_SYSCALL=y両方必須
CONFIG_DEBUG_INFO=y両方必須
CONFIG_DEBUG_INFO_BTF=y両方必須
CONFIG_KPROBES=y両方必須
CONFIG_KPROBE_EVENTS=y両方必須
CONFIG_TRACEPOINTS=y両方必須
CONFIG_PERF_EVENTS=y両方必須
CONFIG_NET=y両方必須
CONFIG_NET_SCHED=ytc必須
CONFIG_NET_CLS_BPF=ytc必須
CONFIG_NET_ACT_BPF=ytc必須
CONFIG_NET_SCH_INGRESS=ytc必須
CONFIG_CGROUPS=ycgroup-skb必須
CONFIG_CGROUP_BPF=ycgroup-skb必須
CONFIG_FILTER=ysocket-filter必須
CONFIG_BPF_TRAMPOLINE=ytp-btf必須
CONFIG_SECURITY=y両方オプション(推奨)
CONFIG_BPF_TRAMPOLINE=y両方オプション(推奨)
CONFIG_SOCK_CGROUP_DATA=y両方オプション(推奨)
CONFIG_BPF_JIT=y両方オプション(推奨)
CONFIG_CGROUP_BPF=ytc, tp-btf, socket-filterオプション(推奨)
CONFIG_CGROUPS=ytc, tp-btf, socket-filterオプション(推奨)

zgrep $OPTION /proc/config.gzを使用して、オプションが有効かどうかを確認できます。

🔝

使い方

コマンド例

tcpdumpのようにフィルタリング:

sudo ptcpdump -i eth0 tcp
sudo ptcpdump -i eth0 -A -s 0 -n -v tcp and port 80 and host 10.10.1.1
sudo ptcpdump -i any -s 0 -n -v -C 100MB -W 3 -w test.pcapng 'tcp and port 80 and host 10.10.1.1'
sudo ptcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'

複数インターフェース:

sudo ptcpdump -i eth0 -i lo

プロセスまたはユーザーでフィルタリング:

sudo ptcpdump -i any --pid 1234 --pid 233 -f
sudo ptcpdump -i any --pname curl
sudo ptcpdump -i any --uid 1000

対象プログラムを実行してプロセスキャプチャ:

sudo ptcpdump -i any -- curl ubuntu.com

コンテナまたはポッドでフィルタリング:

sudo ptcpdump -i any --container-id 36f0310403b1
sudo ptcpdump -i any --container-name test
sudo ptcpdump -i any --pod-name test.default

PcapNG形式でデータ保存:

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 -

他のネットワーク名前空間のインターフェースをキャプチャ:

sudo ptcpdump -i lo --netns /run/netns/foo --netns /run/netns/bar
sudo ptcpdump -i any --netns /run/netns/foobar
sudo ptcpdump -i any --netns /proc/26/ns/net

🔝

出力例

デフォルト:

09:32:09.718892 vethee2a302f wget.3553008 In IP 10.244.0.2.33426 > 139.178.84.217.80: Flags [S], seq 4113492822, win 64240, length 0, ParentProc [python3.834381], Container [test], Pod [test.default]
09:32:09.718941 eth0 wget.3553008 Out IP 172.19.0.2.33426 > 139.178.84.217.80: Flags [S], seq 4113492822, win 64240, length 0, ParentProc [python3.834381], Container [test], Pod [test.default]

-q付き:

09:32:09.718892 vethee2a302f wget.3553008 In IP 10.244.0.2.33426 > 139.178.84.217.80: tcp 0, ParentProc [python3.834381], Container [test], Pod [test.default]
09:32:09.718941 eth0 wget.3553008 Out IP 172.19.0.2.33426 > 139.178.84.217.80: tcp 0, ParentProc [python3.834381], Container [test], Pod [test.default]

-v付き:

13:44:41.529003 eth0 In IP (tos 0x4, ttl 45, id 45428, offset 0, flags [DF], proto TCP (6), length 52)
    139.178.84.217.443 > 172.19.0.2.42606: Flags [.], cksum 0x5284, seq 3173118145, ack 1385712707, win 118, options [nop,nop,TS val 134560683 ecr 1627716996], length 0
    Process (pid 553587, cmd /usr/bin/wget, args wget kernel.org)
    User (uid 1000)
    ParentProc (pid 553296, cmd /bin/sh, args sh)
    Container (name test, id d9028334568bf75a5a084963a8f98f78c56bba7f45f823b3780a135b71b91e95, image docker.io/library/alpine:3.18, labels {"io.cri-containerd.kind":"container","io.kubernetes.container.name":"test","io.kubernetes.pod.name":"test","io.kubernetes.pod.namespace":"default","io.kubernetes.pod.uid":"9e4bc54b-de48-4b1c-8b9e-54709f67ed0c"})
    Pod (name test, namespace default, UID 9e4bc54b-de48-4b1c-8b9e-54709f67ed0c, labels {"run":"test"}, annotations {"kubernetes.io/config.seen":"2024-07-21T12:41:00.460249620Z","kubernetes.io/config.source":"api"})

--contextを使用して出力に含めるコンテキストを制限:

ツールをダウンロード