GitHub - cilium/pwru:数据包,你在哪里?——基于 eBPF 的 Linux 内核网络调试器

主要观点:介绍了名为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 等,可通过makemake release构建,提交代码需有 Developer Certificate of Origin。
  • 社区:可加入#pwruSlack 频道交流。
  • Logo :侦探土拨鼠基于 Renee French 设计的 Go 土拨鼠。
    重要细节
  • 示例中展示了curl请求的数据包在安装 IP tables 规则后被丢弃的情况。
  • Docker 运行示例中指定了--privileged等参数并挂载/sys/kernel/debug
  • Kubernetes 运行示例中创建 Pod 并指定节点、参数等,最后等待并查看日志。
  • 在开发部分详细说明了各种依赖的版本要求及构建方式等。
阅读 42
0 条评论