常见问题
部署相关
Q: 支持哪些操作系统?
A: Ocean CTF 基于 Docker 部署,理论上支持所有能运行 Docker 的操作系统:
- ✅ Linux (推荐 Ubuntu 20.04+, CentOS 7+)
- ✅ macOS
- ✅ Windows (需要 WSL2)
Q: 最低硬件配置要求是什么?
A:
最低配置(测试环境):
- CPU: 2 核
- 内存: 4GB
- 磁盘: 20GB
推荐配置(生产环境):
- CPU: 4 核+
- 内存: 8GB+
- 磁盘: 50GB+
Q: 如何配置 HTTPS?
A: 有两种方式:
方式 1: 使用 Nginx 反向代理(推荐)
nginx
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:80;
}
}方式 2: 使用 Traefik
参考 Traefik 官方文档配置 HTTPS
Q: 如何更新到新版本?
A:
bash
# 1. 拉取新版本镜像
docker pull peach0214/ctf-backend:v1.1.0
docker pull peach0214/ctf-frontend:v1.1.0
# 2. 更新 docker-compose.yml 中的版本号
# 3. 重启服务
docker compose down
docker compose up -d
# 4. 如有数据库迁移,执行迁移脚本
docker exec -it ctf-backend python cli.py db upgrade功能相关
Q: 支持哪些题目类型?
A: 支持以下题目类型:
- Web: Web 安全题目
- Pwn: 二进制漏洞利用
- Reverse: 逆向工程
- Crypto: 密码学
- Misc: 杂项题目
- 容器题: 基于 Docker 的动态题目
Q: 如何导入 Vulhub 漏洞?
A:
bash
# 进入后端容器
docker exec -it ctf-backend bash
# 同步 Vulhub 模板
python cli.py demo sync-vulhub-templates
# 查看已同步的模板
python cli.py demo list-templatesQ: 动态 Flag 如何生成?
A: 平台支持两种 Flag 模式:
- 静态 Flag: 所有用户的 Flag 相同
- 动态 Flag: 每个用户/团队的 Flag 不同
动态 Flag 格式:flag{md5(user_id + challenge_id + secret)}
Q: 如何限制题目容器资源?
A: 在题目配置中设置:
json
{
"cpu_limit": "0.5", // CPU 核心数
"memory_limit": "512m", // 内存限制
"timeout": 3600 // 超时时间(秒)
}安全相关
Q: 源码是否真的被保护了?
A: 是的。后端代码在 Docker 镜像构建时被编译为 .pyc 字节码,所有 .py 源文件都被删除。虽然理论上 .pyc 可以被反编译,但:
- 反编译需要专业工具和技能
- 反编译后的代码可读性差
- 大大增加了破解成本
对于商业化部署,这提供了足够的保护。
Q: 如何防止作弊?
A: 平台内置多种防作弊机制:
- IP 限制
- 提交频率限制
- 动态 Flag
- 行为审计日志
- 异常检测
Q: 容器是否安全隔离?
A: 是的。每个题目容器都:
- 使用独立的网络命名空间
- 限制资源使用
- 禁止特权模式
- 定期清理
性能相关
Q: 平台能支持多少并发用户?
A: 取决于硬件配置:
- 4核8G: 100-200 并发用户
- 8核16G: 500-1000 并发用户
- 16核32G: 2000+ 并发用户
可以通过横向扩展(增加后端实例)来提升并发能力。
Q: 如何优化性能?
A:
- 启用 Redis 缓存
- 配置 CDN(静态资源)
- 数据库优化(索引、查询优化)
- 增加 Celery Worker 数量
- 使用 Nginx 缓存
Q: 数据库如何备份?
A:
bash
# 手动备份
docker exec ctf-mysql mysqldump -u root -p${MYSQL_ROOT_PASSWORD} ctf_db > backup.sql
# 定时备份(crontab)
0 2 * * * docker exec ctf-mysql mysqldump -u root -p${MYSQL_ROOT_PASSWORD} ctf_db > /backup/ctf_$(date +\%Y\%m\%d).sql许可和商业
Q: 试用版有什么限制?
A: 试用版限制:
- 30 天试用期
- 最多 50 个用户
- 最多 20 个题目
- 无技术支持
Q: 如何购买正式版?
A: 请联系我们:
- 📧 Email: 58296672@qq.com
- 💬 微信: ocean-ctf
- 📞 电话: 400-xxx-xxxx
Q: 是否提供定制开发?
A: 是的。企业版包含定制开发服务,包括:
- 功能定制
- 界面定制
- 第三方系统集成
- 专属技术支持
故障排查
Q: 服务启动失败怎么办?
A:
- 查看日志:
bash
docker compose logs- 检查端口占用:
bash
netstat -tunlp | grep -E '80|3306|6379'- 检查磁盘空间:
bash
df -hQ: 前端页面无法访问?
A: 检查清单:
- [ ] Nginx 容器是否运行
- [ ] 80 端口是否开放
- [ ] nginx.conf 配置是否正确
- [ ] 防火墙是否允许访问
Q: API 返回 500 错误?
A:
- 查看后端日志
- 检查数据库连接
- 检查 Redis 连接
- 查看环境变量配置
- 查看后端日志
- 检查数据库连接
- 检查 Redis 连接
- 参考 部署文档
其他问题
Q: 如何获取技术支持?
A:
- 文档: 查看完整文档
- GitHub Issues: 提交问题
- Email: 5829662@qq.com
- 付费支持: 购买企业版获得优先支持
Q: 是否开源?
A: Ocean CTF 基于开源项目定制,但发布版本为商业化产品,不开源。企业版客户可以获得源码托管服务(需签署保密协议)。
Q: 支持哪些语言?
A: 目前支持:
- 简体中文(默认)
- 英文
计划支持:繁体中文、日文、韩文
没有找到答案?
请通过以下方式联系我们:
- 📧 Email: 5829662@qq.com
- 💬 GitHub: 提交 Issue