eBPF 系列
eBPF 早已不是 Berkeley Packet Filter 那点事了。它是一个运行在 Linux 内核里的可编程虚拟机:你写的代码经过验证器检查后挂到内核的各种 hook 点上,不改内核源码就能做网络加速、安全审计、性能分析。本系列从架构原理讲起,逐篇拆解 eBPF 在生产环境里最重要的几个应用方向。
为什么要系统学 eBPF? 一篇文章够你”知道”eBPF,但要在生产环境里用好它——写 XDP 防火墙、替换 iptables、做持续 profiling——你需要理解验证器的限制、Map 的选型、各 hook 点的语义差异。这个系列就是把这些知识串起来。
适合谁看
本系列假设你熟悉 Linux 网络栈基础(iptables、TCP/IP)和系统编程概念。如果你已经听过 eBPF 但不确定它能解决你的哪些问题,这个系列就是为你写的。
先修知识自测
在开始之前,用这几个问题检验一下你的基础。如果大部分答不上来,建议先补一下 Linux 内核基础:
- 你能说出 BPF 验证器的三个主要检查吗?(提示:内存越界、无限循环、未初始化变量)
- 你理解 kprobe 和 tracepoint 的区别吗?(提示:一个是动态插桩,一个是内核预埋的静态钩子)
- 你知道 eBPF Map 的至少三种类型吗?(提示:HashMap、Array、RingBuffer、PerCPU 变体……)
- 你能解释 XDP 程序在网络栈的哪个位置执行吗?(提示:在内核网络栈之前,甚至在 skb 分配之前)
- 你理解
perf_event_open系统调用的基本用途吗?(提示:它是 perf 和 eBPF profiling 的基础)
答不上来也没关系——第一篇文章(eBPF 架构总览)会覆盖这些概念。但如果你连 Linux 的 syscall 概念都不清楚,建议先看 从零造容器系列 的前几篇。
推荐阅读顺序: - 从零入门 eBPF → 01(架构总览)→ 03(bpftrace 实战)→ 07(工具链演化) - 网络方向 → 01 → 02(io_uring 联动)→ 04(XDP)→ 06(Cilium) - 安全方向 → 01 → 05(LSM BPF / Falco / Tetragon)→ 04(XDP 防火墙) - 性能分析 → 01 → 03(bpftrace)→ 07(perf → BCC → Parca)
目录
基础篇
- eBPF:Linux
内核的隐藏武器 ⏱ ~20 分钟 | 难度: ★★★☆☆ (基础设施工程师
/ 后端开发)
- eBPF 架构、验证器、Map 数据结构
- 四种挂载点:kprobe / tracepoint / XDP / cgroup
网络篇
- eBPF +
io_uring:Linux 高性能网络栈的终极形态 ⏱ ~10 分钟 |
难度: ★★★★☆ (基础设施工程师 / 高性能网络开发)
- AF_XDP 零拷贝收发包
- 内核旁路与用户态协议栈的配合
- XDP:在网卡驱动层就把包丢掉
⏱ ~25 分钟 | 难度: ★★★☆☆ (网络工程师 / 安全工程师)
- 三种模式:native / offload / generic
- 用 50 行代码写一个极简防火墙
- eBPF +
容器:Cilium 的数据面为什么不再需要 iptables ⏱ ~30 分钟
| 难度: ★★★★☆ (SRE / 平台工程师)
- 替代 kube-proxy 的实现原理
- Service Mesh 无 sidecar 方案
可观测性与安全篇
- eBPF
追踪实战:用 bpftrace 在生产环境找到那个慢请求 ⏱ ~30
分钟 | 难度: ★★☆☆☆ (SRE / 后端开发)
- bpftrace 一行脚本的表达力
- 延迟直方图、off-cpu 分析
- eBPF
安全监控:不改内核也能审计 syscall ⏱ ~25 分钟 | 难度:
★★★☆☆ (安全工程师 / SRE)
- LSM BPF hook 机制
- Falco、Tetragon 架构对比
- eBPF
性能分析工具链:perf → BCC → bpftrace → Parca 的演化 ⏱
~35 分钟 | 难度: ★★☆☆☆ (SRE / 性能工程师)
- 从采样到持续性能分析
- 各工具适用场景与选型建议
相关阅读
本系列与博客其他文章形成交叉引用网络,按主题分组:
容器与 Kubernetes - 从零造容器系列 — namespace / cgroup / overlay 等内核积木 - 容器网络性能真相:veth vs macvlan vs eBPF 数据面 — eBPF 替代 iptables 的实测数据
高性能 I/O - io_uring 系列 — io_uring 本体的深度拆解,与 eBPF 的 AF_XDP 搭配阅读
安全 - Seccomp-BPF 与 Capabilities — Seccomp-BPF 与 eBPF 同源的过滤机制