skaiui2/wirefisher

GitHub: skaiui2/wirefisher

基于 eBPF 的轻量级 Linux 流量监控与限速工具,支持进程、IP、端口、cgroup 等多维度精确过滤控制。

Stars: 38 | Forks: 3

# wirefisher **wirefisher** 是一个基于 eBPF 的流量控制工具,支持基于进程 ID、IP 地址、端口、网络接口和 cgroup 的精确限速。它专为 Linux 环境下轻量级、可编程的流量整形而设计。 **wirefisher** 提供三项主要功能:实时网络监控、细粒度流量限制和自适应性能调优。 ## 注意事项 我正在开发 FlyFish,即 Wirefisher 的分布式前端——如果您对 Wirefisher 有任何建议或功能需求,欢迎提交 issue。 ## 功能特性 - 基于进程的带宽控制 - 基于 IP、端口和协议的过滤 - 接口级别的速率限制 - 基于 Cgroup 的流量整形 - 支持入口和出口方向 - 实时速率指标:平均值、峰值和平滑值 - 监控特定的 IP/端口组合,并在检测到匹配时自动切换您在规则中设置的拥塞控制算法 ## 环境设置 两种方式: - [命令行](docs/中文/eBPF环境搭建.md) 或者: - [Docker](docs/中文/docker.md) ## 配置示例 进入文档目录: ``` $: cd config /config: vim config.yaml ``` 如下所示: ``` process_module: process_rule: target_pid: 4580 rate_bps: 1M gress: ingress time_scale: 1s ``` 其他模块(cgroup、interface、IP/port/protocol)均可用,可以通过在 `config.yaml` 中取消注释相应部分来启用。 ## 构建 ``` $: cd bpf /bpf$: make /bpf$: cd .. $: mkdir build $: cd build /build$: cmake .. /build$: make /build$: sudo ./wirefisher ``` 现在它将开始运行! ## 系统要求 - Linux 内核 5.4 或更高版本 - Root 权限 - libbpf 和 clang 工具链
标签:Bash脚本, Cgroup, DNS解析, Docker镜像, libbpf, Linux网络, UML, 内核编程, 安全渗透, 带宽控制, 开源项目, 性能监控, 拥塞控制, 流量整形, 流量监控, 系统工具, 网络安全, 网络过滤, 请求拦截, 运维工具, 进程级过滤, 隐私保护