CRS 2.0 / Sub2API Windows 部署操作文档

面向一台全新的 Windows 电脑,从零搭建 CRS 2.0(Sub2API)本地服务。本文包含环境准备、必备软件、Docker 部署、账号注册订阅、关键端口、验证、交付报告和残留问题记录要求。

目录

1. 范围和结论

CRS 2.0 当前对应 Sub2API 项目。官方描述为一站式开源中转服务,用于统一接入 Claude、OpenAI、Gemini、Antigravity 等订阅或账号资源,并通过平台 API Key 分发给客户端使用。

这个系统涉及把订阅账号能力通过网关转发给其他客户端。部署前必须确认内部使用边界、上游服务条款和账号风控风险。不要把个人账号凭证公开给多人直接使用,不要把账号转售或开放给不受控第三方。

本文推荐在干净 Windows 电脑上使用 Docker Desktop + WSL2 + Docker Compose 方式部署。这样 PostgreSQL、Redis、Sub2API 都由 Docker 管理,便于迁移和备份。

2. 官方资料和许可

项目仓库https://github.com/Wei-Shaw/sub2api.git
中文 READMEhttps://github.com/Wei-Shaw/sub2api/blob/main/README_CN.md
Docker 部署说明https://github.com/Wei-Shaw/sub2api/blob/main/deploy/README.md
许可证LGPL-3.0-or-later。可自用和二次开发;如果分发修改版,需要遵守 LGPL 的源码、版权和许可证义务。
默认端口官方 Docker 部署默认 Web 端口为 8080,可通过 SERVER_PORT 修改。
本文只记录工程部署流程,不替代法律意见。商用分发、二开售卖或对外服务前,必须单独评估 LGPL 许可证和上游服务条款。

3. Claude / GPT 账号注册和最高档订阅

CRS 2.0 的价值依赖可用的上游账号或 API Key。账号订阅必须由账号负责人本人完成,并保存好恢复邮箱、支付方式、2FA 和账单信息。

3.1 Claude 账号和最高档

  1. 打开 https://claude.ai/
  2. 使用邮箱、Google 或 Apple 方式注册 / 登录 Claude 账号。
  3. 完成手机号、地区、支付方式等平台要求的验证。
  4. 进入 Claude 的 Settings / Plan / Upgrade 页面。
  5. 个人账号建议订阅当前可用最高个人档:Claude Max 20x。Claude 官方定价页显示 Max 从 100 USD/月起,可选择 5x 或 20x more usage than Pro;如果是团队采购,可评估 Team Premium 或 Enterprise。
  6. 开启 2FA,记录账单邮箱和恢复方式。不要把 Claude 明文密码写入部署报告。

官方价格页:https://claude.com/pricing

3.2 ChatGPT / OpenAI 账号和最高档

  1. 打开 https://chatgpt.com/OpenAI ChatGPT Pricing
  2. 使用邮箱、Google、Microsoft 或 Apple 方式注册 / 登录。
  3. 完成手机号、地区、支付方式等平台要求的验证。
  4. 进入 SettingsMy Plan 或 Pricing 页面升级。
  5. 个人账号建议订阅当前可用最高个人档:ChatGPT Pro $200/月。OpenAI 帮助中心说明 Pro $200 是最高使用量档,Pro $100 是较低使用量档。
  6. 开启 2FA,记录账单邮箱和恢复方式。不要把 ChatGPT 明文密码写入部署报告。

官方价格页:https://openai.com/chatgpt/pricing;Pro 档说明:https://help.openai.com/en/articles/9793128-about-chatgpt-pro-plans

3.3 可选:Gemini / Google AI 账号

如果后续要接入 Gemini,使用个人 Google 账号进入 https://gemini.google/ 或订阅页。个人最高档通常看 Google AI Ultra;不同国家/地区可用性、价格和模型权益会变化,以 Google 官方订阅页为准。

官方订阅页:https://gemini.google/us/subscriptions/

账号订阅不等于允许共享、转售或自动化滥用。OpenAI 帮助中心明确提到禁止共享账号凭证、转售访问或用 ChatGPT 为第三方服务供能。Claude / Google 也有类似条款和风控。CRS2 部署只能在明确授权的内部范围使用。

4. 干净 Windows 必备软件

目标系统建议 Windows 11 Pro/Enterprise,Windows 10 也可,但必须支持 WSL2 和 Docker Desktop。

软件用途要求
Windows Terminal统一运行 PowerShell / WSL推荐
PowerShell 7 或系统 PowerShell执行部署命令必需
WSL2 + Ubuntu运行官方 bash 部署脚本推荐必装
Docker Desktop运行 Sub2API、PostgreSQL、Redis 容器必需,启用 WSL2 backend
Node.js LTS / npm安装 Codex CLI、OpenCode CLI 和常用前端工具必需
Git for Windows拉取仓库和辅助命令必需
Codex 桌面版可视化选择项目、登录账号、让 Codex 协作处理本地任务推荐
Codex CLI在 PowerShell / Windows Terminal 里运行 Codex 代码代理推荐,npm 安装
OpenCode CLI/TUI终端里的开源 AI 编程代理,可连接不同模型供应商推荐
VS Code编辑 .env、Compose 文件和报告推荐
Chrome / Edge访问 Sub2API 管理后台和上游账号必需
7-Zip解压或备份部署目录推荐

4.1 安装 WSL2 和 Ubuntu

wsl --install -d Ubuntu
wsl --set-default-version 2
wsl -l -v

第一次打开 Ubuntu 时创建 Linux 用户。后续官方脚本在 Ubuntu 终端中执行。

4.2 安装 Docker Desktop

  1. 从 Docker 官网安装 Docker Desktop。
  2. 设置中确认启用 Use the WSL 2 based engine
  3. ResourcesWSL Integration 中启用 Ubuntu。
  4. 重启 Docker Desktop,执行验证:
docker version
docker compose version

4.3 安装 Node.js、Codex 和 OpenCode

  1. 从 Node.js 官网安装 LTS 版本。安装完成后关闭并重新打开 Windows Terminal。
  2. 验证 Node 和 npm:
node -v
npm -v
  1. 安装 Codex 桌面版:从 OpenAI Codex App 官方页面下载 Windows 版本,打开后登录 ChatGPT 账号或 API Key,并选择项目目录。
  2. 安装 Codex CLI:
npm install -g @openai/codex
codex
  1. 安装 OpenCode:打开 OpenCode 官网,选择 Windows 可用的 CLI/TUI 安装方式;如果当前官网提供 npm 安装命令,就按官网命令安装。
  2. 验证 OpenCode:
opencode --version
opencode
Codex 和 OpenCode 都可能读取、修改并运行当前项目代码。新电脑第一次使用前,先确认 Git 工作区干净;每次部署或调试前后都建议提交 Git checkpoint。

5. 部署前需要的凭证

凭证用途来源
Sub2API 管理员邮箱/密码首次登录后台部署人创建或管理员提供
Claude 账号 / OAuth / Cookie / Token添加 Claude 上游账号Claude 账号负责人
ChatGPT / OpenAI 账号或 API Key添加 OpenAI / Codex 上游账号OpenAI 账号负责人
Gemini / Google 账号或 API Key可选,添加 Gemini 上游账号Google 账号负责人
域名和 HTTPS 证书权限公网访问或反向代理域名/服务器管理员
服务器或局域网端口权限放行 8080 或反向代理端口网络管理员
部署报告里只能写“已取得 / 未取得 / 负责人 / 用途”,不能写明文密码、Token、Cookie、API Key。

6. 目录和端口规划

后续所有 Windows 电脑统一使用 C 盘。

项目路径 / 端口
部署根目录C:\Projects\CRS2
Sub2API 部署目录C:\Projects\CRS2\sub2api-deploy
Docker 数据目录C:\Projects\CRS2\sub2api-deploy\datapostgres_dataredis_data
交付报告C:\Projects\CRS2\crs2-deployment-report.html
Sub2API Web / APIhttp://127.0.0.1:8080
PostgreSQL容器内部使用,默认不对外开放
Redis容器内部使用,默认不对外开放

如 8080 被占用,修改 .envSERVER_PORT,例如改成 18088

6.1 韩国服务器 frp 端口规划

如果 CRS2 要给韩国/首尔服务器上的 NewAPI 调用,建议不要复用现有 CLIProxyAPI 的 18080,避免端口冲突。本文建议 CRS2 使用新的远端端口:

用途端口 / 地址
本机 CRS2127.0.0.1:8080
韩国服务器 frps 控制端口150.109.233.152:7000
韩国服务器 CRS2 映射端口150.109.233.152:18081
NewAPI 容器内调用 CRS2http://172.17.0.1:18081/v1
韩国服务器宿主机调用 CRS2http://127.0.0.1:18081/v1
如果韩国服务器上 18081 已被占用,先让服务器管理员分配新端口。不要直接覆盖现有 18080,它可能已经给 CLIProxyAPI 使用。

7. Docker Compose 部署

官方推荐 Docker Compose 部署,包含 PostgreSQL 和 Redis。Windows 上推荐在 WSL Ubuntu 中执行官方 bash 脚本,但部署目录放在 C 盘,便于备份。

7.1 创建目录

在 PowerShell 中执行:

mkdir C:\Projects\CRS2
mkdir C:\Projects\CRS2\sub2api-deploy

7.2 在 WSL 中进入目录

wsl
cd /mnt/c/Projects/CRS2/sub2api-deploy

7.3 执行官方 Docker 部署准备脚本

curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash

脚本会下载 docker-compose.yml.env.example,生成 .env,并自动生成 POSTGRES_PASSWORDJWT_SECRETTOTP_ENCRYPTION_KEY 等安全凭证。

脚本输出的管理员密码和密钥只记录到本机安全密码管理器。不要截图发群,不要写入公开 HTML。

7.4 检查和修改 .env

code .env

至少确认这些配置:

SERVER_PORT=8080
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=<strong-password>
POSTGRES_PASSWORD=<generated-or-custom>
JWT_SECRET=<generated>
TOTP_ENCRYPTION_KEY=<generated>
TZ=Asia/Shanghai

如果不手动设置 ADMIN_PASSWORD,需要在启动日志中查找自动生成的 admin password。

7.5 启动服务

docker compose up -d
docker compose ps
docker compose logs -f sub2api

7.6 查找自动生成的管理员密码

docker compose logs sub2api | grep "admin password"

如果 PowerShell 里没有 grep,用:

docker compose logs sub2api | findstr /i "admin password"

8. 韩国服务器 frp 转发

如果 CRS2 只在本机使用,可以跳过本节。如果韩国/首尔服务器上的 NewAPI 需要调用这台 Windows 电脑上的 CRS2,就需要配置 frp:本机运行 frpc,韩国服务器运行 frps

8.1 frp 架构

NewAPI(韩国/首尔服务器 Docker 容器)
    |
    | http://172.17.0.1:18081/v1
    v
韩国/首尔服务器 frps :18081
    |
    | frp tcp tunnel,控制端口 :7000
    v
Windows frpc
    |
    | http://127.0.0.1:8080
    v
CRS2 / Sub2API

8.2 需要向管理员确认

8.3 下载 frp Windows 客户端

建议和服务器 frps 使用相同或兼容版本。示例使用 0.68.1

mkdir C:\Projects\claude-workspace
cd C:\Projects\claude-workspace
Invoke-WebRequest `
  -Uri "https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_windows_amd64.zip" `
  -OutFile ".\frp_0.68.1_windows_amd64.zip"
Expand-Archive ".\frp_0.68.1_windows_amd64.zip" -DestinationPath "." -Force
dir .\frp_0.68.1_windows_amd64\frpc.exe
Windows 安全中心 / Microsoft Defender 可能误隔离 frpc.exe。确认来源为 frp 官方 GitHub release 后,只把 C:\Projects\claude-workspace\frp_0.68.1_windows_amd64 加入排除项,不要排除整个 C:\Projects 或系统盘。

8.4 创建 CRS2 专用 frpc 目录

mkdir C:\Projects\CRS2\frp-seoul-crs2

C:\Projects\CRS2\frp-seoul-crs2\frpc.toml 模板:

serverAddr = "150.109.233.152"
serverPort = 7000
loginFailExit = false

auth.method = "token"
auth.token = "<frp-token>"

[[proxies]]
name = "crs2_8080"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 18081

C:\Projects\CRS2\frp-seoul-crs2\run-frpc-crs2.ps1 内容:

$ErrorActionPreference = 'Continue'
$frpc = 'C:\Projects\claude-workspace\frp_0.68.1_windows_amd64\frpc.exe'
$cfg = 'C:\Projects\CRS2\frp-seoul-crs2\frpc.toml'
$wd = 'C:\Projects\CRS2\frp-seoul-crs2'
$log = Join-Path $wd 'frpc.log'
$err = Join-Path $wd 'frpc.err.log'
& $frpc -c $cfg >> $log 2>> $err

C:\Projects\CRS2\frp-seoul-crs2\start-frpc-crs2-hidden.vbs 内容:

Set shell = CreateObject("WScript.Shell")
shell.Run "powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File ""C:\Projects\CRS2\frp-seoul-crs2\run-frpc-crs2.ps1""", 0, False

8.5 启动和验证 frpc

powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Projects\CRS2\frp-seoul-crs2\run-frpc-crs2.ps1"
Get-CimInstance Win32_Process |
  Where-Object { $_.Name -eq 'frpc.exe' -and $_.CommandLine -like '*frp-seoul-crs2*' }

Get-Content "C:\Projects\CRS2\frp-seoul-crs2\frpc.log" -Tail 80
Get-Content "C:\Projects\CRS2\frp-seoul-crs2\frpc.err.log" -Tail 80

8.6 韩国服务器验证

服务器管理员在韩国/首尔服务器上执行:

sudo systemctl status frps
ss -ltnp | grep -E ':(7000|18081)'
curl -i http://127.0.0.1:18081/
curl -i http://127.0.0.1:18081/v1/models

如果只看到 7000,没有 18081,说明 frps 已启动但 Windows frpc 没有成功注册。回到 Windows 检查 frpc.exe 进程、日志和 Defender 隔离记录。

8.7 Windows 开机自启

start-frpc-crs2-hidden.vbs 的快捷方式放入当前用户启动目录:

%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

部署报告里必须写明是否已配置开机自启,以及重启 Windows 后是否验证过。

9. 初始化和后台配置

  1. 浏览器打开 http://127.0.0.1:8080
  2. 使用 ADMIN_EMAILADMIN_PASSWORD 登录。
  3. 立即修改默认管理员密码,开启 2FA。
  4. 进入账号 / 上游 / Provider 管理页面,按后台 UI 添加 Claude、OpenAI、Gemini 等账号。
  5. 进入 API Key 管理,创建给客户端或 NewAPI 使用的 API Key。
  6. 进入模型 / 路由 / 额度相关页面,配置账号池、模型可见性、额度策略和用量计费。

8.1 添加 Claude 账号

按后台 UI 支持的方式添加 Claude 账号。不同版本可能支持 OAuth、订阅账号、Cookie、Token 或 API Key 方式。执行人必须在交付报告里写清楚实际采用了哪一种方式,但敏感值打码。

8.2 添加 ChatGPT / OpenAI 账号

按后台 UI 支持的方式添加 OpenAI / ChatGPT / Codex 账号或 API Key。ChatGPT 订阅账号和 OpenAI API Key 是不同体系,后台如何接入以实际版本 UI 为准。

8.3 生成客户端 API Key

给客户端或 NewAPI 的调用方只发 Sub2API 生成的 API Key,不要发上游 Claude / ChatGPT 的账号密码。

10. 客户端 / NewAPI 对接

默认本机访问地址:

http://127.0.0.1:8080

如果 NewAPI 或其他客户端在同一台 Windows 电脑上,Base URL 可填写 Sub2API 提供的 OpenAI-compatible API 地址。具体路径以后台和当前版本 API 文档为准,常见形式是:

http://127.0.0.1:8080/v1

鉴权使用 Sub2API 后台生成的 API Key,例如:

Authorization: Bearer <sub2api-client-api-key>
不要把 Claude / ChatGPT / Google 的账号密码填到 NewAPI 渠道里。NewAPI 只应该拿到 Sub2API 发出的客户端 API Key。

10.1 韩国服务器 NewAPI 配置

如果 NewAPI 运行在韩国/首尔服务器 Docker 容器里,渠道 Base URL 填:

http://172.17.0.1:18081/v1

如果 NewAPI 直接运行在韩国/首尔服务器宿主机上,渠道 Base URL 填:

http://127.0.0.1:18081/v1

说明:Docker 容器里的 127.0.0.1 指向容器自身,不是服务器宿主机。因此 NewAPI 在 Docker 内时通常要使用宿主机 Docker 网关地址 172.17.0.1

10.2 NewAPI 渠道建议

配置项建议值
渠道类型OpenAI-compatible / OpenAI 兼容
Base URL(NewAPI Docker 内)http://172.17.0.1:18081/v1
Base URL(宿主机)http://127.0.0.1:18081/v1
API KeySub2API 后台生成的客户端 API Key,格式按后台实际生成结果填写。
模型先用 Sub2API 后台或 /v1/models 查到的模型名,不要凭记忆乱填。
测试先测试 /v1/models,再测试一次 chat/completions。

10.3 NewAPI 连通性测试

在韩国/首尔服务器宿主机上:

curl -i http://127.0.0.1:18081/v1/models \
  -H "Authorization: Bearer <sub2api-client-api-key>"

在 NewAPI Docker 容器内:

curl -i http://172.17.0.1:18081/v1/models \
  -H "Authorization: Bearer <sub2api-client-api-key>"

11. 验证和排障

11.1 基础验证

cd /mnt/c/Projects/CRS2/sub2api-deploy
docker compose ps
docker compose logs --tail 100 sub2api
curl -I http://127.0.0.1:8080

Windows PowerShell 验证:

curl.exe -I http://127.0.0.1:8080
netstat -ano | findstr :8080

11.2 常见问题

现象处理
8080 无法访问检查 Docker Desktop 是否运行、容器是否启动、SERVER_PORT 是否被占用。
sub2api 容器反复重启查看 docker compose logs sub2api,重点检查数据库、Redis、环境变量。
管理员密码不知道查日志中的 admin password,或停止服务后按官方方式重置。
账号接入失败确认上游账号订阅有效、地区/风控/2FA 状态正常,按后台错误日志处理。
NewAPI 调不通确认 Base URL、API Key、模型名、路由配置和防火墙。

12. 安全和合规

13. 部署完成交付 HTML

部署完成后,必须输出:

C:\Projects\CRS2\crs2-deployment-report.html

报告至少包含:

14. 参考命令

日常维护

cd /mnt/c/Projects/CRS2/sub2api-deploy
docker compose ps
docker compose logs -f sub2api
docker compose restart sub2api
docker compose pull
docker compose up -d

备份

cd /mnt/c/Projects/CRS2
tar czf sub2api-deploy-backup-$(date +%Y%m%d-%H%M%S).tar.gz sub2api-deploy/

停止

cd /mnt/c/Projects/CRS2/sub2api-deploy
docker compose down

参考资料

文档生成时间:2026-05-13。账号计划、价格、模型权益和项目部署方式可能变化,执行前以官方页面和当前仓库 README 为准。

Hướng dẫn triển khai CRS 2.0 / Sub2API trên Windows

Tài liệu này dành cho đồng nghiệp Việt Nam phụ trách khởi tạo máy tính Windows mới. Mục tiêu là cài môi trường sạch, chạy CRS 2.0 / Sub2API bằng Docker, cấu hình tài khoản Claude / GPT, sau đó nếu cần thì nối về máy chủ Hàn Quốc qua frp để NewAPI gọi được.

Không ghi mật khẩu, token, cookie, API key, SSH key vào báo cáo công khai. Nếu cần xác nhận, chỉ ghi dạng đã che hoặc hash.

1. Kết luận nhanh

2. Phần mềm bắt buộc

Phần mềmMục đích
Windows 11 hoặc Windows 10 hỗ trợ WSL2Hệ điều hành nền.
Windows TerminalMở PowerShell và Ubuntu dễ hơn.
WSL2 + UbuntuChạy script triển khai chính thức.
Docker DesktopChạy Sub2API, PostgreSQL, Redis.
Node.js LTS / npmCài Codex CLI, OpenCode CLI và các công cụ frontend cần thiết.
Git for WindowsKéo mã nguồn / kiểm tra repo.
Codex DesktopỨng dụng desktop để chọn thư mục dự án và đăng nhập tài khoản Codex.
Codex CLIChạy Codex trong terminal bằng npm.
OpenCode CLI/TUIAI coding agent chạy trong terminal, có thể kết nối nhiều model provider.
VS CodeSửa file .env, compose, báo cáo.
Chrome hoặc EdgeĐăng nhập dashboard, Claude, ChatGPT.
wsl --install -d Ubuntu
wsl --set-default-version 2
wsl -l -v

docker version
docker compose version

node -v
npm -v

npm install -g @openai/codex
codex

opencode --version
opencode
Trước khi dùng Codex hoặc OpenCode trên máy mới, hãy kiểm tra Git worktree sạch và tạo checkpoint/commit trước sau mỗi thay đổi quan trọng.

3. Đăng ký tài khoản Claude / GPT và gói cao nhất

3.1 Claude

  1. Mở https://claude.ai/.
  2. Đăng ký bằng email, Google hoặc Apple.
  3. Hoàn tất xác minh số điện thoại, khu vực và thanh toán nếu hệ thống yêu cầu.
  4. Vào phần Plan / Upgrade.
  5. Nếu dùng cá nhân, ưu tiên gói cao nhất hiện có: Claude Max 20x. Nếu dùng cho team hoặc doanh nghiệp, đánh giá Team Premium / Enterprise.
  6. Bật 2FA. Lưu email khôi phục và thông tin thanh toán trong kho mật khẩu nội bộ.

3.2 ChatGPT / OpenAI

  1. Mở https://chatgpt.com/ hoặc trang giá OpenAI ChatGPT Pricing.
  2. Đăng ký bằng email, Google, Microsoft hoặc Apple.
  3. Hoàn tất xác minh và thanh toán.
  4. Vào Settings / My Plan để nâng cấp.
  5. Nếu dùng cá nhân, ưu tiên gói cao nhất hiện có: ChatGPT Pro 200 USD/tháng.
  6. Bật 2FA. Không ghi mật khẩu ChatGPT vào báo cáo triển khai.
Việc mua gói thuê bao không có nghĩa là được bán lại hoặc chia sẻ tài khoản bừa bãi. Chỉ dùng trong phạm vi nội bộ đã được quản lý cho phép.

4. Thông tin cần xin quản trị viên trước khi triển khai

Thông tinDùng để làm gì
Tài khoản admin CRS2Đăng nhập dashboard Sub2API lần đầu.
Claude account / OAuth / token / cookieThêm Claude upstream vào CRS2.
ChatGPT / OpenAI account hoặc API keyThêm OpenAI / GPT / Codex upstream.
frp tokenCho Windows frpc kết nối server frps tại Hàn Quốc.
SSH/sudo server Hàn QuốcKiểm tra frps, port 18081, log server.
Quyền NewAPI adminCấu hình kênh NewAPI gọi CRS2.

5. Triển khai Sub2API bằng Docker Compose

Tạo thư mục trên Windows PowerShell:

mkdir C:\Projects\CRS2
mkdir C:\Projects\CRS2\sub2api-deploy

Vào WSL Ubuntu:

wsl
cd /mnt/c/Projects/CRS2/sub2api-deploy

Chạy script triển khai chính thức:

curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash

Kiểm tra .env:

code .env

Các mục cần kiểm tra:

SERVER_PORT=8080
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=<strong-password>
POSTGRES_PASSWORD=<generated-or-custom>
JWT_SECRET=<generated>
TOTP_ENCRYPTION_KEY=<generated>
TZ=Asia/Shanghai

Khởi động:

docker compose up -d
docker compose ps
docker compose logs -f sub2api

Mở dashboard:

http://127.0.0.1:8080

6. Cấu hình tài khoản trong dashboard

  1. Đăng nhập CRS2 / Sub2API dashboard bằng admin email và password.
  2. Đổi mật khẩu admin ngay sau lần đăng nhập đầu tiên.
  3. Bật 2FA nếu có.
  4. Thêm Claude upstream theo cách UI hỗ trợ: OAuth, cookie, token hoặc API key.
  5. Thêm OpenAI / ChatGPT / Codex upstream theo cách UI hỗ trợ.
  6. Tạo API key cho client hoặc NewAPI. Chỉ phát API key của Sub2API, không phát mật khẩu Claude/GPT.
  7. Kiểm tra danh sách model bằng dashboard hoặc endpoint /v1/models.

7. frp tới server Hàn Quốc

Nếu NewAPI trên server Hàn Quốc cần gọi CRS2 trên máy Windows này, cấu hình frp như sau.

NewAPI Docker container
    |
    | http://172.17.0.1:18081/v1
    v
Korea server frps :18081
    |
    | frp tcp tunnel, control port :7000
    v
Windows frpc
    |
    | http://127.0.0.1:8080
    v
CRS2 / Sub2API

7.1 Download frp client

mkdir C:\Projects\claude-workspace
cd C:\Projects\claude-workspace
Invoke-WebRequest `
  -Uri "https://github.com/fatedier/frp/releases/download/v0.68.1/frp_0.68.1_windows_amd64.zip" `
  -OutFile ".\frp_0.68.1_windows_amd64.zip"
Expand-Archive ".\frp_0.68.1_windows_amd64.zip" -DestinationPath "." -Force
Windows Security / Microsoft Defender có thể cách ly frpc.exe. Sau khi xác nhận file tải từ GitHub release chính thức, chỉ thêm thư mục C:\Projects\claude-workspace\frp_0.68.1_windows_amd64 vào exclusion. Không exclude toàn bộ C:\Projects hoặc ổ C.

7.2 Cấu hình frpc cho CRS2

mkdir C:\Projects\CRS2\frp-seoul-crs2

File C:\Projects\CRS2\frp-seoul-crs2\frpc.toml:

serverAddr = "150.109.233.152"
serverPort = 7000
loginFailExit = false

auth.method = "token"
auth.token = "<frp-token>"

[[proxies]]
name = "crs2_8080"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 18081

File run-frpc-crs2.ps1:

$ErrorActionPreference = 'Continue'
$frpc = 'C:\Projects\claude-workspace\frp_0.68.1_windows_amd64\frpc.exe'
$cfg = 'C:\Projects\CRS2\frp-seoul-crs2\frpc.toml'
$wd = 'C:\Projects\CRS2\frp-seoul-crs2'
$log = Join-Path $wd 'frpc.log'
$err = Join-Path $wd 'frpc.err.log'
& $frpc -c $cfg >> $log 2>> $err

Chạy frpc:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Projects\CRS2\frp-seoul-crs2\run-frpc-crs2.ps1"

Kiểm tra trên server Hàn Quốc:

sudo systemctl status frps
ss -ltnp | grep -E ':(7000|18081)'
curl -i http://127.0.0.1:18081/
curl -i http://127.0.0.1:18081/v1/models

8. Cấu hình NewAPI

Nếu NewAPI chạy trong Docker container trên server Hàn Quốc, Base URL điền:

http://172.17.0.1:18081/v1

Nếu NewAPI chạy trực tiếp trên host server, Base URL điền:

http://127.0.0.1:18081/v1
MụcGiá trị đề nghị
Channel typeOpenAI-compatible / OpenAI compatible
Base URL trong NewAPI Dockerhttp://172.17.0.1:18081/v1
API KeyAPI key tạo trong Sub2API dashboard.
ModelLấy từ /v1/models hoặc dashboard, không tự đoán.

Test từ host server:

curl -i http://127.0.0.1:18081/v1/models \
  -H "Authorization: Bearer <sub2api-client-api-key>"

Test trong container NewAPI:

curl -i http://172.17.0.1:18081/v1/models \
  -H "Authorization: Bearer <sub2api-client-api-key>"

9. Báo cáo bàn giao sau triển khai

Sau khi triển khai xong, bắt buộc tạo file:

C:\Projects\CRS2\crs2-deployment-report.html

Báo cáo phải có: