加载中...
eBPF(扩展型伯克利包过滤器)允许在 Linux 内核中运行沙箱化的用户定义程序,无需修改内核源码或加载内核模块,被用于高性能网络、安全监控和可观测性,是近五年 Linux 最具影响力的技术突破之一。

| 全称 | Extended Berkeley Packet Filter |
| 引入内核版本 | Linux 3.18(2014 年,基础);4.x/5.x 持续增强 |
| 主要用途 | 网络、安全、可观测性、性能分析 |
BPF(伯克利包过滤器)最初由 Berkeley 的研究者在 1993 年提出,用于 tcpdump 这类网络抓包工具。2014 年,Alexei Starovoitov 对 BPF 进行了彻底重设计,形成 eBPF(extended BPF):64 位寄存器、更丰富的指令集、可以挂载到内核的各种钩子点(网络、系统调用、函数入口/出口、性能事件)、有验证器确保程序安全不会导致内核崩溃。eBPF 程序在 JIT 编译后直接跑在内核中,性能接近原生内核代码。[1]
网络与安全:Cloudflare 用 eBPF 在内核层做 DDoS 过滤,在数据包进入网络协议栈之前就丢弃恶意流量,单机可达每秒数百万包的处理能力;Cilium 基于 eBPF 替换 kube-proxy 实现 Kubernetes 网络,同时提供 L7 感知的网络策略。
可观测性:bpftrace 让你用一行脚本追踪任意内核函数,比 strace 效率高几个数量级;Meta 的 Katran 用 eBPF 做四层负载均衡,替代了 IPVS。
性能分析:BCC(BPF Compiler Collection)和 perf 的 eBPF 后端让性能分析工具可以动态插入内核,不需要重启或修改代码,Netflix 工程师 Brendan Gregg 是这个方向最重要的推广者。

| 全称 | Extended Berkeley Packet Filter |
| 引入内核版本 | Linux 3.18(2014 年,基础);4.x/5.x 持续增强 |
| 主要用途 | 网络、安全、可观测性、性能分析 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧