증상 — ChatGPT 브라우저는 빠른데 Codex·CLI만 ‘모델 끌어오기’에서 멈춤
한국 검색 사용자는 코덱스 CLI, OpenAI Codex, 터미널 프록시, API 시간 초과처럼 키워드가 한글·영문으로 섞인 채로 들어오는 경우가 많습니다. 실제 패턴은 꽤 비슷합니다. 브라우저에서 로그인한 ChatGPT 웹 세션은 정상인데, 같은 장비에서 Codex CLI나 IDE에 붙은 코딩 에이전트만 첫 패킷 이후 장시간 걸린 뒌 연결 시간 초과 문자열을 띄운다거나, MCP·플러그인을 처음 켤 때만 외부 HTTPS가 끊기는 식입니다. 또 흔한 변형으로 npm·바이너리 인덱스를 받아오는 단계는 실패하고, 패널 테스트만 성공한다는 증언도 많습니다.
원인 코드가 GPT 응답 품질이 아니라면, 거의 항상 분류 규칙이 일부 호스트만 DIRECT로 새고 다른 호스트만 PROXY로 간다거나, 브라우저는 Secure DNS(DoH)를 쓰는데 CLI는 다른 리졸버를 써 이름과 IP가 규칙 트리에서 어긋나는 레이어가 겹친 경우입니다. HTTP/3 QUIC를 쓰는 경로만 UDP 규칙 밖으로 빠지면 체감상 “간헐 타임아웃”처럼 보이기도 합니다. 활성 순서 자체는 Clash Verge Rev TUN 가이드와, 스택 고르기는 gvisor·system 비교 글을 따라가면 됩니다.
브라우저 ChatGPT 경로와 Codex 터미널 경로가 다른 이유
OpenAI Codex 계열 명령행 도구와 IDE 내 GPT‑5.x 계열 에이전트는 한 번의 작업 세션 안에 서로 다른 FQDN을 동시에 밟습니다. 인증 브라우저 창·OAuth 리다이렉트 계열 호스트와, 장문 스트림을 받는 추론 API, 때로는 정적 패치·패키지 색인 같은 CDN 호스트까지 섞입니다. 브라우저가 OS 혹은 자체 채널로 이미 우회 경로가 잡혀 있어도, 터미널 런타임(Node·Go·Rust 기반 번들 포함)은 HTTPS_PROXY·시스템 PAC을 안 읽는 경우가 흔해 동일 업체라도 패킷이 엇갈립니다.
그래서 “웹에서는 되는데 터미널 Codex만” 같은 문장은 이상증이 아니라 구조적인 현상입니다. 이때 프록시를 앱별로 우겨 넣기보다 Clash TUN처럼 커널에서 가상 인터페이스로 흡수하는 접근이 Codex CLI와 잘 맞습니다. 브라우저 전용 패턴만 다룬 ChatGPT 분할 라우팅 글과 접점은 있지만, 이 페이지는 초점을 터미널 프록시·자동 패치 경로까지 넓혔습니다. 비교용으로 같은 시리즈의 Claude Code CLI 안정화 글·Agents CLI 패키지 타임아웃 글과 짝을 이룹니다.
여전히 TUN을 먼저 보는 까닭
팀 레포마다 다른 쉘 초기화, CI 샌드박스·도커, VS Code 내장 터미널과 iTerm 차이 때문에 터미널 프록시만으로는 재현 로그가 흩어집니다. TUN은 “이 프로세스가 프록시를 아느냐” 문제를 한 번 낮춰 주어 장시간 세션형 OpenAI Codex 호출·도구 결과 스트림에 특히 유리합니다. 물론 회사 디바이스에서 가상 어댑터가 금지된 경우에는 IT 정책을 따르세요.
글의 범위와 면책
요금 플랜, 모델 이름, 플래그 세부 기능은 빠르게 바뀌므로 여기서는 따로 다루지 않습니다. 대신 사용자가 로그와 연결 패널에서 본 문자열 그대로 분류 규칙을 정렬하고 DNS·fake-ip-filter와 스니퍼를 같은 축에 두는 과정만 서술합니다. 아래 호스트 이름은 교육용 스케치이며 최신 상태는 각자 장비 로그와 공식 릴리스 노트로 교차 확인해야 합니다.
1Codex·에이전트 로그와 curl로 실제 접속 이름 잡기
OpenAI Codex가 인쇄하는 오류 JSON·텍스트에 도메인이 그대로 나오는 경우가 많습니다. 그 문자열을 타임라인 순으로 모아 두고 같은 초에 나온 코어 패널의 첫 매칭 줄과 대조하세요. 별칭 테스트로는 브라우저와 무관하게 터미널 하나만 깨끗이 열고 TLS 지연부터 보는 패턴을 권합니다. 경로와 권한은 본인 키·조직 설정에 따라 다릅니다.
# Example — replace host/path/timeout before testing
curl -v -m 25 https://api.openai.com/v1/models
TCP 단계 초, TLS 핸드셰이크 초, TTFB처럼 층을 적어 두면 이후 어떤 스위치(DNS 교체인지 규칙 순서 변경인지)가 효과가 있었는지 되돌리기 쉬워집니다. 리셋·RST 패턴 분석은 메타 코어 로그 글을 참고합니다.
2TUN 켠 뒤 직통 예외부터 고정하기
UI 클라이언트에서 TUN을 활성화한 다음, 회사 제로 트러스트 VPN과 경로가 이중 라우팅되지 않는지 확인합니다. 로컬 127.0.0.1 MCP·내장 MCP 어댑터, 사내 패키지 레지스트리, 사내 깃 같은 대역은 fake-ip-filter와 GEOIP LAN 묶음을 먼저 위쪽에 두어 테스트 노이즈를 줄입니다. Windows 최초 설치가 필요하면 Windows Clash 설치부터 맞춰 두는 편이 이후 디버깅이 단순해집니다.
3OpenAI 호스트 번들 초안 분류 규칙
베이스 프로파일에 이미 무거운 RULE-SET이 있다면, 사용자 전용 yaml을 만들어 Mixin 덮어쓰기로 끝에 붙이는 방법이 안전합니다. 디버깅 초기에는 “관측한 모든 이름”을 한 정책 그룹으로 보내 출구 노드가 교착 상태에서 빙빙 돌지 않게 하는 게 우선입니다.
# Illustration — replace PROXY_OPENAI; keep order vs RULE-SET/MATCH
rules:
- DOMAIN-SUFFIX,api.openai.com,PROXY_OPENAI
- DOMAIN-SUFFIX,openai.com,PROXY_OPENAI
- DOMAIN-SUFFIX,chatgpt.com,PROXY_OPENAI
# Add hosts Codex/agent logs reveal (CDN, auth, uploads, telemetry)
- MATCH,DIRECT
참고: 실험적 하위 도메인이나 패치 서버 문자열은 출시 속도 때문에 자주 바뀝니다. 한 줄 규칙에만 의존하기보다 RULE-SET용 작은 사용자 파일을 git으로 관측 문자열 업데이트하는 편이 장기적으로 덜 깨집니다.
OAuth 창 호스트와 API 호스트 분리 디버깅
조직 SSO나 조건부 접근 때문에 브라우저 인증은 국내 직통 정책이고 추론 API는 해외 전용이라면, 초기 디버깅에서 억지 분리하면 스트림이 더 흔들릴 수 있습니다. 먼저 한 버킷으로 묶어 안정을 확인하고, 회사 규모가 허용할 때에만 레이블을 세분화하세요. 관련 패턴 논리는 다른 공급자 비교까지 확장 가능합니다.
4DNS·FakeIP·스니퍼를 규칙 이름과 같은 축에
브라우저와 CLI가 서로 다른 해석 결과를 들고 있으면 규칙은 맞춰 놓았는데도 패널에 찍히는 문자열은 전혀 다른 것처럼 보입니다. DNS 모드 변경·Secure DNS 끄기·코어 내 DoH 순서 같은 조작은 항목을 한 번에 하나만 적용해야 원인 분리가 됩니다. DNS 유출 방지, HTTPS 스니퍼 라우팅, 필요 시 fake-ip-filter·LAN 직통 교차 검토 순서입니다.
5npm·바이너리 패치 레이어도 같은 파이프에
OpenAI Codex 패키지를 갱신하거나 MCP 런타임을 새로 깔 때 레지스트리, GitHub Releases, 또는 전용 패치 스토리지로 나뉩니다. 브라우저가 따라오지 않는 터미널이라면 패치 자체에서만 타임아웃처럼 착각하는 경우도 있습니다. 패치 경로별로 실패 문자열 속 호스트 이름을 같은 프록시 그룹 규칙에 편입하거나, 과도하게 좁혀 놓은 GEOIP DIRECT 줄 때문에 CDN 대역만 빠지는지 패널로 확인합니다. 순수 패키지 사례로는 Cursor·GitHub·npm, Google 시리즈 예시로는 Agents CLI npm·uv 글을 함께 보세요.
6선택 노드 고정 후 스트림 재검증
길어지는 에이전트 응답은 url-test가 과민하게 장애를 보면 중간부터 끊긴 것처럼 보일 수 있습니다. 비교 목적에는 selector로 단일 안정 노드를 몇 시간 고정했을 때만 문제가 재현되는지 보고, 회선이 무죄해지면 다시 건강 상태 그룹을 씁니다. 자동 헬스체인 설계는 url-test·fallback 안내를 따라가세요.
Windows WSL·원격 리눅스와 게이트웨이 차이
WSL 가상머처는 호스트 브라우저와 라우팅 테이블이 다릅니다. 호스트 TUN이 올라와도 WSL 내부 CLI는 다른 기본 라우팅으로 나갈 수 있으니 게이트웨이 연계를 별도로 맞춥니다. 절차는 WSL2·Git·npm 프록시 가이드와 같이 읽어야 속도 면에서 이득이 큽니다.
Codex·에이전트용 빠른 점검표
- 실패 시각별로 이름이 찍힌 모든 호스트를 한 줄짜리 목록으로 모았는가.
- 각 호스트 첫 줄 매칭이 RULE-SET과 충돌 없이 같은 정책 그룹을 가리키는가.
- TUN 스위치로 증상이 재현 패턴 자체가 달라지는가(DIRECT 패스 확인).
- 브라우저 DoH·OS DNS가 코어 DNS와 교차 간섭하는가.
- 변경 변수를 하나씩만 움직였는가(복합 패치 디버깅 금지).
FAQ
환경변수 조합보다 Clash 단일 스택 장점은
런타임별로 변수 이름과 HTTPS CONNECT 지원 차이 때문에 팀 문서 유지 부담이 큽니다. TUN은 이런 상세를 줄이며 OpenAI Codex·하위 MCP 프로세스까지 같은 파이프에 올릴 가능성을 높입니다.
좋은 노드인데도 스트림만 깨진다면
순수 RTT 테스트와 무관하게 중간 패킷 손실·HTTP3 선택 차이 때문에 보일 수 있습니다. 노드 교체 외 QUIC 경로 차단 테스트, 브라우저와 같은 호스트 재현 크로스체크를 이어 가세요.
약관과 내부 보안 정책
업무 장비에서는 승인 범위 밖 회선 회피 행위를 하지 마십시오. 디버깅 스크린샷에 키·세션 문자열을 그대로 올리지 말 것.
준수: 조직 규정·클라우드 데이터 레지던시 원칙을 지키세요. 로그 저장 기간 내라도 개인 장비 폴더에만 보관합니다.
마무리 요약과 다음 검증 순서
2026년에도 GPT 계열 코딩 에이전트 도입률은 올라가고, 이름과 배포 채널만 조금 바뀌었을 뿐 네트워크 표면 패턴인 “브라우저 OK·터미널 NG”는 동일하게 반복됩니다. Clash Meta·Mihomo 스택에서는 TUN으로 기본 패킷을 모은 뒤 OpenAI·Codex 세션 관측 로그 속 호스트를 분류 규칙과 DNS 축 하나로 맞추는 과정만 제대로 밟아도 체감적인 API 타임아웃 대부분이 재현 불가 상태로 줄어 듭니다. 스트림이 길면 길수록 디버깅 중에는 변수를 과감하게 줄이는 습관이 성능보다 크게 시간을 되돌려 줍니다.
많은 레거시 클라이언트는 여전히 수천 줄짜리 문서 하나를 직접 편집해야 하거나, 새 팀원에게 터미널 변수 스크립트를 또 설명해야 합니다. Clash 긱 패밀리는 GUI에서 활성 규칙과 연결 로그가 동시에 보이고 한 클릭 모드 스위치로 Rule·Global·직통을 교차 테스트할 수 있어 OpenAI Codex·IDE 에이전트 조합처럼 다층 호스트를 순회할 때 오류 패턴 분석이 특히 빨라집니다. 같은 워크플로 안에서 MCP·패키지·모델 API를 동시에 잡아도 일관 동작하게 만들고 싶다면 코덱스 CLI 로그부터 다시 시작해 패널 시간축까지 맞춰 보세요.
순수 패킷 패널 계열도 존재하지만, 새 도메인 줄을 넣고 바로 테스트하기까지 세션 준비가 번거로운 편이라 일상 수정 사이클에 비추어보면 클릭 수가 많아집니다. Clash Verge Rev처럼 TUN·연결 패널·프로파일 교체까지 한 패키지 안에 있는 선택지는 업데이트 주기까지 고려했을 때도 실무 비용 면에서 이점이 명확한 경우가 많습니다. 아직 써 보지 않았다면 Clash를 무료로 받아 이 글의 순서 그대로 OpenAI Codex 또는 IDE 내 코딩 에이전트 세션을 다시 수행하면서 인증 단계부터 긴 SSE 흐름까지 동시 안정되는지 교차 검증하기를 권합니다.