Linux Ubuntu系统使用Docker搭建vulhub靶场环境

vulhub靶场,是开源的漏洞Docker环境,安装简单,使用方便。

一、安装Docker

使用便捷脚本安装Docker:

bash 复制代码
curl -fsSL https://get.docker.com | sh

https://vulhub.org您遇到的 curl: (35) OpenSSL SSL_connect: 连接被对方重设 错误,通常表示网络连接在 SSL 握手阶段被中断。

可以使用国内镜像源安装(推荐)

由于 Docker 官方源在部分地区连接不稳定,建议使用阿里云或清华大学镜像:

方法:使用阿里云安装脚本

bash 复制代码
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

📥 下载与使用 Vulhub

有了基础环境,就可以下载 Vulhub 并进行测试了。

1.克隆 Vulhub 仓库:建议使用国内的镜像源(Gitee)来下载,速度会快很多(需要注册Gitee账号)。

bash 复制代码
# 在家目录下克隆一个 vulhub 文件夹
cd ~
git clone https://gitee.com/puier/vulhub.git

2.启动一个靶场:下载完成后,我们进入一个具体的漏洞目录(比如 ThinkPHP 5 的 RCE 漏洞)并启动它。

bash 复制代码
cd ~/vulhub/tomcat/CVE-2017-12615
# 启动环境(-d 表示后台运行)
sudo docker compose up -d

如果拉去镜像失败,这个报错是因为网络问题导致从 Docker Hub (docker.io) 拉取镜像超时。这不代表 vulhub/tomcat 镜像本身有问题,而是你访问国外官方仓库的网络不通畅

解决办法不是更换镜像名,而是更换镜像源------给 Docker 配置一个国内的加速器地址。

✅ 解决方案:配置国内镜像加速器

你可以通过修改 Docker 的配置文件 daemon.json,加入稳定的国内镜像源地址来解决。

1). 编辑配置文件

在终端中执行以下命令打开配置文件(如果文件不存在,这个命令会新建它):

bash 复制代码
sudo vim /etc/docker/daemon.json

2). 添加镜像源地址

i 进入编辑模式,将下面镜像源地址复制进去。

  • 推荐方案:使用多个备选地址,提高稳定性

    json 复制代码
    {
    "registry-mirrors": [
      "https://docker.1panel.live",
      "https://docker.m.daocloud.io",
      "https://dockerproxy.cn"
    ]
    }

3). 保存并退出

Esc 键,然后输入 :wq 并回车保存。

4). 重启 Docker 服务

让刚才的配置修改生效:

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

5). 重新拉取镜像

现在再次尝试拉取 vulhub/tomcat 镜像,速度应该就正常了:

bash 复制代码
sudo docker compose up -d

3.关闭靶场 :用完某个漏洞环境后,回到对应的目录下执行 down 命令即可一键关闭,非常干净。

bash 复制代码
sudo docker compose down -v

相关推荐
吴声子夜歌11 小时前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell
mengge.cloud11 小时前
0917Docker 小白实验教程(理论+实操)
linux·服务器·网络·docker
Escalating_xu11 小时前
【内存管理发展史】从 8086 实模式到分页:CPU 如何把虚拟地址变成物理地址
linux·缓存
亿朝亿夕12 小时前
linux服务排查步骤
linux
酸菜。12 小时前
dw_apb_uart总结
linux
倔强的石头10612 小时前
【Linux指南】动静态库系列(八):ELF 加载与进程地址空间:程序还没运行,为什么已经有地址
linux·运维
wdfk_prog12 小时前
用 Git Submodule + Sparse Checkout 管理 RT-Thread:内核、BSP、第三方库与业务代码分层实践
运维·缓存·docker·容器·ros
努力努力再努力wz12 小时前
【Docker入门系列】镜像为什么能复用?一文吃透 Docker Image、Registry、运行时架构与常用命令
缓存·docker·容器
第十人i12 小时前
Linux 一键重装系统脚本:reinstall 工具详解
linux·服务器
jinyishu_13 小时前
Linux基础指令:从Shell原理到权限
linux