# Nmap-Web在线扫描系统 **Repository Path**: cncsrf/nmap-scanner-web ## Basic Information - **Project Name**: Nmap-Web在线扫描系统 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-28 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nmap Scanner — 在线扫描系统 > 🔍 基于 nmap 的 Web 端口扫描平台,支持模板管理、扫描对比、服务分布、AI 助手 [![Python](https://img.shields.io/badge/Python-3.10+-blue)](https://python.org) [![FastAPI](https://img.shields.io/badge/FastAPI-0.100+-green)](https://fastapi.tiangolo.com) [![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE) ## 截图 ### 仪表盘 ![仪表盘](仪表盘.jpg) ### 服务分布 ![服务分布](服务分布.jpg) ## 功能特性 | 功能 | 说明 | |------|------| | **仪表盘** | 扫描统计、服务分布 Top8、趋势图、系统信息、快捷入口 | | **新建扫描** | 15 个预置模板 + 8 个扫描选项 + 高级参数 + 命令实时预览 | | **扫描结果** | 主机列表、端口详情、端口分布饼图、对比历史 | | **扫描对比** | 同目标 diff:新增/消失/端口变更 | | **服务分布** | 按服务聚合主机数、饼图/柱状图、排序、查看主机 | | **AI 助手** | 浮动聊天面板,关联扫描数据自然语言分析 | | **通知推送** | 企业微信 / 飞书 Webhook,扫描完成自动推送 | | **认证鉴权** | JWT 登录、admin/viewer 角色 | | **系统设置** | nmap 配置、运行诊断、操作日志、备份恢复 | | **计划任务** | 定时/周期扫描,支持每天/每周/每月/每N天 | ## 快速开始 ### 方式一:一键安装脚本 ```bash git clone https://gitee.com/cncsrf/nmap-scanner-web.git cd nmap-scanner-web sudo bash install.sh ``` 脚本会自动: - 安装 Python3、nmap - 创建虚拟环境并安装依赖 - 生成 JWT Secret - 创建管理员账号 - 启动 systemd 服务 安装完成后访问 `http://<服务器IP>:8090` ### 方式二:Docker 部署 支持两种网络模式: #### 端口映射模式(推荐) ```bash docker run -d \ --name nmap-scanner \ --restart unless-stopped \ -p 8090:8090 \ -e JWT_SECRET=$(openssl rand -hex 32) \ -e FRONTEND_URL=http://YOUR_IP:8090 \ -v /usr/bin/nmap:/usr/bin/nmap:ro \ -v scanner_data:/app/data \ -v scanner_logs:/app/logs \ --cap-add NET_RAW \ --cap-add NET_ADMIN \ ad80a1/nmap-scanner:latest ``` > 容器内已预装 nmap,如宿主机 `/usr/bin/nmap` 不存在或为目录,可省略 `-v /usr/bin/nmap` 挂载。 #### Host 网络模式 ```bash docker run -d \ --name nmap-scanner \ --restart unless-stopped \ --network host \ -e JWT_SECRET=$(openssl rand -hex 32) \ -e FRONTEND_URL=http://127.0.0.1:8090 \ -v /usr/bin/nmap:/usr/bin/nmap:ro \ -v scanner_data:/app/data \ -v scanner_logs:/app/logs \ --cap-add NET_RAW \ --cap-add NET_ADMIN \ ad80a1/nmap-scanner:latest ``` > 容器内已预装 nmap,如宿主机 `/usr/bin/nmap` 不存在或为目录,可省略 `-v /usr/bin/nmap` 挂载。 > **端口映射 vs Host**: 端口映射通用性强,适合生产环境;Host 模式无 docker-proxy 开销,性能最佳。详见 [docs/docker-deploy.md](docs/docker-deploy.md) 访问 `http://<服务器IP>:8090`,默认管理员:`admin / admin123` ### 方式三:手动部署 ```bash # 安装依赖 sudo apt install python3 python3-pip python3-venv nmap # 克隆项目 git clone https://gitee.com/cncsrf/nmap-scanner-web.git cd nmap-scanner-web # 创建虚拟环境 python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 启动(API + 前端统一在 8090 端口) python3 main.py ``` ## 配置说明 ### 环境变量 在项目根目录创建 `.env` 文件: ```bash # JWT 密钥(必填,建议随机生成) JWT_SECRET=你的随机密钥 # nmap 路径(可选,默认 /usr/bin/nmap) NMAP_PATH=/usr/bin/nmap # 前端地址(通知链接用) FRONTEND_URL=http://你的IP:8090 # JWT 过期时间(可选,默认 72 小时) JWT_EXPIRE_HOURS=72 ``` ### 角色权限 | 角色 | 权限 | |------|------| | **admin** | 全部操作 + 用户管理 + 模板管理 + 设置 + 备份 | | **viewer** | 创建扫描 + 查看结果 + 使用模板 + AI 助手 | ### 密码重置 ```bash # 重置为默认密码 admin123 python3 scripts/reset_password.py --user admin # 重置为自定义密码 python3 scripts/reset_password.py -u admin -p your_password ``` ## 项目结构 ``` nmap-scanner/ ├── main.py # FastAPI 入口 ├── config.py # 全局配置 ├── database.py # SQLite 初始化 ├── api/ # API 路由 │ ├── auth.py # 认证鉴权 │ ├── scans.py # 扫描任务 │ ├── templates.py # 扫描模板 │ ├── settings.py # 系统设置 │ ├── dashboard.py # 仪表盘 │ ├── backup.py # 备份恢复 │ ├── notify.py # 通知渠道 │ ├── ai.py # AI 助手 │ ├── scheduled.py # 计划任务 │ └── deps.py # 共享鉴权工具 ├── engine/ │ └── executor.py # Nmap 执行引擎 ├── frontend/ # 前端静态文件 │ ├── index.html │ ├── main.js │ ├── pages.js │ ├── style.css │ ├── style-ai.css │ └── pages/ # 9 个页面模块 ├── data/ # 数据库目录 ├── scripts/ │ ├── reset_password.py │ └── docker-deploy.sh # Docker 一键部署 ├── docs/ │ ├── development.md # 开发文档 │ ├── docker-deploy.md # Docker 部署对比 │ └── docker-hub-readme.md ├── install.sh # 一键安装脚本 ├── Dockerfile ├── docker-compose.yml └── requirements.txt ``` ## 技术栈 - **后端**: FastAPI + SQLite + BackgroundTasks - **前端**: 原生 JS + Bootstrap 5 + Chart.js - **引擎**: nmap (grepable 输出流式解析) - **部署**: systemd / Docker ## API 接口 详见 [docs/development.md](docs/development.md) ## 许可证 MIT License