eunomia-bpf:简化并增强eBPF,支持CO-RE[^1]和WebAssembly[^2]
  
$ wget https://aka.pw/bpf-ecli -O ecli && chmod +x ./ecli
$ sudo ./ecli https://eunomia-bpf.github.io/eunomia-bpf/sigsnoop/package.json # 历史上的 GitHub Pages 用法,继续保留兼容
$ sudo ./ecli run ghcr.io/eunomia-bpf/execve:latest # 从 OCI 仓库运行一个预编译的 ebpf 工具
[79130] node -> /bin/sh -c which ps
[79131] sh -> which ps
[79132] node -> /bin/sh -c /usr/bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,c
[79133] sh -> /usr/bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
[79134] node -> /bin/sh -c "/home/yunwei/.vscode-server/bin/2ccd690cbf
[79135] sh -> /home/yunwei/.vscode-server/bin/2ccd690cbff 78132 79119 79120 79121
[79136] cpuUsage.sh -> sed -n s/^cpu\\s//p /proc/stat为了降低维护复杂度,主分支已经移除了旧的远程 HTTP 模式(ecli client / ecli-server)。最后一版实现保留在 archive/ecli-remote-http 分支中;参见旧模式说明。
安装项目
-
安装
ecli工具以从云端运行eBPF程序:$ wget https://aka.pw/bpf-ecli -O ecli && chmod +x ./ecli $ ./ecli -h ecli 子命令,包括 run、push、pull 用法: ecli [COMMAND_LINE]... [COMMAND] 命令: run 运行ebpf程序 push 将镜像推送到注册表 pull 从注册表拉取镜像 help 打印此消息或给定子命令的帮助 参数: [COMMAND_LINE]... 不推荐使用。仅用于兼容旧版本。要运行的命令行;可执行对象可以是本地路径、URL 或 `-`(从 stdin 读取)。后续参数会原样传递给程序 选项: -h, --help 打印帮助 .... -
安装
ecc编译器工具链,用于将eBPF内核代码编译为config文件或Wasm模块(为了编译,需要安装clang、llvm和libclang):$ wget https://github.com/eunomia-bpf/eunomia-bpf/releases/latest/download/ecc && chmod +x ./ecc $ ./ecc -h eunomia-bpf编译器 用法: ecc [OPTIONS] <SOURCE_PATH> [EXPORT_EVENT_HEADER] ....或使用docker镜像进行编译:
# 对于x86_64和aarch64 docker run -it -v `pwd`/:/src/ ghcr.io/eunomia-bpf/ecc-`uname -m`:latest # 使用docker进行编译。`pwd`应包含*.bpf.c文件和*.h文件。 -
构建编译器、运行库和工具:
有关构建详细信息,请参见build。
示例
有关简单eBPF工具和eunomia-bpf库使用的详细信息,请参见examples。
许可证
MIT LICENSE
Footnotes
-
CO-RE: 编译一次 – 在任何地方运行 ↩
-
WebAssembly 或 Wasm: https://webassembly.org/ ↩
继续阅读
- 最后更新
- 2026年3月8日
- 首次发布
- 2025年2月10日
- 贡献者
- 云微, LinuxDev9002, weekendfish
这个页面有帮助吗?