CTFd 个人练习小型靶场搭建笔记

📅 2026/6/20 6:57:51
CTFd 个人练习小型靶场搭建笔记
CTFd 靶场搭建笔记本文档记录了从零开始在 Ubuntu 服务器上部署 CTFd 的完整流程包含 Docker 安装、镜像加速、Dockerfile 换源等常见坑的解决方案。一、下载与上传前往 GitHub 下载 CTFd 源码包# 或直接在服务器上用 wget 拉取wgethttps://github.com/CTFd/CTFd/archive/refs/heads/master.zip上传至服务器如果本地下载的话然后解压sudoaptupdate-ysudoaptinstallunzip-yunzipCTFd-master.zip-d/opt/(我下载到/opt目录了进入对应目录)进入目录cd/opt/CTFd-master二、安装 Dockersudoaptupdate-ysudoaptinstall-yca-certificatescurlgnupg lsb-release# 添加 Docker 官方 GPG 密钥curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|\sudogpg--dearmor-o/usr/share/keyrings/docker-archive-keyring.gpg# 添加 Docker APT 源echodeb [arch$(dpkg --print-architecture)signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu$(lsb_release-cs)stable|\sudotee/etc/apt/sources.list.d/docker.list/dev/null# 安装 Docker Compose 插件sudoaptupdate-ysudoaptinstall-ydocker-compose-plugin三、首次 build 失败与换源处理3.1 问题直接执行docker compose build大概率会因为国内网络问题拉取镜像超时失败。3.2 Docker 镜像加速推荐使用 DaoCloud 镜像加速# 拉取 Python 基础镜像以 daoCloud 代理拉取dockerpull m.daocloud.io/docker.io/library/python:3.11-slim-bookworm# 打 tag 还原为原始名称dockertag m.daocloud.io/docker.io/library/python:3.11-slim-bookworm\docker.io/library/python:3.11-slim-bookworm参考https://github.com/DaoCloud/public-image-mirror3.3 APT PIP 换源编辑 CTFd 项目根目录下的Dockerfile在开头附近加入以下内容# apt 换源为中科大镜像 RUN sed -i s/deb.debian.org/mirrors.ustc.edu.cn/g /etc/apt/sources.list.d/debian.sources # pip 换源 RUN pip install -i https://mirrors.ustc.edu.cn/pypi/simple pip -U RUN pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simpleUSTC 镜像源参考https://mirrors.ustc.edu.cn/help/3.4 重新 builddockercompose build此时应当可以成功构建。四、启动服务dockercompose up-d五、其他依赖镜像CTFd 还会依赖mariadb:10.11、redis:4、nginx:stable等镜像。如果拉取失败同样通过 DaoCloud 代理拉取dockerpull m.daocloud.io/docker.io/library/mariadb:10.11dockertag m.daocloud.io/docker.io/library/mariadb:10.11 docker.io/library/mariadb:10.11部分镜像如 redis、nginx可能遇到同样的问题。如果上述方式不行可以配置阿里云镜像加速器统一解决。阿里云的只能阿里云服务产品才可以使用阿里云镜像加速配置参考https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images按照指引配置/etc/docker/daemon.json中的registry-mirrors然后重启 Docker 即可全局生效。六、验证部署dockerps如果所有容器的STATUS列为Up则说明搭建成功。七、访问配置浏览器访问http://服务器IP:8000即可进入 CTFd 初始化配置页面。默认端口为 8000可在docker-compose.yml中修改端口映射。附命令速查操作命令构建镜像docker compose build启动服务docker compose up -d停止服务docker compose down查看状态docker ps查看日志docker compose logs -f