基于 nmap 的 Web 端口扫描平台,支持模板管理、扫描对比、服务分布、AI 助手
| 仪表盘 | 服务分布 |
|---|---|
![]() | ![]() |
最通用的方式,适合所有 Linux 环境。
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,如宿主机无 nmap 或
/usr/bin/nmap为目录,可省略-v /usr/bin/nmap挂载。
访问 http://YOUR_IP:8090,默认管理员:admin / admin123
容器直接使用宿主机网络栈,性能最佳。
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,如宿主机无 nmap 或
/usr/bin/nmap为目录,可省略-v /usr/bin/nmap挂载。
访问 http://YOUR_IP:8090
# 下载 docker-compose.yml
wget https://gitee.com/cncsrf/nmap-scanner-web/raw/main/docker-compose.yml
# 生成密钥并启动
export JWT_SECRET=$(openssl rand -hex 32)
docker compose up -d
| 特性 | 端口映射(-p) | Host 网络 |
|---|---|---|
| 通用性 | ✅ 所有 Linux | ⚠️ 仅 Linux |
| 性能 | ⚠️ 有 docker-proxy 开销 | ✅ 无额外开销 |
| 端口隔离 | ✅ 容器端口独立 | ❌ 共享宿主机端口 |
| FRONTEND_URL | http://IP:8090 | http://127.0.0.1:8090 |
| 适合场景 | 生产环境、多容器 | 单容器、高性能需求 |
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
JWT_SECRET | ✅ | — | JWT 签名密钥 |
FRONTEND_URL | ✅ | — | 前端访问地址(含协议和端口) |
NMAP_PATH | ❌ | /usr/bin/nmap | nmap 可执行文件路径 |
JWT_EXPIRE_HOURS | ❌ | 72 | JWT 过期时间(小时) |
容器内 /app/data 存放 SQLite 数据库,/app/logs 存放日志。建议挂载 volume:
-v scanner_data:/app/data \
-v scanner_logs:/app/logs \
扫描功能需要 NET_RAW 和 NET_ADMIN 能力(用于 SYN 扫描等)。使用 --cap-add 授予,不要使用 --privileged。
adminadmin123docker pull ad80a1/nmap-scanner:latest
docker stop nmap-scanner && docker rm nmap-scanner
# 重新运行上述 docker run 命令
Q: docker-proxy 模式下端口不通?
# 检查 docker0 网桥
ip addr show docker0 # 应有 inet 172.17.0.1/16
ip route show | grep docker # 应有 172.17.0.0/16 dev docker0
# 如缺失,修复后重启 Docker
ip addr add 172.17.0.1/16 dev docker0
ip route add 172.17.0.0/16 dev docker0
systemctl restart docker
Q: 扫描报 Permission denied?
确保使用了 --cap-add NET_RAW --cap-add NET_ADMIN 或 --privileged。
MIT License
Content type
Image
Digest
sha256:8572225a7…
Size
64.3 MB
Last updated
about 2 months ago
docker pull ad80a1/nmap-scanner