msaadshabir/NetScope

GitHub: msaadshabir/NetScope

基于 Rust 的高性能网络数据包捕获与协议分析工具,提供实时流追踪、异常检测和 Web 可视化仪表板。

Stars: 1 | Forks: 0

# NetScope 基于 Rust 构建的高性能数据包捕获与协议分析工具。能够捕获实时网络流量,追踪包含 TCP 状态和 RTT 估算的双向流,检测异常情况,并提供实时 Web 仪表板——所有功能集成在单个二进制文件中。 ## 功能特性 - **实时数据包捕获**:通过 libpcap 实现,支持 BPF 过滤器 - **零拷贝协议解析**:支持 Ethernet、802.1Q VLAN、IPv4、IPv6、TCP、UDP、ICMP - **流追踪**:双向计数器、TCP 状态机、RTT 估算、重传和乱序检测 - **分片流水线**:利用多核处理,实现无锁的分片流追踪 - **异常检测**:SYN flood 和端口扫描告警,阈值可配置 - **Web 仪表板**:实时浏览器 UI,包含吞吐量图表、Top 流、数据包检查器和告警 - **导出功能**:流数据导出为 JSON/CSV,告警导出为 JSONL,数据包导出为 pcap - **TOML 配置**:支持完整的 CLI 覆盖 ## 快速开始 ``` # 构建 cargo build --release # 列出 interfaces sudo ./target/release/netscope --list-interfaces # 在默认 interface 上 Capture sudo ./target/release/netscope # 在特定 interface 上 Capture TCP 流量 sudo ./target/release/netscope -i en0 -f "tcp port 443" -c 100 # 带有 top flows 的吞吐量统计 sudo ./target/release/netscope --quiet --stats --top-flows 5 # 启动 web dashboard (打开 http://127.0.0.1:8080) sudo ./target/release/netscope --web --quiet # Multi-core pipeline 模式 sudo ./target/release/netscope --pipeline --web --quiet --anomalies # Dev alternative (避免 sudo 下的 PATH 问题): # sudo cargo run --release -- --web --quiet ``` 实时捕获需要提升权限(Linux 上需要 `sudo` 或 `CAP_NET_RAW`)。 ## 文档 | 指南 | 描述 | | -------------------------------------------------- | --------------------------------------------------- | | **[入门指南](docs/getting-started.md)** | 前置条件、构建、权限及首次捕获 | | **[使用示例](docs/usage.md)** | 常用方案和工作流 | | **[CLI 参考](docs/cli-reference.md)** | 完整的标志和选项列表 | | **[配置说明](docs/configuration.md)** | TOML 配置模式及优先级规则 | | **[Web 仪表板](docs/web-dashboard.md)** | 实时浏览器 UI 设置与调优 | | **[分片流水线](docs/pipeline.md)** | 多核架构与调优 | | **[流追踪](docs/flow-tracking.md)** | 双向流、TCP 状态、RTT | | **[异常检测](docs/anomaly-detection.md)** | SYN flood 和端口扫描检测 | | **[数据导出](docs/exports.md)** | 输出格式 (JSON, CSV, JSONL, pcap) | | **[性能调优](docs/performance.md)** | 基准测试与调优清单 | | **[故障排除](docs/troubleshooting.md)** | 常见问题及修复 | | **[开发指南](docs/development.md)** | 仓库结构、测试、扩展协议 | ## 注意事项 - 捕获通常需要 **root 权限**。出于安全考虑,Web 仪表板默认绑定到 `127.0.0.1`。 - 不解析 IPv6 扩展头部(负载从固定的 40 字节头部之后开始)。 - 流追踪会跳过非初始的 IPv4 分片。 - 时间戳格式为 `HH:MM:SS.microseconds` (UTC)。 ## 许可证 MIT License。详见 [LICENSE](LICENSE)。
标签:BPF过滤, NetScope, Python安全, RTT估算, Rust, SYN Flood检测, TCP/IP, TCP状态机, Web仪表盘, 可视化界面, 多核处理, 异常检测, 插件系统, 无锁并发, 目录遍历, 端口扫描检测, 网络安全, 网络安全审计, 网络流量审计, 运维工具, 通知系统, 通知系统, 防御绕过, 隐私保护, 零拷贝, 高性能计算