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

相关推荐
戴为沐16 小时前
Linux内存扩容指南
linux
zylyehuo1 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Patrick_Wilson2 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy3 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭3 天前
运行你的第一个Docker容器
后端·docker·容器
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
宋均浩4 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker