ret2shell/ret2shell
GitHub: ret2shell/ret2shell
一个基于 Rust 和 Solid.js 构建的功能丰富的 CTF 竞赛平台,以单一二进制文件交付,部署灵活高效。
Stars: 165 | Forks: 10
## 支持
QQ 群:1104642385
Telegram:https://t.me/ret2shell
## 部署
Ret2Shell 是单一二进制文件,需要 `redis/valkey 8+`、`postgres 18+`、`nats 2+`,以及可选的 `VictoriaLog` 和 `registry`。
所有组件可以部署在任何地方,因此您可以按照自己的喜好部署 ret2shell。
## 开发
### 1. 安装工具链
#### 为后端安装 Rust
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
然后使用 `rustup` 安装最新的稳定版工具链。
```
rustup install stable
```
后端开发环境配置完成。
#### 为前端安装 Node.js 和 Pnpm
```
curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash -
```
然后安装 pnpm
```
corepack enable pnpm
```
### 2. 搭建开发环境
#### 许可证说明
Ret2Shell 在 GPL-3.0 衍生的自定义 copyleft 许可证下分发,该许可证在附录 A 中纳入了 GPL-3.0,并增加了面向用户的商业化限制。具有法律效力的许可证文本请参见 [LICENSE](LICENSE),通俗指导请参见 [COMMERCIAL_POLICY.md](COMMERCIAL_POLICY.md)。
#### 配置前端
前端文件位于 [web/](web/) 目录中。进入该目录,或在 `pnpm` 命令后添加 `--prefix=web` 选项。
安装前端依赖:
```
pnpm install
```
#### 配置其他服务
参见 [deploy/nginx-module/ret2shell.dev.conf](deploy/nginx-module/ret2shell.dev.conf)。您可以将其放入您的 nginx 配置目录中,例如 `/etc/nginx/sites-enabled/`。
您可能需要配置其他服务,如 database、redis,请参考 [deploy/docker-compose.dev.yml](deploy/compose/docker-compose.dev.yml)。
将 [config/config.sample.toml](config/config.sample.toml) 复制到 `config/config.toml`,并进行修改以适应您的环境。
对于其他部署方式,请参见 [deploy/](deploy/)。
### 3. 启动
#### 前端
要在 [web/](web/) 上下文中启动开发服务器,请运行以下命令:
```
pnpm dev --host
```
或者在根目录下运行 `pnpm --prefix=web dev --host`。
### 后端
运行以下命令启动后端服务器:
```
cargo run --bin r2s-server
```
## 构建
请确保您已安装工具链。
构建前端文件:
```
pnpm build
```
构建的文件将生成在 `web/dist` 目录中。
构建后端服务器二进制文件:
```
# 如果你想使用 systemd 托管它
cargo build --release --bin r2s-server
# 或者你想在较旧的 Linux 发行版中托管它
cargo build --release --bin r2s-server --target x86_64-unknown-linux-musl
```
构建的二进制文件将生成在 `target/release/` 目录中,
musl 二进制文件将生成在 `target/x86_64-unknown-linux-musl/release/` 目录中。
您也可以构建 Docker 镜像:
```
# 如果你使用 fish
./release-image.fish
# 或者使用 bash 运行
./release-image.sh
```
## 许可证
Ret2Shell 基于以下许可证授权:
- [LICENSE](LICENSE):具有法律效力的许可证文本。
- [COMMERCIAL_POLICY.md](COMMERCIAL_POLICY.md):英文指导和解释说明。
- [COMMERCIAL_POLICY.zh-cn.md](COMMERCIAL_POLICY.zh-cn.md):政策指南的简体中文翻译。
标签:DNS解析, Docker, Docker Compose, GNU通用公共许可证, GPL协议, Linux部署, MITM代理, NATS, Nginx, Node.js, Pnpm, PostgreSQL, Redis, Rust, Solid.js, Valkey, VictoriaLog, 可视化界面, 安全防御评估, 开源项目, 搜索引擎查询, 测试用例, 竞赛平台, 网络安全, 网络流量审计, 请求拦截, 通知系统, 隐私保护, 靶场平台, 靶机环境