홈으로 돌아가기

OpenClaw에서 Anthropic 차단 우회: 가이드

기사가 프록시 체인을 통해 OpenClaw를 위한 Anthropic 서버 차단 우회 분석. 도구 이름 subagents 및 session_status에 의해 감지 발생. CLIProxyAPI 및 Node.js replace-proxy 설정으로 Extra Usage 없이 Pro 구독 사용.

타사 클라이언트에서 Anthropic 감지 우회 방법
Advertisement 728x90

Anthropic 서버 차단 우회: OpenClaw 프록시 체인 기술 분석

Anthropic이 API 요청 출처에 대한 서버 측 검사를 도입했습니다. 공식 Claude Code와 Cowork 클라이언트 요청은 Pro 구독으로 처리되지만, OpenClaw 같은 서드파티 도구는 토큰당 과금되는 Extra Usage 모드로 전환되어 비용이 크게 증가합니다. 헤더 위조만으로는 안 됩니다—서버가 요청 본문을 깊이 분석합니다.

목표: 공식 클라이언트와 구분되지 않게 요청을 보내고, OpenClaw의 17개 도구 기능을 그대로 유지합니다.

요청 구조 분석

Anthropic API 요청은 시스템 프롬프트, 메시지 히스토리, 메타데이터, 도구 목록을 포함한 JSON 페이로드입니다. 테스트 결과:

Google AdInline article slot
  • 시스템 프롬프트와 히스토리는 문제없음.
  • 도구 추가 시 탐지됨.

도구를 그룹별로 분석한 결과 문제 원인을 특정했습니다:

  • read, edit, write — 통과.
  • exec, process — 통과.
  • sessions_list, sessions_history, sessions_send — 통과.
  • web_search, web_fetch — 통과.
  • image, memory_search, memory_get — 통과.
  • subagents — 차단.
  • session_status — 차단.

Anthropic 서버는 Claude Code에 없는 도구 이름을 스캔합니다. 17개 도구 중 단 2개만 있어도 Extra Usage가 발동합니다.

프록시 체인 아키텍처

해결책: OpenClaw와 api.anthropic.com 사이에 2단계 프록시 설정.

Google AdInline article slot
  • CLIProxyAPI (Go, GitHub 23k 스타): Claude Code 헤더(user-agent, billing header, client_id) 모방. OAuth 인증—프록시가 URL 생성, 브라우저로 로그인 후 refresh_token 로컬 저장.
  • Replace-proxy (Node.js, 133줄, 의존성 없음): 양방향 JSON 가로채기.

- 발신: subagentssub_dispatch, session_statuscheck_status, OpenClawAssistant.

- 수신: 스트리밍을 위해 줄 단위 역변환.

체인: OpenClaw (포트 8318) → replace-proxy → CLIProxyAPI (8317) → api.anthropic.com.

Google AdInline article slot

Replace-proxy는 systemd 서비스로 자동 재시작 설정.

Replace-Proxy 설정

프록시 코드는 간결: HTTP 서버가 본문 파싱, 정규식 치환, 스트리밍 이벤트 버퍼링.

// 발신 요청 처리 샘플

const replaceMap = {
  'subagents': 'sub_dispatch',
  'session_status': 'check_status',
  'OpenClaw': 'Assistant'
};
// JSON.parse(body).tools.forEach(tool => {
//   if (replaceMap[tool.name]) tool.name = replaceMap[tool.name];
// });
// 응답도 유사

서버는 localhost:8318에서 수신, CLIProxyAPI:8317로 전달.

OpenClaw 설정

openclaw.json에 프로바이더 추가:

{
  "models": {
    "providers": {
      "custom-proxy": {
        "baseUrl": "http://localhost:8318",
        "apiKey": "<CLIProxyAPI의 api-key>",
        "api": "anthropic-messages",
        "models": [
          {"id": "claude-opus-4-6", "contextWindow": 1000000, "maxTokens": 16384},
          {"id": "claude-sonnet-4-6", "contextWindow": 200000, "maxTokens": 16384}
        ]
      }
    }
  }
}

기본 설정:

openclaw config set "agents.defaults.model.primary" "custom-proxy/claude-opus-4-6"

OpenClaw 재시작. 채팅 내 모델 전환 가능.

주요 요점

  • 도구 기반 탐지: Anthropic이 JSON 본문의 도구 이름을 검사. OpenClaw 고유 도구(subagents, session_status)가 Extra Usage 유발.
  • 2단계 프록시: CLIProxyAPI로 헤더 숨김, replace-proxy로 내용 세척.
  • OAuth 인증: CLIProxyAPI가 토큰 자동 갱신; refresh_token 만료 시 재인증.
  • 스트리밍 지원: Replace-proxy가 실시간 치환 위해 이벤트 버퍼링.
  • 위험: Anthropic ToS 위반. 계정 정지 가능; 탐지 방식 진화(프롬프트 패턴, 구조) 가능.

제한사항 및 모니터링

  • 프로덕션 불가: 개인 용도로 본인 책임.
  • 모니터링: 프록시 로그로 치환 오류나 신규 탐지 확인.
  • 확장성: Systemd로 안정 유지, Anthropic 업데이트 시 replace-map 조정 필요.

테스트 결과 Opus 4.6과 Sonnet 4.6에서 Extra Usage 없이 동작 확인.

— Editorial Team

Advertisement 728x90

다음 읽기