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, 内核编程, 安全渗透, 带宽控制, 开源项目, 性能监控, 拥塞控制, 流量整形, 流量监控, 系统工具, 网络安全, 网络过滤, 请求拦截, 运维工具, 进程级过滤, 隐私保护