it-atelier-gn/spotcapture

GitHub: it-atelier-gn/spotcapture

一款用 Go 编写的轻量级数据包捕获工具,可在指定网络接口上实时抓包并将生成的 PCAP 文件自动上传至 AWS S3。

Stars: 0 | Forks: 0

# spotcapture [![Linux](https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black)](#) [![macOS](https://img.shields.io/badge/macOS-000000?logo=apple&logoColor=F0F0F0)](#) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/it-atelier-gn/spotcapture) 捕获网络数据包,直到接收到停止事件,并将包含已捕获数据包的 PCAP 文件上传到 S3 存储桶。 ## 功能 * 在指定网络接口上进行持续的数据包捕获 * 用于高效内存管理的环形缓冲区 * 根据捕获的数据包生成 PCAP 文件 * 自动上传到 AWS S3 * 支持 HTTP 代理 * 支持多种停止事件触发器 ## 停止事件 * SIGTERM 信号 * 指定端口上的 TCP/UDP 连接 ## 配置 在项目根目录下创建一个 `config.yml` 文件: ``` interface: eth0 # Network interface to capture on port: 5000 # Port to listen for stop events key: "" # AWS Access Key ID secret: "" # AWS Secret Access Key region: "eu-central-1" # AWS region bucket: "s3-bucket-name" # S3 bucket name proxy: "http://proxy" # Optional HTTP proxy URL ``` ## 构建 ``` CGO_ENABLED=0 go build -o spotcapture cmd/main.go ``` ## 工作原理 1. 从 `config.yml` 加载配置 2. 在指定的网络接口上启动数据包捕获 3. 将数据包存储在环形缓冲区中(最多 1000 个数据包) 4. 监听指定端口上的 TCP/UDP 连接 5. 发生停止事件时,将捕获的数据包转换为 PCAP 格式 6. 将带有时间戳的 PCAP 文件上传到 S3 存储桶 ## 环境要求 * Go 1.16 或更高版本 * 网络接口访问权限(可能需要提升的权限) * 具备 S3 写入权限的 AWS 凭证
标签:AWS S3, EVTX分析, Go, PCAP, Ruby工具, 容器网络, 日志审计, 流量监控, 网络抓包, 网络调试, 自动化