Skip to content

常见问题

部署相关

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-templates

Q: 动态 Flag 如何生成?

A: 平台支持两种 Flag 模式:

  1. 静态 Flag: 所有用户的 Flag 相同
  2. 动态 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 可以被反编译,但:

  1. 反编译需要专业工具和技能
  2. 反编译后的代码可读性差
  3. 大大增加了破解成本

对于商业化部署,这提供了足够的保护。

Q: 如何防止作弊?

A: 平台内置多种防作弊机制:

  • IP 限制
  • 提交频率限制
  • 动态 Flag
  • 行为审计日志
  • 异常检测

Q: 容器是否安全隔离?

A: 是的。每个题目容器都:

  • 使用独立的网络命名空间
  • 限制资源使用
  • 禁止特权模式
  • 定期清理

性能相关

Q: 平台能支持多少并发用户?

A: 取决于硬件配置:

  • 4核8G: 100-200 并发用户
  • 8核16G: 500-1000 并发用户
  • 16核32G: 2000+ 并发用户

可以通过横向扩展(增加后端实例)来提升并发能力。

Q: 如何优化性能?

A:

  1. 启用 Redis 缓存
  2. 配置 CDN(静态资源)
  3. 数据库优化(索引、查询优化)
  4. 增加 Celery Worker 数量
  5. 使用 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: 请联系我们:

Q: 是否提供定制开发?

A: 是的。企业版包含定制开发服务,包括:

  • 功能定制
  • 界面定制
  • 第三方系统集成
  • 专属技术支持

故障排查

Q: 服务启动失败怎么办?

A:

  1. 查看日志:
bash
docker compose logs
  1. 检查端口占用:
bash
netstat -tunlp | grep -E '80|3306|6379'
  1. 检查磁盘空间:
bash
df -h

Q: 前端页面无法访问?

A: 检查清单:

  • [ ] Nginx 容器是否运行
  • [ ] 80 端口是否开放
  • [ ] nginx.conf 配置是否正确
  • [ ] 防火墙是否允许访问

Q: API 返回 500 错误?

A:

  1. 查看后端日志
  2. 检查数据库连接
  3. 检查 Redis 连接
  4. 查看环境变量配置
  5. 查看后端日志
  6. 检查数据库连接
  7. 检查 Redis 连接
  8. 参考 部署文档

其他问题

Q: 如何获取技术支持?

A:

  1. 文档: 查看完整文档
  2. GitHub Issues: 提交问题
  3. Email: 5829662@qq.com
  4. 付费支持: 购买企业版获得优先支持

Q: 是否开源?

A: Ocean CTF 基于开源项目定制,但发布版本为商业化产品,不开源。企业版客户可以获得源码托管服务(需签署保密协议)。

Q: 支持哪些语言?

A: 目前支持:

  • 简体中文(默认)
  • 英文

计划支持:繁体中文、日文、韩文


没有找到答案?

请通过以下方式联系我们:

Released under the MIT License.