主要观点:介绍了名为pwru
的基于 eBPF 的工具,用于在 Linux 内核中追踪网络数据包并具有高级过滤功能,包括运行要求、下载、使用方法(如各种选项及示例)、在 Docker、Kubernetes、Vagrant 上的运行方式、开发相关(依赖、构建、签名等)以及社区和 logo 相关信息。
关键信息:
- 运行要求:需>=5.3 内核,不同功能对应不同内核版本要求,还可能需
debugfs
且挂载在/sys/kernel/debug
。 - 下载:可从release page下载静态链接可执行文件。
- 使用方法:提供多种选项,如
--filter-func
等,--filter-func
可精确匹配或通配匹配函数名。 - 运行环境:Docker 可运行
pwru
,Kubernetes 可在特定节点上运行,Vagrant 参考[docs/vagrant.md]。 - 开发:依赖 Go>=1.16、LLVM/clang>=12 等,可通过
make
或make release
构建,提交代码需有 Developer Certificate of Origin。 - 社区:可加入
#pwru
Slack 频道交流。 - Logo :侦探土拨鼠基于 Renee French 设计的 Go 土拨鼠。
重要细节: - 示例中展示了
curl
请求的数据包在安装 IP tables 规则后被丢弃的情况。 - Docker 运行示例中指定了
--privileged
等参数并挂载/sys/kernel/debug
。 - Kubernetes 运行示例中创建 Pod 并指定节点、参数等,最后等待并查看日志。
- 在开发部分详细说明了各种依赖的版本要求及构建方式等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。