manches3003/netprobe-port-scanner
GitHub: manches3003/netprobe-port-scanner
基于 nmap 的全栈端口扫描器,提供 Web 界面、风险评分和 PDF 报告导出功能。
Stars: 0 | Forks: 0
# 🛡️ NetProbe — 端口扫描器
一个全栈网络安全工具,用于扫描任意目标主机的开放端口,评估风险等级,并生成可下载的 PDF 安全报告。
🔗 **在线演示:** [netprobe-port-scanner.netlify.app](https://netprobe-port-scanner.netlify.app)
⚙️ **后端 API:** [manches3003-netprobe-backend.hf.space](https://manches3003-netprobe-backend.hf.space)
## 📸 预览
## ✨ 功能特性
- 🔍 **端口扫描** — 扫描任意目标 IP 或域名的常用或全端口范围
- ⚠️ **风险评估** — 每个开放端口均附带风险等级和原因评级
- 📊 **风险评分** — 每次扫描计算的整体安全评分 (0–100)
- 📄 **PDF 导出** — 下载包含发现和建议的完整安全报告
- 🌐 **REST API** — 简洁的 FastAPI 后端,提供 `/scan` 和 `/export-pdf` 端点
## 🧰 技术栈
### 前端
| 技术 | 用途 |
|---|---|
| React + Vite | UI 框架 |
| Netlify | 托管与部署 |
### 后端
| 技术 | 用途 |
|---|---|
| FastAPI | REST API 框架 |
| Python-nmap | 端口扫描引擎 |
| ReportLab | PDF 生成 |
| Docker | 容器化 |
| Hugging Face Spaces | 后端托管 |
## 🚀 快速开始
### 前置条件
- Node.js 18+
- Python 3.10+
- 系统中已安装 nmap
- Docker (用于后端部署)
### 1. 克隆仓库
```
git clone https://github.com/manches3003/netprobe-port-scanner.git
cd netprobe-port-scanner
```
### 2. 运行前端
```
cd frontend
npm install
npm run dev
```
前端运行于 `http://localhost:5173`
### 3. 运行后端
```
cd backend
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
```
后端运行于 `http://localhost:8000`
### 4. 连接前端与后端
在前端代码中设置 API URL:
```
const API_URL = "http://localhost:8000"; // local
// or
const API_URL = "https://manches3003-netprobe-backend.hf.space"; // production
```
## 📡 API 端点
### GET /health
返回后端状态。
```
{ "status": "ok" }
```
### POST /scan
扫描目标主机的开放端口。
**请求:**
```
{
"target": "example.com",
"scan_type": "common"
}
```
**响应:**
```
{
"target": "example.com",
"ip": "93.184.216.34",
"open_ports": [...],
"risk_score": 42,
"risk_rating": "Medium",
"recommendations": [...],
"scan_duration": 3.2,
"timestamp": "2025-03-17T10:00:00"
}
```
`scan_type` 选项:`common` (常用端口) 或 `full` (全部 65535 个端口)
### POST /export-pdf
生成并返回 PDF 安全报告。
**请求:** 将完整的扫描结果对象作为请求体传递。
**响应:** PDF 文件下载。
## 🐳 使用 Docker 部署后端
```
cd backend
docker build -t netprobe-backend .
docker run -p 7860:7860 netprobe-backend
```
## 📁 项目结构
```
netprobe-port-scanner/
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ └── App.jsx
│ ├── package.json
│ └── vite.config.js
│
├── backend/
│ ├── main.py # FastAPI app & routes
│ ├── scanner.py # Port scanning logic
│ ├── requirements.txt
│ └── Dockerfile
│
└── README.md
```
## ⚠️ 免责声明
NetProbe 仅供**教育目的及经授权的安全测试使用**。
切勿在未获得所有者**明确许可**的情况下扫描系统或网络。
未经授权的端口扫描在您所在的司法管辖区可能属于违法行为。
## 👨💻 作者
**Keshav Kansara**
网络安全硕士 — 莱比锡 SRH 大学
📧 keshavkansara123@gmail.com
🔗 [GitHub](https://github.com/manches3003)
## 📄 许可证
本项目为开源项目,基于 [MIT License](LICENSE) 发布。
标签:AV绕过, DNS查询工具, Docker, FastAPI, Hugging Face Spaces, Netlify, NetProbe, Nmap, PDF报告生成, Python, React, Syscalls, 全栈应用, 后端API, 安全评分, 安全防御评估, 开源安全工具, 插件系统, 数据泄露防护, 无后门, 端口扫描器, 网络安全, 网络探测, 网络测绘, 虚拟驱动器, 请求拦截, 逆向工程平台, 隐私保护