연결 오류
이 페이지는 Elftia에서 발생하는 다양한 네트워크 연결 문제 해결에 중점을 둡니다. LLM API 호출 오류, 프록시 관련 오류, SSL/TLS 문제, MCP 연결 실패, Channel 연결 이상을 다룹니다.
LLM API HTTP 상태 코드
LLM API 호출이 오류를 반환할 때, HTTP 상태 코드가 가장 중요한 문제 해결 단서입니다. 각 상태 코드의 의미와 해결 방법은 다음과 같습니다:
401 Unauthorized
의미: API Key가 유효하지 않거나 제공되지 않았습니다.
일반적인 원인:
- API Key에 여분의 공백이나 줄바꿈이 포함됨
- API Key가 취소되었거나 만료됨
- API Key 형식이 잘못됨 (예: OpenAI 키는
sk-로 시작해야 함) - 잘못된 공급자의 키를 사용함
해결 단계:
- 설정 → 공급자 설정으로 이동하여 API Key를 다시 확인합니다.
- 전체 키를 복사하여 입력 상자의 기존 값을 교체합니다.
- 공급자 콘솔에서 키가 여전히 유효한지 확인합니다.
- API Key 풀을 사용하는 경우, 풀 내에 유효하지 않은 키가 있는지 확인합니다 (비활성화된 키는 회색으로 표시됨).
풀 내의 API Key가 401을 반환하면 해당 키는 자동으로 비활성화되며, 시스템은 풀 내의 다른 사용 가능한 키로 자동 전환합니다.
403 Forbidden
의미: 인증은 성공했지만 권한이 부족합니다.
일반적인 원인:
- 계정 잔액 부족 또는 결제 수단 미연결
- API Key가 요청한 모델에 대한 액세스 권한이 없음
- IP 주소 또는 지역이 공급자에 의해 제한됨
- 조직/프로젝트 권한 제한
해결 단계:
- 공급자 콘솔에 로그인하여 계정 잔액과 결제 상태를 확인합니다.
- API Key가 선택한 모델에 대한 액세스 권한이 있는지 확인합니다 (일부 고급 모델은 특별 권한 필요).
- 프록시를 사용하는 경우, 다른 지역의 프록시 노드로 전환해 봅니다.
- 공급자 콘솔에서 조직 및 프로젝트 설정을 확인합니다.
429 Too Many Requests
의미: 요청 빈도가 너무 높아 속도 제한이 발동되었습니다.
일반적인 원인:
- 짧은 시간 내에 너무 많은 요청을 전송함
- 계정의 속도 할당량이 낮음 (무료 또는 저등급 계정)
- 여러 애플리케이션이 동일한 API Key를 공유함
해결 단계:
- 잠시 기다렸다가 재시도합니다. Elftia는 쿨다운 알림을 표시합니다.
- 자주 발생한다면 공급자 계정의 등급을 업그레이드하는 것을 고려합니다.
- 여러 키를 사용하여 요청을 분산하는 API Key 풀을 구성합니다.
Elftia의 자동 처리:
- 429를 만나면 현재 키는 쿨다운 기간에 진입합니다 (60초부터 시작하여 지수 백오프로 최대 15분).
- API Key 풀이 구성된 경우, 시스템은 풀 내의 다른 사용 가능한 키로 자동 전환하여 재시도합니다.
- 쿨다운 기간이 끝나면 키가 자동으로 복구됩니다.
500 Internal Server Error
의미: 공급자 서버 내부 오류.
해결 단계:
- 이는 공급자 측 문제로, 일반적으로 자동으로 해결됩니다. 몇 분 기다렸다가 재시도합니다.
- 공급자의 상태 페이지에서 알려진 장애가 있는지 확인합니다.
- 계속 발생하면 다른 모델 또는 공급자로 전환해 봅니다.
502 Bad Gateway
의미: 공급자의 게이트웨이/로드 밸런서 오류.
해결 단계:
- 일반적으로 일시적인 문제입니다; 1-5분 기다렸다가 재시도합니다.
- 공급자의 상태 페이지를 확인합니다.
- 사용자 정의 Base URL (서드파티 릴레이)을 사용하는 경우, 릴레이 서비스가 정상 작동 중인지 확인합니다.
503 Service Unavailable
의미: 공급자 서비스가 일시적으로 사용 불가능합니다 (유지보수 또는 과부하).
해결 단계:
- 공급자가 서비스를 복구할 때까지 기다립니다.
- 백업 공급자로 전환하여 작업을 계속합니다.
- 복구 시간을 알기 위해 공급자의 상태 페이지와 소셜 미디어를 확인합니다.
529 Overloaded
의미: 공급자 서버가 과부하 상태입니다 (Anthropic 고유의 상태 코드).
해결 단계:
- 잠시 기다렸다가 재시도합니다.
- API Key 풀이 구성된 경우, 시스템은 자동으로 키를 전환하여 재시도합니다.
- 서버 부하를 줄이기 위해 더 작은 모델을 사용해 봅니다 (예: Claude Opus 대신 Claude Haiku).
Elftia의 자동 처리: 429와 동일하게 쿨다운 및 자동 키 전환 메커니즘이 발동됩니다.
프록시 관련 오류
ECONNREFUSED
의미: 연결이 거부되었습니다. 일반적으로 프록시 서비스가 실행 중이지 않은 경우입니다.
Error: connect ECONNREFUSED 127.0.0.1:7890
해결 단계:
- 프록시 클라이언트 (Clash, V2Ray, Shadowsocks 등)가 실행 중인지 확인합니다.
- 프록시의 리스닝 포트가 Elftia에 설정된 포트와 일치하는지 확인합니다.
- 프록시가 올바른 주소에서 리스닝하는지 확인합니다 (
127.0.0.1vs0.0.0.0). - 프록시가 필요하지 않으면 설정 → 일반 → 프록시에서 "프록시 없음"으로 전환합니다.
ETIMEDOUT
의미: 연결 시간 초과; 프록시가 대상 서버에 도달하지 못합니다.
Error: connect ETIMEDOUT api.openai.com:443
해결 단계:
- 프록시의 업스트림 연결이 정상인지 확인합니다 (프록시가 대상 도메인에 액세스할 수 있는지).
- 프록시의 라우팅 규칙에 LLM API 도메인이 포함되어 있는지 확인합니다.
- 프록시 노드를 전환해 봅니다.
- 방화벽 규칙을 확인합니다.
ECONNRESET
의미: 원격에 의해 연결이 재설정되었습니다. 일반적으로 스트리밍 도중 프록시가 끊어지는 경우입니다.
해결 단계:
- 프록시 연결의 안정성을 확인합니다.
- 프록시의 타임아웃 설정을 늘립니다.
- 장시간 스트리밍 요청(예: 대용량 코드 생성)의 경우, 프록시에 연결 시간 제한이 있을 수 있으므로 조정이 필요합니다.
SSL/TLS 오류
UNABLE_TO_VERIFY_LEAF_SIGNATURE
의미: 서버 인증서를 확인할 수 없습니다. 일반적으로 자체 서명된 인증서인 경우입니다.
일반적인 시나리오:
- 기업 프록시가 HTTPS 검사를 위해 자체 서명 CA 인증서를 사용함
- 자체 구축한 LLM API 릴레이 서비스가 자체 서명 인증서를 사용함
해결 단계:
- 프록시/릴레이 서비스의 인증서를 설치하고 신뢰합니다.
- Windows: 인증서 파일 더블클릭 → 인증서 설치 → 로컬 컴퓨터 → 신뢰할 수 있는 루트 인증 기관.
- macOS: 인증서 파일 더블클릭 → 키체인에 추가 → 항상 신뢰.
- Linux:
/usr/local/share/ca-certificates/에 복사 →sudo update-ca-certificates실행.
- 인증서 변경 사항이 적용되도록 Elftia를 재시작합니다.
CERT_HAS_EXPIRED
의미: 서버의 SSL 인증서가 만료되었습니다.
해결 단계:
- 자체 구축 서비스의 경우 SSL 인증서를 업데이트합니다.
- 공개 서비스의 경우 일반적으로 일시적인 문제입니다; 나중에 재시도합니다.
- 시스템 시간이 올바른지 확인합니다 (잘못된 시스템 시간으로 인해 유효한 인증서가 만료된 것으로 표시될 수 있음).
ERR_TLS_CERT_ALTNAME_INVALID
의미: 인증서의 도메인이 실제 액세스 도메인과 일치하지 않습니다.
해결 단계:
- 공급자의 Base URL 철자가 올바른지 확인합니다.
- 사용자 정의 엔드포인트를 사용하는 경우, 서버 인증서가 사용 중인 도메인을 포함하는지 확인합니다.
MCP 연결 오류
stdio 모드 — ENOENT
의미: MCP 서버 시작 명령을 찾을 수 없습니다.
Error: spawn npx ENOENT
해결 단계:
command필드에 지정된 프로그램이 설치되어 있는지 확인합니다:npx/node: Node.js 설치가 필요합니다.uvx/python: Python 및 uv 설치가 필요합니다.
- 터미널에서 해당 명령을 수동으로 실행하여 실행 가능한지 확인합니다.
- 설정 → 일반 → 환경에서 도구의 설치 상태를 확인합니다.
- 도구가 설치되어 있지만 여전히 오류가 발생하면, PATH 환경 변수를 새로 고침하기 위해 Elftia를 재시작해야 할 수 있습니다.
stdio 모드 — 프로세스가 시작 직후 종료됨
증상: MCP 서버가 잠깐 연결되었다가 끊어집니다.
가능한 원인:
- 필요한 npm/pip 의존성 누락
- 잘못된 시작 매개변수
- 필요한 환경 변수 누락
해결 단계:
- 터미널에서 MCP 서버 명령을 수동으로 실행하여 오류 출력을 확인합니다:
npx -y @modelcontextprotocol/server-filesystem /path
- 누락된 의존성 패키지를 확인하고 수동으로 설치합니다:
npm install -g @modelcontextprotocol/server-filesystem
- MCP 설정의
env에 필요한 모든 환경 변수가 포함되어 있는지 확인합니다.
SSE/HTTP 모드 — 연결 타임아웃
증상: 원격 MCP 서버 연결 시간 초과.
해결 단계:
- MCP 서버가 실행 중이고 사용자 네트워크에서 액세스 가능한지 확인합니다.
- 브라우저에서 MCP 서버의 URL에 액세스하여 연결을 확인합니다.
- 방화벽이 MCP 서버의 포트에 대한 액세스를 허용하는지 확인합니다.
- 프록시를 사용하는 경우, 프록시 규칙이 MCP 서버의 주소에 대한 액세스를 허용하는지 확인합니다.
SSE 모드 — 연결이 자주 끊어짐
증상: SSE 연결 수립 후 자주 끊어지고 재연결됩니다.
가능한 원인:
- 불안정한 네트워크
- 프록시 또는 로드 밸런서의 연결 타임아웃 설정이 너무 짧음
- MCP 서버 자체가 불안정함
해결 단계:
- 네트워크 연결의 안정성을 확인합니다.
- 프록시 또는 역방향 프록시를 사용하는 경우, 연결 타임아웃 및 유휴 타임아웃 설정을 늘립니다.
- MCP 서버 관리자에게 연락하여 서비스 상태를 확인합니다.
Channel 연결 오류
Discord Bot 연결 실패
가능한 원인:
- Bot Token이 유효하지 않거나 만료됨
- Bot이 대상 서버에 초대되지 않음
- Bot에 필요한 권한이 없음
- Discord API 속도 제한
해결 단계:
- Discord Developer Portal에서 Bot Token이 올바른지 확인합니다.
- Bot이 대상 Discord 서버에 발언 권한과 함께 초대되었는지 확인합니다.
- Bot의 Privileged Gateway Intents가 활성화되어 있는지 확인합니다.
Telegram Bot 연결 실패
가능한 원인:
- Bot Token이 유효하지 않음
- 네트워크가 Telegram API (
api.telegram.org)에 액세스할 수 없음 - 다른 클라이언트가 동일한 Bot Token을 사용 중
해결 단계:
- @BotFather를 통해 Bot Token이 올바른지 확인합니다.
- 사용자 네트워크가
api.telegram.org에 액세스할 수 있는지 확인합니다 (프록시가 필요할 수 있음). - 다른 애플리케이션이 동일한 Bot Token을 사용하지 않는지 확인합니다.
속도 제한 및 백오프 메커니즘
Elftia에는 지능적인 속도 제한 처리 기능이 내장되어 있습니다:
API Key 풀 자동 전환
단일 키가 429/529 오류를 만날 때:
- 현재 키가 쿨다운 기간에 진입합니다.
- 시스템은 즉시 풀에서 다음 사용 가능한 키를 시도합니다.
- 요청이 성공하면 사용자는 거의 인지하지 못합니다.
- 쿨다운은 지수 백오프를 사용합니다: 60초 → 120초 → 240초 → ... → 최대 15분.
- 쿨다운이 끝나면 키가 자동으로 복구됩니다.
세션 선호도
LLM 공급자의 프롬프트 캐시 효율성을 유지하기 위해, 동일한 채팅 세션은 동일한 API Key를 사용하려고 시도합니다:
- 첫 번째 요청은 가중치 라운드로빈으로 키를 선택합니다.
- 이후 요청은 동일한 키를 우선적으로 사용합니다.
- 바인딩된 키를 사용할 수 없는 경우(쿨다운 중이거나 비활성화됨)에만 전환합니다.
영구 실패 처리
키가 401/403을 반환하면 해당 키는 영구적으로 무효입니다:
- 해당 키는 자동으로 비활성화됩니다 (사용 불가로 표시).
- 시스템이 다른 키로 전환합니다.
- 공급자 설정의 API Key 풀에서 비활성화된 키를 확인할 수 있습니다.
방화벽 및 백신 소프트웨어
방화벽이 아웃바운드 연결을 차단하는 경우
증상: 모든 LLM API 호출이 타임아웃되거나 거부됩니다.
해결 단계:
- 방화벽의 허용 목록에 Elftia를 추가합니다.
- Windows Defender 방화벽: 제어판 → Windows Defender 방화벽 → 앱이 방화벽을 통과하도록 허용 → Elftia 추가.
- macOS: 시스템 환경설정 → 보안 및 개인정보 보호 → 방화벽 → Elftia 허용.
- 기업 방화벽을 사용하는 경우 IT 관리자에게 다음 도메인의 아웃바운드 액세스를 열도록 요청합니다:
api.openai.com(OpenAI)api.anthropic.com(Anthropic)generativelanguage.googleapis.com(Google Gemini)api.deepseek.com(DeepSeek)
백신 소프트웨어 오탐
증상: 백신 소프트웨어가 Elftia의 실행 또는 네트워크 연결을 차단합니다.
해결 단계:
- 백신 소프트웨어의 제외/화이트리스트에 Elftia의 설치 디렉토리를 추가합니다.
- 일반적으로 제외해야 할 경로:
- Windows:
C:\Users\<사용자명>\AppData\Local\Elftia\ - macOS:
/Applications/Elftia.app
- Windows:
네트워크 연결 빠른 확인
연결 문제가 발생하면 다음 순서로 문제를 해결합니다:
- 기본 네트워크: 브라우저에서 웹 페이지를 열어 네트워크가 작동하는지 확인합니다.
- DNS 확인:
ping api.openai.com(또는 해당 공급자 도메인)을 실행하여 도메인 확인을 확인합니다. - 포트 연결:
curl -I https://api.openai.com을 실행하여 포트 443이 액세스 가능한지 확인합니다. - 프록시 테스트: 프록시를 사용하는 경우, 터미널에서 프록시 환경 변수를 설정하고 위 명령을 재시도합니다.
- Elftia 테스트: Elftia의 공급자 설정에서 "연결 테스트"를 사용합니다.
1-4단계가 성공하지만 5단계가 실패하면, Elftia의 프록시 설정 문제일 수 있습니다; 프록시 사용을 참조하여 재설정합니다.
이 페이지가 경험하고 있는 연결 문제를 다루지 않는 경우, 진단 도구를 사용하여 진단 정보를 내보내고 커뮤니티에서 도움을 구하세요.