Docker 环境下 Vulfocus 靶场搭建全流程(附镜像源问题解决方案)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


一、靶场简介

Vulfocus 是一款开源、轻量化、高可用性的漏洞集成靶场平台,由 FOFA 团队开发。靶场集成了 Web 漏洞、系统漏洞、中间件漏洞、代码审计等海量常见漏洞环境,支持一键启动、一键销毁、独立隔离,完美适配网络安全入门练习、渗透测试实训、漏洞复现学习,是网安从业者、安全学生必备的实战靶场。

相较于传统靶场,Vulfocus 最大优势是基于 Docker 容器化部署,环境隔离干净、部署简单、不污染宿主机系统,且支持自定义漏洞环境、批量管理靶机,新手也能快速上手。

二、部署环境要求

为保证靶场稳定运行,避免启动失败、卡顿、镜像拉取超时等问题,需满足以下基础环境:

  • 操作系统:64位 Linux 系统(推荐 Ubuntu 20.04/22.04、Debian、CentOS7+)

  • 核心依赖:Docker 20.10及以上版本

  • 硬件配置:内存≥2G,磁盘≥20G(多开漏洞环境建议4G+内存)

  • 网络要求:服务器可正常联网,开放对应端口(80端口为主)

三、前置准备:解决Docker镜像拉取超时(核心避坑)

绝大多数用户搭建失败的原因:官方 Docker 源境外访问超时、国内老旧镜像源失效,导致 registry-1.docker.io 连接超时、镜像拉取失败。下面提供一键修复方案,配置国内稳定加速源。

1. 编辑Docker镜像加速配置文件

执行以下命令一键写入稳定可用的国内加速源(剔除所有失效源,只保留高可用毫秒镜像源):

bash 复制代码
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://docker.1ms.run"]
}
EOF

2. 重启Docker生效配置

bash 复制代码
systemctl daemon-reload
systemctl restart docker

3. 验证加速配置是否生效

bash 复制代码
docker info

输出内容中看到 Registry Mirrors: https://docker.1ms.run 即代表配置成功,后续拉取镜像不再超时。

四、Vulfocus靶场完整搭建步骤

1. 拉取Vulfocus最新镜像

配置完加速源后,执行拉取命令,下载官方最新版靶场镜像:

bash 复制代码
docker pull docker.1ms.run/vulfocus/vulfocus:latest

等待镜像下载完成(加速后下载速度大幅提升,无超时卡顿)。

具体结果如下:

2. 启动Vulfocus容器

执行以下标准启动命令,端口映射80端口,挂载Docker内核,保证漏洞环境正常创建与销毁:

bash 复制代码
docker run -d \
--name vulfocus \
-p 1081:80 \
-v /var/run/docker.sock:/var/run/docker.sock \
-e VUL_IP=xxx.xxx.xxx.xxx \
-e "CELERY_RUN=1" \
--restart always \
vulfocus/vulfocus:latest

参数说明:

  • -d:后台守护进程运行容器

  • --name vulfocus:自定义容器名称,方便后续管理

  • -p 80:80:映射宿主机1081端口到容器80端口,网页直接访问

  • -v /var/run/docker.sock:挂载Docker内核,让靶场可管理子漏洞容器

  • -e "CELERY_RUN=1":开启自动同步镜像任务,如果不设置,Vulfocus 永远不会去拉取漏洞列表

  • --restart always:开机自启、容器意外退出自动重启

结果如下:

3. 查看容器运行状态

执行命令查看容器是否正常启动:

bash 复制代码
docker ps

若看到 vulfocus 容器状态为 Up,说明部署成功。

(这里我开了另外一个服务,所有存在两个端口;)

五、访问Vulfocus靶场

1. 访问地址

浏览器输入服务器 公网IP/内网IP 即可进入靶场首页:

http://你的服务器IP

2. 初始账号密码

  • 默认账号:admin

  • 默认密码:admin

首次登录后,建议立即修改默认密码,提升靶场安全性。

进入系统后,得到如下页面:

3. 自动拉取镜像

界面里显示 Total 0,说明漏洞镜像还没同步 / 拉取到本地,这是 Vulfocus 刚启动时的正常状态,解决方法:

  1. 点左侧菜单里的 「镜像管理」(在场景管理上面那个)
  2. 进入后,点击右上角的 「同步镜像」 或 「更新镜像」(不同版本按钮文字略有差异)
  3. 等待同步完成(第一次同步可能要几分钟,看服务器网速)
  4. 同步完再回到「首页」,就能看到所有漏洞列表了

4. 手动拉取镜像/font>

如果自动拉取为空,那么我们也可以手动拉取:需要从 https://hub.docker.com/ 网站拉取镜像,或自己以tar包的形式上传。

(1)、在镜像管理中,添加功能

(2)、分别填入漏洞名称、镜像、rank、描述

  • 镜像又分为文件和文本
  • 文本:是从 https://hub.docker.com/u/vulfocus 官网拉取镜像。内容为如: vulfocus/webmin-cve_2019_15107
    • 文件:本地漏洞镜像打成tar包的形式上传。

下载完成后点击启动即可。

(3)镜像启动后,会在环境里写入一个 flag (默认 flag 会写入 /tmp/ 下),读取到 flag 后填入 flag 窗口,镜像会自动关闭,如需重新启动,需强刷一下,然后再次点击启动即可。


5. 基础使用测试

  1. 登录后台后,可在漏洞列表中选择任意漏洞环境;

  2. 点击「启动环境」,等待10-30秒即可生成独立漏洞靶机;

  1. 渗透测试完成后,点击「销毁环境」,释放服务器资源,避免占用内存磁盘。

六、常用运维命令(必备)

日常靶场管理可直接复制使用以下命令:

bash 复制代码
# 停止靶场容器
docker stop vulfocus

# 启动靶场容器
docker start vulfocus

# 重启靶场容器
docker restart vulfocus

# 查看靶场日志(排查报错)
docker logs vulfocus

# 删除靶场容器(重置环境)
docker rm -f $(docker ps -aq --filter ancestor=vulfocus/vulfocus)

七、常见报错与解决方案

问题1:镜像拉取超时,提示 Client.Timeout exceeded

原因:默认Docker官方源无法访问,国内老旧镜像源失效、冲突

解决 :执行本文第三章的镜像加速配置,仅保留 https://docker.1ms.run 稳定源,重启Docker后重新拉取。

问题2:浏览器无法访问靶场页面

解决

  1. 检查容器是否正常运行:docker ps

  2. 检查服务器防火墙,放行80端口;

  3. 云服务器需在控制台安全组放行80端口入站规则。

问题3:漏洞环境启动失败

解决 :确认 /var/run/docker.sock 挂载成功,重启Docker和靶场容器即可修复。

八、搭建总结

Vulfocus 靶场部署的核心难点并非操作复杂,而是Docker镜像源超时问题。通过配置国内高可用加速源,可彻底解决99%的搭建失败问题。

整体流程:环境准备→修复镜像加速→拉取镜像→启动容器→访问使用。部署完成后,可随时随地进行漏洞复现、渗透测试练习,非常适合网安入门学习与日常技术实训。

相关推荐
Flynt4 天前
npm v12 来了:allowScripts 默认关闭,我的项目差点跑不起来
安全·npm·node.js
乘云数字DATABUFF5 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy6 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭6 天前
运行你的第一个Docker容器
后端·docker·容器
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森7 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
宋均浩7 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
Avan_菜菜7 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程