DevOps专业术语
eBPF
extended Berkeley Packet Filter
eBPF · 不改内核代码就能给 Linux 加新功能
Linux可观测性
EBPF
- 定义
- eBPF(extended Berkeley Packet Filter)是DevOps领域的专业术语。eBPF 允许在 Linux 内核中安全地运行自定义程序,无需修改内核源码或加载内核模块。
最后更新:2026-03-18
什么是eBPF?
eBPF 允许在 Linux 内核中安全地运行自定义程序,无需修改内核源码或加载内核模块。它正在革命性地改变网络、安全和可观测性领域。
- 在内核中安全运行自定义程序
- 无需修改内核源码,动态加载
- Cilium、Falco 等项目基于 eBPF 构建
eBPF详解
eBPF 最初用于网络包过滤,现已发展为通用的内核可编程框架。eBPF 程序在内核的沙箱中运行,经过验证器检查确保安全性。基于 eBPF 的项目包括:Cilium(K8s 网络和安全)、Falco(运行时安全)、bpftrace(动态追踪)。eBPF 被称为「Linux 的超能力」,正在替代传统的 iptables、kprobe 等机制,成为内核扩展的标准方式。
eBPF的应用场景
正式定义
Linux 内核中的可编程沙箱技术,允许安全地运行自定义内核程序
应用场景
- 高性能网络数据包处理和过滤
- 系统和应用的深度可观测性
- 运行时安全监控和威胁检测
常见误区
- eBPF 不只是包过滤,已发展为通用内核编程框架
- eBPF 程序有严格的安全验证,不会导致内核崩溃
- eBPF 不能做所有事,有指令数和循环限制
实际案例
📌 Cilium 和 eBPF
Cilium 基于 eBPF 实现 K8s 的网络策略和负载均衡,性能比传统 iptables 方案提升数倍,已被 Google GKE、AWS EKS 等采用为默认网络方案。
eBPF的参考来源
- 文档
- 社区Brendan Gregg: eBPFBrendan Gregg
关于eBPF的常见问题
- eBPF 能做什么
- 在内核中安全运行自定义程序,用于网络过滤、性能分析、安全监控、可观测性,无需修改内核代码。
- eBPF 和内核模块有什么区别
- eBPF 程序经过验证器检查保证安全,不会导致内核崩溃;内核模块有完全权限但可能引入稳定性风险。