AI 모델 게이트웨이·개발 · · 약 14분 소요

OpenRouter API가 자꾸 타임아웃될 때: 모델 게이트웨이 도메인을 Clash(mihomo)로 분할하는 실측 (2026)

OpenRouter는 여러 모델 제공자를 하나의 게이트웨이 안에 묶어 주지만, 실제 접속 패턴은 브라우저 대시보드·결제 페이지호환 채팅 완결 API 엔드포인트가 같은 출구처럼 보이면서도 서로 다른 서브호스트와 경로 특성을 갖습니다. 메인 공용 노드 그룹이 url-test로 자주 교체되거나 특정 접미만 DIRECT로 새면 「웹에서는 모델이 보이는데 터미널 호출만 30초 걸린다」 같은 합성 증상이 나옵니다. 이 글은 모델 게이트웨이 축부터 로그로 확정한 다음, Clash 분할 규칙과 DNS, HTTP/3(QUIC) 교차 테스트를 같은 체크리스트에 두는 순서입니다. 같은 시리즈의 Cursor 개발 도메인·Claude Code 개발 플로 글과 달리, 여기서는 OpenRouter·멀티 모델 집약 API에 초점을 둡니다.

1. 왜 같은 세션처럼 보이지만 실패만 갈립니까

OpenRouter는 웹 페이지에서 제공자 카탈로그와 사용량 패널을 보여 줄 때와 개발 도구 스택 안에서 호출할 때 각각 다른 HTTP 프로파일과 하위 호스트를 밟습니다. 예를 들어 정적 에셋·분석 픽셀·계정 상태 조회처럼 브라우저 전면에서만 발생하는 호출이 채팅 완결 API와 동일한 정책 그룹에 묶여 있으면 표면 속도만 좋아 보였다가, 정작 장문 스트림이 시작될 즈음 별 노드 경로나 방화벽 조건 때문에 TCP 지연 증폭·세션 교체 비용이 크게 차이 나기도 합니다. 또한 제공자 업스트림에 비해 게이트웨이 레이어만 별도 캐시·레이트 정책을 적용하면 모델 게이트웨이 자체 타임아웃이 사용자마다 다르게 체감됩니다.

이런 환경에서 가장 많이 보는 오해는 「노드를 바꿨는데도 동일 패턴이라면 게이트웨이 버그 아닌가」라는 진단입니다. 실제 로그에서는 동일 패턴이라도 규칙 매칭이 호스트별로 다른 줄에 찍히는 경우가 많고, 간헐성은 종종 노드 교체라기보다 브라우저 보안 DNS 또는 Electron·터미널의 프록시 환경 변수 교차 때문에 나옵니다. 그래서 먼저 어떤 FQDN이 실패하는지를 명확히 적고, 해당 축만 안정 노드 세트에 두는 순서가 합리적입니다.

한 줄 정리

증상 패턴과 실패 호스트를 로그 한 줄 세트로 맞춘 뒤, OpenRouter 전용 규칙 그룹 안에서 노드 교체 변수를 줄이면 API 타임아웃 재현 속도가 빠릅니다.

2. 게이트웨이 라우팅과 원 모델 API의 차이

OpenRouter 호출 결과가 실패할 때 제공자 업스트림으로 직접 붙던 경로까지 동시에 테스트하고 싶다면, 해당 제공자 이름을 포함한 규칙 묶음이 이미 존재하는지 확인해야 합니다. 본 레포에서는 Anthropic 세부 경로가 필요할 때 Claude·Anthropic 웹 패널 또는 Claude Code 터미널 플로 글을 따르는 편이 낫습니다. OpenRouter 사용자가 자주 헷갈리는 포인트는 브라우저에서 제공자 상태 페이지를 호출했다가 곧바로 동일 제공자 이름으로 직통 API 테스트를 하는 실험 순서입니다. 두 경로 모두 라우팅 테이블이 공유되더라도, 인증 헤더·TLS 핑거프린트·지역 레이블이 달라서 실패 패턴 자체가 달라 보일 수 있습니다.

반대로 순수 게이트웨이 테스트만 하는 경우에는 Bearer 토큰이 OpenRouter 형식이라도 결과 메시지 업스트림이 여러 줄로 깨져 보입니다. 디버깅 순서에서는 응답 본문의 오류 문자열뿐 아니라, Clash 규칙 매칭 줄의 아웃바운드 이름이 동일 노드 세트에서 나오고 있는지 먼저 확인하는 게 좋습니다. 이렇게 범위를 나누면 Cursor·Gemini CLI·MCP 스택 관련 다른 글과 충돌 없이 레시피를 재사용할 수 있습니다 — 예를 들어 MCP 체인을 다룰 때는 MCP 스택 라우팅을 함께 보세요.

3. 규칙 시작점으로 넣을 호스트·접미

서비스가 바뀌면 새 서브호스트가 붙습니다. 따라서 아래 접미 목록은 초기 패치로만 사용하고 실제 실패 줄을 따라 확장해야 합니다. 대표 패턴에는 openrouter.ai 본 접미 전체와 api.openrouter.ai처럼 HTTPS JSON 엔드포인트 전면부 호스트 조합이 반복해서 등장합니다. 웹 대시보드를 열었다가 순간 간헐 끊김이 발생하면 정적 패킷 라이브러리가 불특정 호스트 이름으로 새로 만들어지므로 브라우저 개발자 도구 네트워크 탭을 병렬로 열어두세요.

결제 페이지나 외부 이니셰이터가 포함될 가능성까지 추적하려면, 스테이블코인 카드 과금과 같은 새로운 과금 채널이 붙으며 연계 도메인이 늘 수 있습니다 — 그때에는 별 카드로 카테고리를 나누고, OpenRouter 채널 전용 접미 목록에는 모델 API와 상태 통계처럼 동일 과금 라인 안의 코어 기능만 남겨 과도하게 넓은 DOMAIN-KEYWORD를 피하면 좋습니다. 키워드 규칙은 오프라인 서드파티 문자열까지 잡히기 쉬워 개발자 프록시 디버깅에서 오히려 시간을 허비하게 만드는 원인입니다.

API·워크플로

터미널·IDE 플러그인·워크플로 자동화는 HTTP/2·HTTPS 위주 패턴입니다. 업스트림이 스트림을 장시간 유지하므로 패킷 교체 간격 긴 노드에서는 중간 시간 초과처럼 보이기도 합니다.

웹 패널

페이지 초기 렌더는 다수 호스트 패치를 동시 요청합니다. 일부 호스트만 별 라우팅으로 새면 패널의 일관성이 깨져 보입니다. 전용 그룹 내에서 같은 노드 이름을 참조하는지 검토하세요.

4. mihomo(Clash Meta) 규칙 스니펫

전용 정책 그룹 이름을 예시로 🔷 OpenRouter-Gateway라고 하면 rules 상단 폭 매치 줄보다 앞에 놓입니다. 이름은 사용자 구독 구조에 따라 바꾸어도 됩니다. 패턴 순서 개념은 고급 라우팅 가이드와 같은 철학이라 병렬로 읽기 좋습니다.

rules:
  # OpenRouter gateway — narrow DOMAIN-SUFFIX anchors (extend from logs)
  - DOMAIN-SUFFIX,openrouter.ai,🔷 OpenRouter-Gateway
  - DOMAIN-SUFFIX,api.openrouter.ai,🔷 OpenRouter-Gateway
  # Payments or auth subdomains appearing in failures — add explicitly
  # - DOMAIN-SUFFIX,example-billing.cdn,🔷 OpenRouter-Gateway

  # Optional: PROCESS-NAME for local dev tools pinning (OS-specific binaries)
  # - PROCESS-NAME,cursor,🔷 OpenRouter-Gateway

  - GEOIP,PRIVATE,DIRECT
  - MATCH,🔰 Proxy

사용자 구독이 주기적으로 덮어쓰이면 패치 줄이 빠져 나갈 수 있으니 구독 머지 순서를 반드시 확인하세요.

5. DNS·nameserver-policy 정렬

개발자 프록시 환경에서 fake-ip를 쓰면 도메인 단위 라우팅이 단순해지지만 해석 결과가 브라우저 보안 DNS와 어긋나면 패턴 교착 상태가 재현되기 어렵습니다. OpenRouter처럼 엣지 기능이 활발하게 바뀌는 제공자에서는 DNS 상류 GEO 응답도 자주 교체되므로, 문제 도메인 집합에 대해 명시적인 nameserver-policy를 두는 접근을 권합니다. 상세 패턴 차이 비교가 필요하면 fake-ip·redir-host 대조 또는 Meta DoH 글 순서와 병렬로 맞춰 보세요.

# YAML fragment — tailor resolvers upchain to operator policy
dns:
  nameserver-policy:
    "+.openrouter.ai":
      - https://dns.google/dns-query

참고: 회사 또는 개인 규제에 따라 신뢰하는 DNS 상류를 바꿉니다. 예시 URL은 형식 설명 목적입니다.

6. 노드 흔들림 줄이기

OpenRouter처럼 응답 완결 시간 분산이 긴 API는 순간 속도 테스트만으로 선택한 노드가 실패를 반복 재현하게 만들 수 있습니다. 전용 그룹 안에서는 고정 선택 노드 세트나 순서 명확한 fallback 라인을 검토합니다. 라운드 로빈 지연 테스트와 패밀리 조합 패턴 설명은 url-test·fallback 참고글을 활용하면 됩니다. 요점은 테스트 스크립트의 ping 지연과 채팅 완결 지연이 항상 일치하지 않는다는 점입니다 — 실제 패킷 교체 패턴까지 보는 게 합리적입니다.

또 다른 변수는 제공자 업스트림의 지역 허브 배치입니다. 게이트웨이 레이블로 보이던 모델이 실제 패킷은 다른 지역 PoP으로 묶였다면, 노드 교체 순서 역시 새로 작성해야 하는 경우도 있습니다 — 다만 초기 디버깅에서는 OpenRouter 패널 상태와 동시에 패킷 캡처 기록을 교차 대조하면 오탐이 줄어 듭니다.

7. 브라우저·QUIC·개발자 프록시 교차 테스트

QUIC을 시도하면 UDP 443과 TCP 계열 접속 차이 때문에 동일 규칙 줄이라도 패킷이 다른 인터페이스로 빠질 수 있습니다. 문제가 브라우저 대시보드에서만 나타나면 해당 브라우저 설정에서 QUIC 임시 비활성화나 전체 시스템 TUN 상태에서의 교차 테스트를 통해 원인 레이블을 줄입니다 — Google 제공자 패턴에서는 Gemini·Google QUIC 라우팅에서 다룬 절차를 빌려 패킷 교차 실험에 사용할 수 있지만 목적 호스트 이름은 현재 과제 목록으로 바꿉니다.

터미널·웹 테스트를 동일 스크립트로 돌린다면, 셸 레벨 HTTPS_PROXY·ALL_PROXY 환경 변수가 시스템 프록시나 TUN 패스와 무엇보다 우선하는지 순서별로 교차 테스트하는 편이 낫습니다. Windows와 macOS 교차 테스트가 필요하면 WSL2 네트워크 미러처럼 OS 경계 패턴 참고글을 활용하면 가상화 인터페이스 오탐 줄이기에 도움이 됩니다.

8. 로그 우선 실측 절차

권장 순서입니다. 우선 증상을 재현 가능한 명령·GUI 클릭 시퀀스로 고정한 뒤 mihomo 로그에서 해당 요청 줄의 도메인·아웃바운드 이름·지연 메시지를 한 번에 확인합니다. 둘째로 Proxies 화면에서 OpenRouter-Gateway 이름이 선택한 노드와 일치하는지 확인합니다 — 한 글자라도 구독 머지 후 바뀌면 매칭이 빠져 나갔을 수 있습니다. 셋째로 동일 시나리오에서 브라우저 보안 DNS만 끈 채 교차 테스트합니다 — 이때 패턴 소멸이면 fake-ip 교차 변수가 주원인입니다.

넷째로 동일 테스트에서 QUIC만 꺼서 비교하면 UDP 경로 패턴 레이블이 좁아집니다. 다섯째로 VPN 또는 다른 패킷 필터와 동시에 TUN 코어가 올라가면 중복 NAT가 생기므로, 동시 활성 상태를 순차적으로 줄이며 확인합니다 — 전반 그림은 Clash 개요 글과 같이 참고하면 흐름 이해 속도가 배가됩니다.

로그에서 볼 줄

실패 순간 접두 줄에 도메인 끝 접미 규칙 타입 이름이 포함됐는지 확인합니다 — 한 줄이 아니면 중간 패치만 다른 줄로 새는 것입니다.

API 타임아웃 순간 분기

HTTP 오류 문자열 메시지가 이미 존재하는지, 아니면 연결 접속 패킷 줄에서 시간 초과로 끊기는지 먼저 나눕니다 — 접속 패킷에서 끊기면 노드·DNS·패킷 경로 순으로 의심합니다.

9. 자주 묻는 질문

OpenRouter에서만 간헐적으로 타임아웃되는 이유가 있나요?

대시보드 세션 로그인·청구·통계 페이지와 순수 채팅 완결 API 호스트가 갈라질 수 있어, 같은 노드를 쓴다 해도 일부 호스트만 직통·중간 프록시에 걸립니다.

fake-ip(가상 IP)를 쓰면 분기 규칙이 안 맞을 수 있나요?

시스템이나 브라우저의 보안 DNS가 먼저 응답할 때 발생할 수 있습니다. nameserver-policy로 도메인 축을 고정하고, 보안 DNS를 끄거나 Clash 코어 해석 경로와 맞춥니다.

OpenRouter 패치와 개별 제공자 패치를 같은 규칙 파일에 놓아도 되나요?

가능하지만 매칭 충돌을 피하기 위해 주석 헤더로 묶음을 나누고, 테스트 중에는 새 규칙만 잠시 활성 상태로 줄인 뒤 기존 줄을 순차 활성합니다.

정리하면, OpenRouter는 2026년 들어 빠르게 진화하는 모델 게이트웨이 패턴 때문에 단일 호스트 테스트만으로는 API 타임아웃 패턴 재현 속도가 느린 편입니다. 반면 순수 브라우저 확장이나 과거형 전역 VPN처럼 패킷 가시성 없이 회선만 교체하는 방식은 디버깅 메시지를 얻기 어렵고, 패치 세트 교체 속도 역시 따라오기 버겁습니다. 공식 패키지로 배포되는 Clash 계열 클라이언트와 개발자 프록시 조합이라면 라우팅 줄·패킷 줄·패치 세트 순서까지 한 목록 안에서 교차 테스트할 수 있어, 새로 추가되는 서브도메인 문자열도 로그 줄만 붙여 확장 레시피로 남길 수 있습니다.

→ 무료로 Clash를 내려받아 규칙·DNS 패널·로그 줄을 같은 화면 흐름에서 열어두고 OpenRouter 패치 묶음을 차근히 적용해 보세요 — 웹 패널과 터미널 테스트를 줄곧 교차 검증하면 안정 접속 패턴 고정 속도가 빠릅니다.

주제 관련도가 높은 읽을거리 — 같은 카테고리의 Clash 실전 가이드.