news 2026/7/25 23:25:25

12、Linux 网络数据包过滤与流量控制:eBPF 实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12、Linux 网络数据包过滤与流量控制:eBPF 实战指南

Linux 网络数据包过滤与流量控制:eBPF 实战指南

1. 网络数据包过滤

1.1 编写自定义代码过滤数据包

除了分析tcpdump生成的汇编代码,我们还可以编写自己的代码来过滤网络数据包。不过,调试代码执行以确保其符合预期是一大挑战。在 Linux 内核源代码树的tools/bpf目录下,有一个名为bpf_dbg.c的调试器,它允许我们加载程序和pcap文件,逐步测试执行过程。此外,tcpdump也可以直接从.pcap文件读取数据并应用 BPF 过滤器。

1.2 原始套接字的数据包过滤

BPF_PROG_TYPE_SOCKET_FILTER程序类型允许我们将 BPF 程序附加到套接字上。所有接收到的数据包都会以sk_buff结构体的形式传递给程序,程序可以决定丢弃或允许这些数据包。这类程序还可以访问和操作映射。

1.2.1 示例程序目的

我们的示例程序旨在统计观察接口中 TCP、UDP 和 ICMP 数据包的数量。为此,我们需要以下几个部分:
- 能够查看数据包的 BPF 程序。
- 加载程序并将其附加到网络接口的代码。
- 编译程序并启动加载器的脚本。

1.2.2 编写 BPF 程序

我们可以用两种方式编写 BPF 程序:一是将 C 代码编译成 ELF 文件,二是

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 22:51:29

14、XDP 编程:从基础到实践

XDP 编程:从基础到实践 1. 数据包处理器 在 XDP(eXpress Data Path)中,数据包处理器是执行 BPF 程序和协调网络栈交互的核心组件。它直接处理来自网卡接收(RX)队列的数据包,确保数据包可读可写,并允许以数据包处理器操作的形式附加后处理裁决。其特点如下: - 运行…

作者头像 李华
网站建设 2026/7/23 4:17:05

X-TRACK DIY制作全攻略:从零打造个性化GPS自行车码表外壳

X-TRACK DIY制作全攻略:从零打造个性化GPS自行车码表外壳 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK 作为一名骑行爱好者,你是…

作者头像 李华
网站建设 2026/7/22 21:12:26

火山引擎文档中心上线Qwen-Image-Edit-2509接入指南

火山引擎Qwen-Image-Edit-2509接入指南:技术深度解析与应用实践 在电商运营的深夜,一位设计师正为即将到来的大促活动批量修改上千张商品图——每一张都要手动添加“限时折扣”标签、调整文字颜色、对齐排版。这个过程重复枯燥,耗时长达数小时…

作者头像 李华
网站建设 2026/7/23 13:49:09

FLUX.1-dev支持指令微调?多任务学习实践案例分享

FLUX.1-dev支持指令微调?多任务学习实践案例分享 在创意内容爆发的今天,AI生成图像早已不再是“能不能画出来”的问题,而是“能不能听懂我想要什么”的挑战。用户不再满足于输入几个关键词就碰运气出图,他们希望模型能理解复杂语义…

作者头像 李华
网站建设 2026/7/19 2:34:13

6、深入理解Linux USB文件系统:从VFS到usbfs的构建

深入理解Linux USB文件系统:从VFS到usbfs的构建 1. USB通知框架概述 在Linux系统中,订阅者模块现在可以开始接收来自USB框架的通知。当我们向计算机添加一个USB设备时,就能看到USB设备添加的调试消息。USB通知框架虽然是usbcore的一个简单部分,但对于传递USB事件至关重要…

作者头像 李华
网站建设 2026/7/25 13:33:41

解决failed to connect to api.anthropic.c错误,转向国产Qwen方案

解决 failed to connect 到境外 API 的难题,转向国产 Qwen 图像编辑方案 在跨境电商运营的某个清晨,设计师正准备批量生成新品主图,却突然发现图像编辑服务卡住了——日志里反复出现 failed to connect to api.anthropic.com。这不是个例。过…

作者头像 李华