开源 Nmap Web 在线扫描工具

前言
  日常内网资产巡检、端口漏洞排查时,频繁敲 nmap 命令效率很低,而且扫描结果不方便留存对比。基于 FastAPI 原生开发一套 Web 版 nmap 扫描平台,纯前后端一体化部署,无需 Nginx、无前端打包依赖,支持定时扫描、扫描结果对比、AI 分析、企业微信 / 飞书推送,开源地址:https://gitee.com/cncsrf/nmap-scanner-web
一、核心功能速览
  1. 可视化扫描:15 套内置扫描模板,支持自定义参数、实时命令预览
  2. 结果管理:实时进度展示、端口饼图、多轮扫描差异对比(新增 / 关闭端口)
  3. 资产统计:仪表盘总览、服务分布 TOP 图表,快速识别高危服务
  4. 计划任务:支持每天 / 每周 / 每月 / 间隔周期自动扫描
  5. 通知推送:扫描完成自动推送报告至企业微信、飞书机器人
  6. AI 助手:绑定扫描数据自然语言分析端口风险
  7. 权限管控:JWT 登录,区分 admin 管理员、viewer 只读角色
  8. 运维能力:一键备份恢复、系统诊断、密码重置、操作日志留存
二、部署方式(3 种,任选其一)

1、方式一:一键安装脚本(Ubuntu/Debian 推荐)

全自动安装 Python、nmap、依赖、生成密钥、注册 systemd 自启
git clone https://gitee.com/cncsrf/nmap-scanner-web.git
cd nmap-scanner-web
sudo bash install.sh
部署完成访问:http:// 服务器 IP:8090
默认账号:admin /admin123,首次登录务必修改密码
2、方式二:Docker 部署(跨系统通用)
1)端口映射模式(生产推荐,隔离网络)
docker run -d --name nmap-scanner --restart unless-stopped \
-p 8090:8090 \
-e JWT_SECRET=$(openssl rand -hex 32) \
-e FRONTEND_URL=http://你的服务器IP:8090 \
-v scanner_data:/app/data \
-v scanner_logs:/app/logs \
--cap-add NET_RAW --cap-add NET_ADMIN \
ad80a1/nmap-scanner:latest
2)Host 主机网络模式(内网扫描性能最优)
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 scanner_data:/app/data \
-v scanner_logs:/app/logs \
--cap-add NET_RAW --cap-add ad80a1/nmap-scanner:latest
3、方式三:手动源码部署(开发调试)
# 安装系统依赖
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
# 临时启动
python3 -m uvicorn main:app --host 0.0.0.0 --port 8090
三、使用方法
1、基础使用流程
  1. 浏览器访问 8090 端口,使用默认账号登录并修改密码
  2. 新建扫描页面:填写网段 / IP,选择扫描模板(快速扫描 / 全端口 / 漏洞扫描等)
  3. 支持配置定时任务,保存后自动周期执行
  4. 扫描运行中实时刷新主机、端口进度,结束生成可视化报告
  5. 历史记录可对比两次扫描差异,快速发现端口变更风险
  6. 仪表盘查看全网资产、开放服务统计,定位高危端口
2、权限说明
  • admin:完整权限,新建模板、修改系统配置、备份、管理用户
  • viewer:仅允许发起扫描、查看结果、使用 AI 分析,无系统修改权限
3、常用运维命令
1)重置登录密码
# 重置为默认admin123
python3 scripts/reset_password.py --user admin
# 自定义新密码
python3 scripts/reset_password.py -u admin -p 新密码
2)查看运行日志
journalctl -u nmap-scanner -f
3)系统诊断页面
Web 后台「系统设置 – 运行诊断」一键检测 nmap 权限、磁盘、端口、数据库状态
 
4)技术架构极简说明
后端:Python FastAPI + SQLite 本地存储,异步后台执行 nmap 进程
前端:原生 JS+Bootstrap,无 Vue/React 打包,FastAPI 直接托管静态页面
底层:调用系统 nmap,流式实时解析扫描输出,无需第三方封装库
 
5)进阶与开发文档
完整 API 接口、数据库表结构、踩坑排错、二次开发指南,部署后访问内置文档:
http:// 服务器 IP:8090/dev-docs 
源码仓库完整 README 包含参数、compose 配置、容器部署细节,可直接查阅:https://gitee.com/cncsrf/nmap-scanner-web
 
6)开源协议
MIT 协议,可自由商用、二次修改,禁止闭源打包分发售卖