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仪表盘, 可视化界面, 多核处理, 异常检测, 插件系统, 无锁并发, 目录遍历, 端口扫描检测, 网络安全, 网络安全审计, 网络流量审计, 运维工具, 通知系统, 通知系统, 防御绕过, 隐私保护, 零拷贝, 高性能计算