doublegate/ProRT-IP
GitHub: doublegate/ProRT-IP
Rust 编写的高性能网络扫描器,融合 Masscan 级速度与 Nmap 级深度检测,面向安全审计与网络侦察场景。
Stars: 3 | Forks: 0
# ProRT-IP WarScan
## 高性能网络扫描器
[](https://github.com/doublegate/ProRT-IP/releases/tag/v1.0.0)
[](https://github.com/doublegate/ProRT-IP/actions/workflows/ci.yml)
[](https://github.com/doublegate/ProRT-IP/actions)

[](LICENSE)
[](https://www.rust-lang.org)
[](https://hub.docker.com/r/doublegate/prtip)
**结合 Masscan/ZMap 的速度与 Nmap 的检测深度的现代网络扫描器。**
## 概述
**ProRT-IP WarScan** 是一款使用 Rust 编写的专业网络扫描工具,提供:
- **速度:** 每秒处理 1000 万以上数据包的无状态扫描(Masscan/ZMap 级别)
- **深度:** 全面的服务检测和 OS 指纹识别(Nmap 级别)
- **安全性:** 内存安全的 Rust 实现可防止整类漏洞
- **隐蔽性:** 高级规避技术(时间、诱饵、分片、TTL 操纵、空闲扫描)
- **现代 TUI:** 具有 60 FPS 渲染和 4 标签页界面的实时仪表板
- **可扩展性:** 带有 Lua 5.4 沙盒执行功能的插件系统
### 核心功能
| 类别 | 功能 |
|----------|----------|
| **扫描** | TCP SYN, Connect, FIN, NULL, Xmas, ACK, Idle/Zombie, UDP |
| **检测** | 服务检测(85-90% 准确率),OS 指纹识别(2,600+ 签名) |
| **协议** | 完整的 IPv4/IPv6 双栈,8 种 UDP 协议 payload |
| **性能** | 10M+ pps 无状态,自适应速率限制(-1.8% 开销) |
| **规避** | 数据包分片,TTL 控制,诱饵,时间模板(T0-T5) |
| **输出** | Text, JSON, XML, Greppable, PCAPNG, SQLite |
| **界面** | 生产级 CLI,60 FPS TUI 仪表板 |
### 功能对比

*ProRT-IP WarScan 与主流网络扫描工具(Nmap, Masscan, ZMap, RustScan)的对比*
## 快速开始
### 安装
**预编译二进制文件**(Linux, Windows, macOS):
```
# 下载最新 release
wget https://github.com/doublegate/ProRT-IP/releases/latest/download/prtip-linux-x86_64
chmod +x prtip-linux-x86_64
sudo mv prtip-linux-x86_64 /usr/local/bin/prtip
```
**从源码构建:**
```
git clone https://github.com/doublegate/ProRT-IP.git
cd ProRT-IP
cargo build --release
sudo setcap cap_net_raw,cap_net_admin=eip target/release/prtip
```
### 基本用法
```
# SYN scan(需要权限)
prtip -sS -p 80,443 192.168.1.0/24
# 快速 scan(前 100 个 ports)
prtip -F 192.168.1.1
# Service detection
prtip -sV -p 1-1000 scanme.nmap.org
# 带实时 dashboard 的 TUI mode
prtip --tui -sS -p 1-1000 192.168.1.0/24
```
## 功能
### 扫描类型
ProRT-IP 支持用于全面网络侦察的 8 种扫描类型:
```
# TCP Scans
prtip -sS -p 1-1000 target # SYN scan (stealth, requires root)
prtip -sT -p 1-1000 target # Connect scan (no privileges required)
prtip -sF -p 1-1000 target # FIN scan
prtip -sN -p 1-1000 target # NULL scan
prtip -sX -p 1-1000 target # Xmas scan
prtip -sA -p 1-1000 target # ACK scan (firewall detection)
# UDP Scan
prtip -sU -p 53,161,123 target # Protocol-specific payloads
# Idle/Zombie Scan
prtip -sI zombie_ip target -p 80 # Maximum anonymity
```
### 服务检测
187 个内置协议探针,检测准确率高达 85-90%:
```
prtip -sV -p 22,80,443 target # Service detection
prtip -sV --version-intensity 9 target # Aggressive probing
prtip -sV --tls-cert -p 443 target # TLS certificate analysis
```
**特定协议解析器:** HTTP, SSH, SMB, MySQL, PostgreSQL,支持 OS 版本映射。
### 规避技术
高级 IDS/防火墙规避能力:
```
prtip -sS -f -p 1-1000 target # Fragment packets (28-byte)
prtip -sS --mtu 200 target # Custom MTU fragmentation
prtip -sS --ttl 32 target # TTL manipulation
prtip -sS -D RND:5 target # Decoy scanning (5 random)
prtip -sS -g 53 target # Source port spoofing (DNS)
prtip -sS --badsum target # Bad checksum testing
prtip -T0 -p 80 target # Paranoid timing (5min delays)
```
### 终端用户界面 (TUI)
具有 60 FPS 渲染功能的生产级实时仪表板:
```
prtip --tui -sS -p 1-1000 192.168.1.0/24
```
**仪表板功能:**
- **端口表:** 实时端口发现,支持过滤(状态、协议、搜索)
- **服务表:** 实时服务检测,带有置信度指示器
- **指标仪表板:** 吞吐量、ETA、进度百分比、统计数据
- **网络图表:** 60 秒滑动窗口活动可视化
**性能:** 每秒处理 10K+ 事件,帧时间 <5ms,11 个生产级组件。
### 输出格式
```
prtip -p 80 target -oN scan.txt # Normal text
prtip -p 80 target -oX scan.xml # XML (nmap-compatible)
prtip -p 80 target -oG scan.gnmap # Greppable
prtip -p 80 target --output json -o scan.json # JSON
prtip -sS --packet-capture capture.pcapng target # PCAPNG
prtip -sT --with-db results.db target # SQLite database
```
### 插件系统
用于自定义检测和输出的 Lua 5.4 沙盒插件:
```
prtip plugin list # List available plugins
prtip plugin load banner-analyzer # Load specific plugin
prtip -sS --plugin banner-analyzer,ssl-checker target
```
**插件类型:** 检测(banner 分析),输出(自定义格式化),扫描(生命周期 hook)。
## 性能
### 基准测试
| 指标 | 数值 |
|--------|-------|
| **无状态吞吐量** | 10M+ packets/second(理论值) |
| **有状态吞吐量** | 72K+ pps(本地主机验证) |
| **全端口扫描 (65535)** | 0.91s(比基准快 198 倍) |
| **服务检测开销** | <10% |
| **速率限制开销** | -1.8%(比无限制更快) |
| **TUI 渲染** | 60 FPS,帧时间 <5ms |
### 优化功能
- **O(N) 连接追踪:** 比简单实现快 50-1000 倍
- **零拷贝数据包构建:** 热路径性能提升 15%
- **批量 I/O (sendmmsg/recvmmsg):** 在 Linux 上减少 96.87-99.90% 的 syscall
- **NUMA 优化:** 在多插槽系统上提升 20-30%
- **内存映射 I/O:** 大规模扫描时可减少 77-86% 的 RAM 占用
- **自适应并行度:** 根据目标数量支持 20-1000 个并发连接
## Nmap 兼容性
ProRT-IP 支持类 nmap 语法,便于熟悉操作:
```
# Scan 类型
prtip -sS -p 80,443 target # SYN scan
prtip -sT -p 1-1000 target # Connect scan
prtip -sU -p 53,161 target # UDP scan
# Port 规范
prtip -p- target # All 65535 ports
prtip -F target # Top 100 ports
prtip --top-ports 1000 target # Top 1000 ports
# Detection
prtip -sV target # Service detection
prtip -O target # OS fingerprinting
prtip -A target # Aggressive (OS + service)
# Output
prtip -oN scan.txt target # Normal output
prtip -oX scan.xml target # XML output
prtip -oG scan.gnmap target # Greppable output
# Timing
prtip -T0 target # Paranoid
prtip -T4 target # Aggressive (recommended)
```
**完整兼容性矩阵:** [docs/14-NMAP-COMPATIBILITY.md](docs/14-NMAP-COMPATIBILITY.md)
## 系统要求
### 最低要求
- CPU: 2 核 @ 2.0 GHz
- 内存: 2 GB
- 存储空间: 100 MB
- 网络: 100 Mbps
### 推荐配置
- CPU: 8+ 核 @ 3.0 GHz
- 内存: 16 GB
- 存储空间: 1 GB SSD
- 网络: 1 Gbps+
### 支持的平台
| 平台 | 状态 | 备注 |
|----------|--------|-------|
| Linux x86_64 (glibc) | 生产就绪 | NUMA 优化,sendmmsg/recvmmsg |
| Windows x86_64 | 生产就绪 | 需要 Npcap |
| macOS Intel (x86_64) | 生产就绪 | macOS 10.13+ |
| macOS Apple Silicon | 生产就绪 | 原生 M1/M2/M3/M4 二进制文件 |
| FreeBSD x86_64 | 生产就绪 | FreeBSD 12+ |
### 构建要求
- Rust 1.85+(edition 2024 的 MSRV)
- libpcap (Linux/macOS) 或 Npcap (Windows)
- OpenSSL 开发库
- (可选) hwloc,用于 NUMA 优化
## 从源码构建
### Linux
```
# 安装 dependencies
sudo apt install libpcap-dev pkg-config # Debian/Ubuntu
sudo dnf install libpcap-devel # Fedora
sudo pacman -S libpcap pkgconf # Arch
# Clone 并 build
git clone https://github.com/doublegate/ProRT-IP.git
cd ProRT-IP
cargo build --release
# 授予 capabilities(代替 root)
sudo setcap cap_net_raw,cap_net_admin=eip target/release/prtip
```
### Windows
```
# 安装 Npcap SDK
# 从以下地址下载:https://npcap.com/dist/npcap-sdk-1.13.zip
# 设置 environment:$env:LIB = "C:\path\to\npcap-sdk\Lib\x64;$env:LIB"
cargo build --release
```
### macOS
```
brew install libpcap pkgconf
git clone https://github.com/doublegate/ProRT-IP.git
cd ProRT-IP
cargo build --release
```
**详细说明:** [docs/03-DEV-SETUP.md](docs/03-DEV-SETUP.md)
## 文档
### 用户指南
- [用户指南](docs/32-USER-GUIDE.md) - 全面的使用文档(2,448 行)
- [示例库](docs/34-EXAMPLES-GALLERY.md) - 65 个实际扫描场景
- [插件系统指南](docs/30-PLUGIN-SYSTEM-GUIDE.md) - 插件开发(784 行)
### 技术参考
- [架构](docs/00-ARCHITECTURE.md) - 系统设计和模块关系
- [IPv6 指南](docs/23-IPv6-GUIDE.md) - 完整的 IPv6 实现细节
- [服务检测](docs/24-SERVICE-DETECTION-GUIDE.md) - 检测引擎内部原理
- [速率限制](docs/26-RATE-LIMITING-GUIDE.md) - 自适应速率控制
- [TUI 架构](docs/TUI-ARCHITECTURE.md) - 事件驱动的 TUI 设计(891 行)
### 开发
- [路线图](docs/01-ROADMAP.md) - 开发阶段和 sprint 计划
- [项目状态](docs/10-PROJECT-STATUS.md) - 当前进度和指标
- [基准测试指南](docs/31-BENCHMARKING-GUIDE.md) - 性能测试(1,044 行)
### mdBook 文档
ProRT-IP 包含使用 mdBook 构建的可搜索文档:
```
cd docs/
mdbook serve --open # Opens browser at http://localhost:3000
```
## 开发路线图
### 当前状态
**版本:** v1.0.0 | **阶段 7:** 完成 | **状态:** 生产发布
| 阶段 | 状态 | 关键交付物 |
|-------|--------|------------------|
| 阶段 1-3 | 完成 | 核心基础设施、扫描、检测 |
| 阶段 4 | 完成 | 零拷贝、NUMA、性能优化 |
| 阶段 5 | 完成 | IPv6、服务检测、空闲扫描、速率限制、插件 |
| **阶段 6** | **完成** | **TUI 仪表板、网络优化、缓冲池** |
| **阶段 7** | **完成** | **文档、打包、安全审计、v1.0.0 发布** |
| 阶段 8 | 未来 | Web UI、桌面 GUI、分布式扫描 |
### 未来增强
- **Web 界面:** 带有 React/Vue 前端的 RESTful API
- **桌面 GUI:** 原生应用程序(Tauri/iced/egui)
- **分布式扫描:** 用于互联网级操作的协调器/工作者架构
**完整路线图:** [docs/01-ROADMAP.md](docs/01-ROADMAP.md)
## 质量保证
| 指标 | 数值 |
|--------|-------|
| **测试** | 2,557 个通过(100% 成功率) |
| **覆盖率** | 51.40% |
| **模糊测试** | 2.3 亿次以上执行,0 崩溃(5 个目标) |
| **CI/CD** | 9/9 工作流通过 |
| **平台** | Linux, Windows, macOS (Intel + ARM64), FreeBSD |
### 贡献方式
- **报告 Bug:** [Bug 报告](https://github.com/doublegate/ProRT-IP/issues/new?template=bug_report.yml)
- **功能建议:** [功能请求](https://github.com/doublegate/ProRT-IP/issues/new?template=feature_request.yml)
- **编写代码:** 查看[适合新手的 issue](https://github.com/doublegate/ProRT-IP/labels/good-first-issue)
- **改进文档:** 始终欢迎文档贡献
### 开发标准
- 提交前运行 `cargo fmt` 和 `cargo clippy -- -D warnings`
- 所有 PR 必须包含测试(新代码覆盖率 >80%)
- 遵循 [约定式提交](https://www.conventionalcommits.org/)格式
## 安全与法律
### 安全策略
通过 [GitHub 安全公告](https://github.com/doublegate/ProRT-IP/security/advisories)报告漏洞。
有关完整策略,请参阅 [SECURITY.md](SECURITY.md)。
### 负责任的使用
**重要提示:** 仅扫描您拥有或获得明确书面测试授权的网络。
- 未经授权的扫描可能违反法律(CFAA, CMA 等)
- 测试前务必获得授权
- 仅用于合法的安全研究
## 许可证
本项目基于 **GNU General Public License v3.0** 授权 - 详情请参阅 [LICENSE](LICENSE)。
GPLv3 允许您使用、学习、修改和分发本软件,前提是衍生作品也必须基于 GPLv3 授权。
## 致谢
ProRT-IP 建立在以下开创性工作的基础之上:
- **[Nmap](https://nmap.org/)** - Gordon "Fyodor" Lyon
- **[Masscan](https://github.com/robertdavidgraham/masscan)** - Robert Graham
- **[RustScan](https://github.com/RustScan/RustScan)** - RustScan 社区
- **[ZMap](https://zmap.io/)** - 密歇根大学
完整贡献者名单请参阅 [AUTHORS.md](AUTHORS.md)。
## 链接
- **GitHub:**
- **Issues:**
- **讨论区:**
- **安全:**
- **更新日志:** [CHANGELOG.md](CHANGELOG.md)
**当前版本:** v1.0.0 | **最后更新:** 2025-01-25
标签:Linux安全, Rust, Scrypt密钥派生, 云存储安全, 可视化界面, 安全测试工具, 密码管理, 插件系统, 数据统计, 服务指纹识别, 端口扫描, 网络安全, 网络扫描, 网络流量审计, 请求拦截, 通知系统, 隐私保护