Home

Awesome

eBPF Firewall

eBPF Firewall 是基于 eBPF 技术的高性能网络防火墙系统,具有实时入站流量监控、规则过滤和黑名单管理等功能。主要用于在资源有限的 VPS 中进行入站流量监控和过滤。

功能特点

更新日志

截图

截图

截图

截图

技术栈

编译 & 运行

git clone https://github.com/danger-dream/ebpf-firewall.git
cd ebpf-firewall
chmod +x quickstart.sh
./quickstart.sh build
./quickstart.sh start

Quickstart

项目提供了 quickstart.sh 用于自动化部署和管理,支持完整的容器生命周期管理。

基础部署

# Build docker image
./quickstart.sh build

# Deploy container
./quickstart.sh start

# Build and deploy in one command
./quickstart.sh run

生产环境配置

# Specify network interface and listening address
./quickstart.sh start \
    -i eth0 \
    --addr 0.0.0.0:8080 \
    -a ${YOUR_AUTH_TOKEN} \
    -d /data/ebpf-firewall

# Deploy with custom image tag
./quickstart.sh run \
    --tag v1.0.0 \
    --no-cache \
    -i eth0

运维管理

# View real-time logs
./quickstart.sh logs -f --tail 100

# Stop service
./quickstart.sh stop

# Clean up resources
./quickstart.sh clean

# Prune docker build cache
./quickstart.sh prune

具体用法

# ./quickstart.sh
Usage: ./quickstart.sh <command> [options]

Commands:
    build   Build the container image
    start   Start the container
    stop    Stop the container
    remove  Stop and remove the container
    clean   Remove both container and image
    run     Build image and start container
    prune   Clean up docker build cache
    logs    View container logs

Options:
    -t, --tag <tag>         Specify image tag (default: latest)
    -n, --no-cache          Build without using cache
    -f, --follow            Follow log output
    --tail <n>              Number of lines to show from the end of logs

Runtime Options:
    -i, --interface <name>  Network interface to monitor
    -p, --port <port>       API port (default: 5678)
    --addr <address>        API address (default: :5678)
    -d, --data <path>       Data directory path (default: ./data)
    -a, --auth <token>      API authentication token (default: auto generated)

Examples:
    ./quickstart.sh build --tag v1.0.0
    ./quickstart.sh run -i eth0 -p 8080
    ./quickstart.sh start -i ens33 --addr :18080
    ./quickstart.sh start -i ens33 --addr 10.0.0.10:8080 -a 1234567890
    ./quickstart.sh logs -f

待开发...

贡献

请查看 CONTRIBUTING.md

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。