Nmap Web 在线端口扫描平台部署方法(效率不是太高)

一、📖项目概览

✅ 项目简介
  • Nmap Web 是基于 Flask + WebSocket + Docker 的图形化端口扫描平台
  • 支持多种扫描类型(SYN、TCP、UDP、操作系统识别等)
  • 通过 WebSocket 实现扫描过程实时推送
  • 项目地址:https://github.com/SMNETSTUDIO/NMAP-Web
✅ 功能特性
  • 图形化 Web UI
  • 全端口扫描(1~65535)
  • 多线程并发扫描(最多16线程)
  • 实时进度展示(WebSocket)
  • 多种扫描模式(快/中/慢)
  • 支持 CIDR、网段、IP 范围
  • 完整容器化部署
✅ 技术栈
  • 后端:Flask, Flask-SocketIO, Gunicorn, Gevent
  • 前端:HTML5, CSS3, JavaScript
  • 容器化:Docker, Docker Compose

二、🛠️ 安装与部署

🔧 系统要求(推荐配置)
项目 最低要求 推荐配置
CPU 2 核心 8 核心及以上(详见注意事项)
内存 2GB 4GB 或更多
存储 1GB >1GB 可用空间
⚠️ 注意事项:
小于 8 核 / 4GB 的主机可能因资源不足而启动失败。

如为体验用途,可修改 Docker Compose 文件适当降低配置(同时性能会下降)。
默认 docker-compose.yml 文件中配置为:
cpus: '8'
memory: 4G
如主机资源不足 8 核心 / 4GB 内存,容器可能启动失败。需要手动降低该值以便运行,但性能和稳定性将显著下降,仅建议用于学习和体验用途。
📦 安装步骤
1. 安装 Docker & Docker Compose
# Ubuntu 示例
sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl enable docker --now
2. 下载项目代码
git clone https://github.com/SMNETSTUDIO/NMAP-Web.git
cd NMAP-Web
3. 启动容器服务
docker-compose up -d
4. 访问平台界面
http://localhost:5000
# 如部署在云主机,请替换为公网IP或域名。
扫描结果
⚙️ 可配置环境变量(可选)
变量名 默认值 描述
GUNICORN_WORKERS 2 Gunicorn 进程数
GUNICORN_THREADS 4 每进程线程数

三、⚠️ 注意事项 与高级功能

🚀 多线程扫描说明
模式 线程数 场景推荐
低负载 1 低性能主机
平衡 4 默认设置,推荐使用
快速 8 ≥4核CPU
极速 16 ≥8核CPU,高速大网

性能优化原理:
  • 自动分割目标 IP/端口区段
  • 启动多个 Nmap 实例并发执行
  • 多线程 + 多进程并行处理扫描任务

🧯 常见问题与处理
  • 容器无法启动?
    • 检查 docker-compose.ymlcpus: '8'memory: 4G 是否超出主机资源
    • 可临时降为 cpus: '2' memory: 2G 测试使用
  • 端口被占用?
    • 修改 ports 中的映射端口,如将 5000:5000 改为 8888:5000
  • 无法访问 Web 页面?
    • 云服务器需开放 5000 端口
    • 本地防火墙需允许 Docker 通信