초급
월 100원 미만으로 토큰 자유를 얻는 방법 (단계별 가이드)
월 100원 미만으로 토큰 자유를 얻는 방법 (단계별 가이드)
병렬 작업, 배치 Agent 실행, 또는 긴 대화형 프로그래밍 세션에서는 단일 계정으로 인해 속도 제한이 자주 발생합니다.
해결책은 간단합니다. 여러 Plus 계정을 풀링하는 것입니다.
sub2api를 사용하여 외부에는 단일 API 엔드포인트를 노출하고, 내부적으로는 실시간 할당량 상태에 따라 계정을 스케줄링하고 로드 밸런싱을 수행합니다.더 중요한 것은, 이 솔루션의 비용이 매우 통제 가능하다는 점입니다. 아래 이미지는 어제의 실제 사용량을 보여줍니다: 2억 토큰.
이제 이 상세 가이드를 살펴보겠습니다. 도움이 되셨다면 좋아요 🥰 부탁드립니다. 감사합니다.

긴 글 주의, 먼저 저장해 두시길 권장합니다.
솔루션 개요: sub2api + 다중 계정 풀 아키텍처#
sub2api는 AI 구독 할당량을 관리하고 분배하기 위해 특별히 설계된 오픈 소스 AI API 게이트웨이 플랫폼입니다. 핵심 기능은 다음과 같습니다:- 통합 인터페이스: 여러 Claude/Codex Plus 계정을 단일 API 엔드포인트로 통합합니다.
- 지능형 스케줄링: 실시간 할당량을 기반으로 사용 가능한 계정을 자동 선택하여 속도 제한을 방지합니다.
- 로드 밸런싱: 계정 그룹화 및 가중치 구성을 지원하여 요청을 합리적으로 분배합니다.
- 카풀 공유: 여러 API Key를 생성하여 친구들과 사용량을 공유할 수 있습니다.
- 사용량 모니터링: 웹 패널을 통해 각 계정의 사용량 및 요청 통계를 실시간으로 확인할 수 있습니다.
아키텍처 다이어그램:
사용자 애플리케이션/도구
↓ (API Key 사용)
sub2api 게이트웨이 (Docker 배포)
↓ (지능형 스케줄링)
계정 풀: Plus 계정 1, Plus 계정 2, Plus 계정 3...
↓
Claude/Codex 공식 API전체 시스템은 Docker Compose를 사용하여 단일 명령으로 배포되며, 백엔드 서비스, PostgreSQL 데이터베이스 및 Redis 캐시를 포함합니다.
비용 및 사전 요구 사항#
이 솔루션은 "무료"가 아니지만, 전체 투자 비용은 매우 관리하기 쉽습니다:
- 해외 VPS
- 권장: 중국에서 지연 시간이 낮고 안정적인 액세스를 위해 싱가포르 노드.
- 알리바바 클라우드/텐센트 클라우드의 경량 서버로 월 약 30위안이면 충분합니다.
- 여러 Codex Plus 계정
- 수량은 사용 강도에 따라 다릅니다. 테스트용으로 2개부터 시작하여 필요에 따라 추가하는 것이 좋습니다.
- ⚠️ 중요 참고 사항: 계정 자체를 구매하는 것이 아니라, "Business 팀에 초대"되는 서비스 비용을 지불하는 것입니다. OpenAI에 이미 등록된 이메일 주소를 제공해야 합니다. 판매자가 귀하의 계정을 자신의 Business 팀에 초대하여 Codex 5.3에 액세스할 수 있도록 합니다.
- Xianyu(셴위)에서의 가격은 일반적으로 계정당 약 10위안입니다(월별 청구).
- 도메인 이름 (권장)
- ⚠️ 중요: IP를 통한 직접 액세스는 프론트엔드 JS 파일 로드에 실패할 수 있습니다. 도메인 이름을 바인딩하는 것을 강력히 권장합니다.
- 알리바바 클라우드나 텐센트 클라우드와 같은 플랫폼에서 도메인 이름을 구매할 수 있습니다. 저렴한 것으로 충분합니다.
배포 단계#
사전 준비#
-
Docker 및 Docker Compose 설치서버에 Docker와 Docker Compose V2가 설치되어 있는지 확인하세요.
-
1Panel 설치 (권장)1Panel은 오픈 소스 Linux 서버 운영 및 유지 관리 패널입니다. Docker 컨테이너 관리, 리버스 프록시 구성, 도메인 이름 바인딩 등을 용이하게 합니다. 특히 도메인 이름 액세스가 필요한 시나리오에서 적극 권장됩니다.설치 명령어:
bash bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"설치 단계:- 언어 선택 (중국어/영어).
- 기본 구성을 사용하려면 계속 Enter 키를 누릅니다.
- 중요: 설치 후 표시되는 다음 정보를 기억하세요:
- 보안 진입점
- 패널 사용자 이름
- 패널 비밀번호
- 외부 액세스 주소 (예:
http://YOUR_SERVER_IP:24045/security_entry)

- 브라우저에서 외부 주소에 접속하고 사용자 이름과 비밀번호로 로그인합니다.
패널에 접속할 수 없는 경우:서버 방화벽에서 포트가 열려 있지 않을 가능성이 높습니다. 1Panel은 기본적으로 포트 24045를 사용합니다. 클라우드 서버의 보안 그룹에 인바운드 규칙을 추가하여 이 포트를 열어야 합니다.
1Panel의 역할:- Docker 컨테이너를 시각적으로 관리합니다.
- Nginx 리버스 프록시를 구성하고 도메인 이름을 바인딩합니다.
- SSL 인증서(Let's Encrypt)를 자동으로 신청하고 갱신합니다.
- 서버 리소스 사용량을 모니터링합니다.
설치 후sub2api배포를 진행할 수 있습니다.
sub2api 배포#
sub2api는 두 개의 docker-compose 구성 파일을 제공합니다:docker-compose.local.yml: 데이터가 로컬 디렉토리에 저장되어 백업 및 마이그레이션이 더 쉽습니다 (권장).docker-compose.yml: 데이터가 Docker 명명된 볼륨에 저장되어 간단한 시나리오에 적합합니다.
이 튜토리얼은 배포를 위해
docker-compose.local.yml을 사용합니다.Docker Compose 배포 단계#
1단계: 프로젝트 디렉토리 생성
mkdir -p ~/sub2api && cd ~/sub2api2단계: docker-compose 구성 파일 다운로드
wget https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-compose.local.yml또는
curl 사용:curl -o docker-compose.local.yml https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-compose.local.yml3단계:
.env 구성 파일 생성cat > .env << 'EOF'
# 데이터베이스 구성
POSTGRES_USER=sub2api
POSTGRES_PASSWORD=your_secure_db_password_here
POSTGRES_DB=sub2api
# Redis 구성
REDIS_PASSWORD=your_secure_redis_password_here
# 애플리케이션 구성
JWT_SECRET=your_jwt_secret_here_min_32_chars
ADMIN_PASSWORD=your_admin_password_here
# 서비스 포트 (선택 사항, 기본값 8080)
APP_PORT=8080
EOF4단계: 보안 랜덤 키 생성
⚠️ 중요: 강력한 비밀번호를 사용해야 합니다! 다음 명령어를 사용하여 생성할 수 있습니다:
# JWT_SECRET 생성 (최소 32자)
openssl rand -base64 32# ADMIN_PASSWORD 생성
openssl rand -base64 16생성된 키를
.env 파일의 해당 위치에 입력하거나, 다음 명령어를 사용하여 자동으로 추가합니다 (참고: 이전 값을 덮어씁니다):sed -i "s|your_jwt_secret_here_min_32_chars|$(openssl rand -hex 32)|" .env
sed -i "s|your_admin_password_here|$(openssl rand -hex 16)|" .env
sed -i "s|your_secure_db_password_here|$(openssl rand -hex 16)|" .env
sed -i "s|your_secure_redis_password_here|$(openssl rand -hex 16)|" .env5단계: 서비스 시작
docker compose -f docker-compose.local.yml up -d
6단계: 서비스 상태 확인
docker compose -f docker-compose.local.yml ps세 개의 컨테이너가 모두 Up 상태인 것을 확인할 수 있습니다:
- sub2api (메인 서비스)
- postgres (데이터베이스)
- redis (캐시)

7단계: 관리자 비밀번호 확인
.env 파일에서 관리자 비밀번호를 확인합니다:cat .env | grep ADMIN_PASSWORD또는 전체 구성을 확인합니다:
cat .env
도메인 액세스 구성 (권장)#
⚠️ 중요: 직접 IP 액세스는 프론트엔드 JS 파일 로딩에 실패할 수 있습니다. 도메인 액세스 구성을 강력히 권장합니다.
1단계: 1Panel 앱 스토어 동기화
1Panel을 처음 사용하는 경우 앱 스토어를 원격으로 동기화해야 합니다.

2단계: OpenResty 설치
앱 스토어에서 OpenResty(Nginx의 향상된 버전)를 검색하여 설치합니다. 설치를 클릭하고 기본 구성을 사용합니다.
3단계: 리버스 프록시 웹사이트 생성
- 1Panel에서 "웹사이트""웹사이트 생성" → "리버스 프록시"를 선택합니다.
- 구성을 입력합니다.
- 메인 도메인: 도메인 입력 (예: sub2api.yourdomain.com)
- 프록시 주소:
127.0.0.1:8080 - 다른 옵션은 기본값으로 유지
- 확인을 클릭하여 생성합니다.

4단계: DNS 레코드 구성
도메인 등록 기관 콘솔(예: 알리바바 클라우드, 텐센트 클라우드, Cloudflare)에서 A 레코드를 추가합니다.
- 레코드 유형: A
- 호스트 레코드: sub2api (또는 원하는 서브도메인)
- 레코드 값: 서버의 공인 IP
- TTL: 기본값 (보통 600초)

5단계: 액세스 확인
DNS 전파(보통 1~10분)를 기다린 후, 브라우저에서 도메인(예: http://sub2api.yourdomain.com)에 접속하여 페이지가 올바르게 표시되는지 확인합니다.

첫 로그인#
브라우저에서 도메인(예: https://sub2api.yourdomain.com) 또는 http://YOUR_SERVER_IP:8080 (도메인이 구성되지 않은 경우)에 접속합니다.

관리자 계정으로 로그인합니다.
- 이메일:
admin@sub2api.local - 비밀번호:
.env파일에 설정된ADMIN_PASSWORD
비밀번호를 잊어버린 경우
.env 파일을 확인합니다.cat ~/sub2api/.env | grep ADMIN_PASSWORD계정 풀 구성#
1. 계정 그룹 생성#
계정을 추가하기 전에, 다양한 소스의 계정을 더 잘 관리하고 스케줄링하기 위해 그룹을 생성하는 것이 좋습니다.
관리 패널에서 "그룹" → "새 그룹 생성"을 클릭합니다.

그룹 정보를 입력합니다.
- 그룹 이름: 그룹의 이름 (예: "Codex 계정 풀")
- 플랫폼: 플랫폼 유형 선택
- Codex Plus 계정의 경우 OpenAI 선택
- 공식 Claude 계정의 경우 Claude 선택
- Antigravity 서비스의 경우 Antigravity 선택
- 설명: 그룹 설명 (선택 사항)

2. Codex Plus 계정 추가#
그룹을 생성한 후 "계정" → "계정 추가"를 클릭합니다.

계정 정보를 입력합니다.
- 계정 유형: 계정 유형에 따라 선택
- Codex Plus 계정: OpenAI 선택
- 공식 Claude 계정: Claude 선택
- Antigravity 서비스: Antigravity 선택
- 세션 키: 계정의 Session Token 입력
- 계정 이름: 계정을 식별할 수 있는 이름 지정 (예: "Codex Plus 계정 1")
- 그룹: 방금 생성한 그룹 선택 (예: "Codex 계정 풀")
- 가중치: 숫자가 높을수록 스케줄링 확률이 높아짐 (기본값 1로 충분)
Session Token을 얻는 방법:
- 인증 링크를 복사하여 새 탭에서 엽니다.
- 플랫폼에 로그인하면 인증 페이지로 리디렉션됩니다.
- 인증을 클릭하면 localhost 주소로 리디렉션됩니다.
- 전체 localhost 링크를 복사하여 붙여넣습니다.

위 단계를 반복하여 모든 Plus 계정을 추가합니다.

3. API 키 생성#
"API 키" → "새 키 생성"을 클릭합니다.
구성 옵션:
- 키 이름: API 키의 이름 (예: "내 개발 환경")
- 속도 제한: 속도 제한 (선택 사항)
- 할당량: 할당량 제한 (선택 사항)
- 계정 그룹: 이전에 생성한 그룹 선택
생성 후 API 키가 생성됩니다.

4. 계정 충전 (사용 코드 사용)#
API 키를 생성한 후 API를 사용하려면 충전이 필요합니다. sub2api는 할당량 관리를 위해 사용 코드 시스템을 사용합니다.


1단계: 사용 코드 생성
- 관리 패널에서 "사용 코드"를 클릭합니다.
- 사용 코드 정보를 입력합니다.
- 금액: 충전 금액 (내부 청구를 위한 가상 할당량)
- 만료일: 사용 코드 유효 기간 (선택 사항)
- 최대 사용 횟수: 최대 사용 횟수 (기본값 1)
- 생성을 클릭하면 시스템이 사용 코드를 생성합니다.
2단계: 사용 코드로 충전
- 관리 패널에서 오른쪽 상단의 사용자 메뉴"사용"을 클릭합니다.
- 생성된 사용 코드를 입력합니다.
- "사용"을 클릭하여 충전을 확인합니다.
- 충전이 완료되면 계정 잔액이 증가하고 API 키를 정상적으로 사용할 수 있습니다.
참고 사항:
- 사용 코드 시스템은 주로 카풀 시나리오를 위한 것입니다. 관리자가 코드를 생성하여 다른 사용자에게 배포할 수 있습니다.
- 개인 사용의 경우 큰 금액의 코드를 생성하여 한 번에 계정을 충전하세요.
- 충전 금액은 가상이며 실제 통화 거래를 포함하지 않습니다. 내부 할당량 관리에 사용됩니다.
코딩 에이전트에서 API 사용#
구성 후 다양한 AI 코딩 도구에서 sub2api가 제공하는 API를 사용할 수 있습니다.
방법 1: cc-switch를 사용한 빠른 구성 (권장)#
cc-switch는 오픈 소스 구성 관리 도구로, 각 코딩 에이전트의 구성 파일을 수동으로 수정하지 않고도 다양한 AI 서비스 제공자 구성을 빠르게 전환할 수 있습니다.프로젝트 URL: https://github.com/farion1231/cc-switch
중요 참고 사항:
- API 키는 계정 그룹에 바인딩됩니다. 다른 플랫폼은 해당 API 키를 생성해야 합니다.
- 예: Codex, Claude, Gemini는 세 개의 별도 API 키가 필요합니다 (각각 해당 계정 그룹과 연결).
- 통합 관리를 위해 API 키 생성 시 이름을 사용자 정의하고 동일한 키 값을 사용할 수 있습니다 (단, 키가 모든 플랫폼의 계정 그룹과 연결되어 있는지 확인).
구성 예시:
- Claude 구성

- Codex 구성

이미지에 표시된 형식에 따라 도메인과 API 키를 입력합니다.
방법 2: 수동 구성 파일 수정#
도구가
cc-switch를 지원하지 않는 경우 구성 파일을 수동으로 수정할 수 있습니다.OpenCode 구성
OpenCode는 세 플랫폼에 대한 baseURL과 API 키를 구성해야 합니다.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "https://sub2api.yourdomain.com/v1",
"apiKey": "your_claude_api_key"
}
},
"google": {
"options": {
"baseURL": "https://sub2api.yourdomain.com/v1beta",
"apiKey": "your_gemini_api_key"
}
},
"openai": {
"name": "OpenAI",
"options": {
"baseURL": "https://sub2api.yourdomain.com/v1",
"apiKey": "your_codex_api_key"
}
}
}
}구성 참고 사항:
sub2api.yourdomain.com을 실제 도메인으로 바꾸세요.your_api_key를 sub2api 관리 패널에서 생성한 API 키로 바꾸세요.- 다른 플랫폼에 해당하는 API 엔드포인트를 사용하세요 (Claude와 OpenAI는
/v1, Google은/v1beta사용).
사용 효과 및 고려사항#
배포 후 다음과 같은 이점을 얻을 수 있습니다:
- 자동 전환: 계정이 속도 제한에 도달하면 시스템이 자동으로 다른 사용 가능한 계정으로 전환하여 작업 흐름이 중단되지 않습니다.
- 사용량 모니터링: 관리 패널에서 각 계정의 실시간 사용량과 남은 할당량을 확인할 수 있습니다.
- 비용 최적화: 여러 사용자가 공유할 경우 1인당 비용이 크게 절감됩니다.

일반적인 사용 시나리오:
- 개인 대량 사용자: 일반적으로 Plus 계정 3-5개면 충분합니다.
- 2-3명 카풀: 1인당 2개 계정, 총 4-6개 계정 풀 구성.
- 소규모 팀(5명): 10-15개 계정, 1인당 평균 2-3개.
자주 묻는 문제#
1. IP를 통한 프론트엔드 JS 파일 로드 실패#
문제 설명:
Docker 컨테이너가 정상적으로 시작되었지만,
http://YOUR_SERVER_IP:8080으로 접속 시 페이지가 제대로 표시되지 않습니다. 브라우저 콘솔에 JS 파일 로딩 실패 오류가 표시됩니다(예: index-CP0CNDtB.js 404 반환).
원인:
sub2api의 프론트엔드 리소스 경로 설정 문제입니다. 직접 IP 접속 시 정적 리소스 로딩이 실패할 수 있습니다.
해결 방법:
방법 1: 도메인 연결 (권장)
- 도메인을 준비하고 A 레코드를 서버 IP로 설정합니다.
- 1Panel에서 리버스 프록시를 구성합니다:
- 1Panel에서 "웹사이트""웹사이트 생성" → "리버스 프록시"로 이동
- 도메인: 도메인 입력 (예: sub2api.yourdomain.com)
- 프록시 주소:
http://127.0.0.1:8080 - HTTPS 활성화 (선택 사항)
- 도메인으로 접속:
https://sub2api.yourdomain.com
방법 2: docker-compose 설정 수정 (임시 해결책)
아직 도메인이 없다면
docker-compose.local.yml에 환경 변수를 추가해 보세요:environment:
- BASE_URL=http://YOUR_SERVER_IP:8080그런 다음 서비스를 재시작합니다:
docker compose -f docker-compose.local.yml down
docker compose -f docker-compose.local.yml up -d참고: 도메인 접속을 강력히 권장합니다. JS 로딩 문제를 해결할 뿐만 아니라 HTTPS를 구성하여 보안을 강화할 수 있습니다.
요약#
sub2api + 다중 계정 풀 솔루션을 사용하면 비교적 낮은 비용($30 VPS + 여러 구독 계정)으로 사실상 무제한의 Claude/Codex 사용이 가능합니다. 배포 과정에 어느 정도 기술적 지식이 필요하지만, 한 번 설정하면 사용자 경험은 공식 API 사용과 거의 동일합니다.
이 솔루션은 특히 다음과 같은 경우에 적합합니다:
- 개인 대량 사용: 단일 계정 속도 제한에서 해방됩니다. 다중 계정 자동 전환으로 AI 코딩 작업 흐름이 중단되지 않습니다.
- 친구와 카풀: 여러 명이 비용을 분담합니다. 각자 매우 적은 비용으로 충분히 사용할 수 있습니다. 코드 교환 시스템으로 유연하게 할당량을 관리할 수 있습니다.
- 팀 협업: 소규모 개발 팀의 경우 이 솔루션이 구독 계정의 가치를 극대화합니다. 각자 개별적으로 Plus 계정을 구매하는 것보다 중앙 관리형 계정 풀이 더 저렴할 뿐만 아니라 실제 사용량에 따라 동적으로 리소스를 할당할 수 있어, 계정이 유휴 상태가 되거나 다른 사람이 속도 제한에 자주 걸리는 문제를 방지합니다. 팀 관리자는 사용량을 모니터링하고 할당량 한도를 설정하여 공정한 리소스 분배를 보장할 수 있습니다.
AI 코딩을 많이 사용하는 개인 사용자이거나 안정적이고 비용 효율적인 AI 기능이 필요한 팀이라면 이 솔루션을 시도해 볼 가치가 있습니다.
관련 링크:
- sub2api GitHub: https://github.com/Wei-Shaw/sub2api
- 온라인 데모: https://demo.sub2api.org/
- 1Panel 웹사이트: https://1panel.cn/
스레드#
최근 새 글입니다. 도움이 되셨다면 좋아요를 눌러주세요 — 저에게 정말 큰 힘이 됩니다, 감사합니다! 🫡#
https://x.com/mkdir700/status/2030636031943618756
https://t.co/8pdoHu2Int
작성자: mkdev | 저는 칭부량을 좋아합니다 (@mkdir700) URL: https://x.com/mkdir700/status/2030299845739811086https://t.co/KODdmd8r7M