虚拟机内搭建CTFd平台搭建及CTF题库部署,局域网内机器可以访问

一、虚拟机环境搭建

1、安装docker、git、docker-compose

ubuntu:

sudo apt-get update #更新系统
sudo apt-get -y install docker.io #安装docker
sudo apt-get -y install git #安装git
sudo apt-get -y install python3-pip #安装pip3
sudo pip install docker-compose #pip安装docker-compose,如安装失败sudo pip install --upgrade pip更新pip版本后再安装

2、docker配置&python配置

docker配置:

#如果想自定义docker镜像下载目录进行执行如下命令

sudo rm -rf /var/lib/docker

sudo mkdir -p /appdata/docker #/appdata/docker为你自定义的目录

sudo ln -s /appdata/docker /var/lib/docker #创建软链接使/var/lib/docker指向/appdata/docker

#设置国内docker镜像源

sudo mkdir -p /etc/docker #创建目录

sudo vim /etc/docker/daemon.json #编辑配置文件

#将如下内容写入:

{

"registry-mirrors": ["https://******.mirror.aliyuncs.com"]

}

#******为你注册阿里docker镜像仓库的代码,获取方式见如下文章:

#https://blog.csdn.net/wohaqiyi/article/details/89335932

sudo service docker restart #重启docker

python配置:

#不安装python2,直接python3

sudo ln -s /usr/bin/pip3 /usr/bin/pip #创建python3软链接

sudo ln -s /usr/bin/python3 /usr/bin/python #创建python3软链接

3、部署CTFd平台

cd /opt

sudo git clone https://github.com/CTFd/CTFd.git #下载CTFd

cd CTFd

sudo docker-compose up -d #docker方式后台下载镜像源并启动

root@localhost CTFd\]# docker-compose up -d WARNING: The Docker Engine you're using is running in swarm mode. Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node. Creating ctfd_db_1 ... done Creating ctfd_ctfd_1 ... done Creating ctfd_cache_1 ... done Creating ctfd_ctfd_1 ... Recreating ctfd_nginx_1 ... done 安装完成,访问IP:8000,进入CTFd初始化界面,按需注册账号密码后,点finish可进入CTFd平台 pip3 install gunicorn [https://github.com/CTFd/CTFd](https://github.com/CTFd/CTFd "https://github.com/CTFd/CTFd") 部署一个ctf题目 sudo mkdir -p /home/cys/CTF #创建CTF目录 sudo cd /home/cys/CTF sudo git clone https://github.com/CTFTraining/CTFTraining.git #安装CTFTraining,注意这里只能git下来目录,目录中是空的,需要一个一个CTF题目去git cd CTFTraining ls 里面只有目录,没有内容 sudo git clone https://github.com/CTFTraining/0ctf_2016_unserialize.git #下载CTF题目,只要替换0ctf_2016_unserialize为其他目录名称即可下载所有题目 cd 0ctf_2016_unserialize/ #进入题目目录中 ls 发现目录中已经有内容了 修改docker-compose.yml文件,设置端口及flag 使用docker-compose启动: sudo docker-compose up -d #使用docker-compose下载镜像生成容器并启动容器 ![](https://file.jishuzhan.net/article/1691060714917072898/d4cba48bd97c4a59bfc0805b229cf940.png) 要16步,第一启动费时间。 已经启动,在本地访问IP:8302发现可以访问,但在其他电脑无法访问 ![](https://file.jishuzhan.net/article/1691060714917072898/bf02001c4e0148b081e4067901a788f5.png) 停止并删除容器,并修改配置文件docker-compose.yml sudo docker stop 2c6df451d955 #停止容器,2c6df451d955为CTF题目CONTAINER ID sudo docker rm 2c6df451d955 #删除容器,2c6df451d955为CTF题目CONTAINER ID sudo vim docker-compose.yml #vim将127.0.0.1修改为0.0.0.0 # 0ctf 2016 piapiapia version: "2" services: web: build: . image: ctftraining/0ctf_2016_unserialize environment: - FLAG=flag{nizhenshigedacongming} restart: always ports: - "0.0.0.0:8302:80" 本机在浏览器上访问正常,但是同一局域网的其他电脑却无法连接 ![](https://file.jishuzhan.net/article/1691060714917072898/8f768fdb12f84a30ad26be4fa258e937.png) 解决: 打开VM点击虚拟机--\>设置--\>硬件--\>网络适配器--\>选择桥接:直接连接到物理网络 ![](https://file.jishuzhan.net/article/1691060714917072898/faf3b003fdf24f1eb3c7355e1b9dc0e0.png) ![](https://file.jishuzhan.net/article/1691060714917072898/12c8653f52a44713b8c97ba383c0c1e3.png)

相关推荐
f***24112 小时前
高效自动化管理临时文件的技术方案
运维·自动化
m0_738120722 小时前
应急响应——知攻善防靶场Linux-1详细应急过程
linux·运维·服务器·网络·web安全·ssh
obboda2 小时前
磁盘管理(MBR、LVM)
运维·5g
kylezhao20192 小时前
S7-1200 CPU 与 S7-200 SMART S7通信(S7-1200 作为服务器)
运维·服务器
摸鱼仙人~2 小时前
大模型文章生成的风格个性化与多文体写作:一套可落地的方法论
linux·运维·服务器
xybDIY2 小时前
亚马逊云 Organizations 组织 Link 账号关联与解绑自动化解决方案
运维·自动化·云计算·aws
慕容雪_3 小时前
运维笔记-网络【属性】-【共享】中没有【家庭网络连接(H)】的选项
运维·网络·共享
AC赳赳老秦3 小时前
Shell 脚本批量生成:DeepSeek 辅助编写服务器运维自动化指令
运维·服务器·前端·vue.js·数据分析·自动化·deepseek
学Linux的语莫3 小时前
linux的root目录缓存清理
linux·运维·服务器
oMcLin3 小时前
如何在 SUSE Linux Enterprise Server 15 上部署并优化 K3s 集群,提升轻量级容器化应用的资源利用率?
linux·运维·服务器