TabbitBlog

Codex Cloud가 내 컴퓨터의 localhost를 열 수 없는 이유

요청이 출발한 환경을 확인하고 네트워크 경계를 재현한 뒤 로컬 브라우저와 승인된 미리보기 중에서 고릅니다.

이 글의 목차
  1. 핵심 요약
  2. 서버를 바꾸기 전에 요청의 출발점을 확인
  3. 같은 주소에서 두 가지 응답이 돌아온 실험
  4. 앱과 브라우저를 어디서 실행할지 선택
  5. 오류가 나타난 환경에서 원인 좁히기

localhost는 요청을 보내는 컴퓨터나 네트워크 환경을 가리킵니다. Codex Cloud의 호스팅 환경에서 요청하면 http://localhost:3000은 그 환경을 가리킵니다. 내 컴퓨터에서 루프백 주소로만 연결을 받는 개발 서버에는 도달하지 않습니다.

한 Reddit 사용자는 미리보기가 프로젝트에서 쓰지 않는 포트를 반복해 열었다고 했습니다. 네트워크를 바꾸기 전에 실제 목적지를 기록합니다.

브라우저나 명령이 어디에서 실행되는지 먼저 확인합니다. 같은 컴퓨터의 브라우저를 쓰거나, 호스팅 작업의 환경에서 앱을 시작하거나, 그 환경이 접근할 수 있는 미리보기 주소를 제공합니다. Tabbit과 Codex 비교에서 제품의 역할을 설명합니다. 네트워크 경계는 브라우저의 실행 위치에 따라 달라집니다.

핵심 요약

  • 포트는 해당 주소가 속한 환경의 서비스에 연결합니다.

  • 호스팅 터미널과 로컬 브라우저는 같은 URL에서 다른 응답을 받을 수 있습니다.

  • 서버의 수신 주소를 바꿔도 내 컴퓨터까지 경로가 생기지는 않습니다.

  • 미리보기는 실제 사용할 환경에서 확인합니다.

  • 응답이 200이어도 해당 인스턴스에만 있는 표시를 찾습니다.

서버를 바꾸기 전에 요청의 출발점을 확인

요청을 시작하는 곳localhost가 가리키는 곳먼저 확인할 내용
내 컴퓨터의 브라우저내 컴퓨터의 네트워크개발 서버가 예상 포트에 연결을 받는가
호스팅 VM의 브라우저나 명령VM의 루프백같은 환경에 서비스가 있는가
컨테이너 안의 브라우저나 명령일반적인 격리 모드의 컨테이너 네트워크 공간서비스가 컨테이너 안에 있는가
HTTPS 미리보기를 여는 브라우저미리보기의 도메인이 실제 목적지접근 권한, 빌드, 결과

IANA는 127.0.0.0/8을 루프백으로 분류합니다. OpenAI는 Codex Cloud가 독립된 인터넷 및 사설 네트워크 정책을 적용하는 호스팅 환경이라고 설명합니다. 그 환경이 내 컴퓨터의 로컬 네트워크 접근을 물려받지는 않습니다. IANA 등록부, OpenAI 클라우드 환경, 워크스페이스 관리를 참고하세요.

로컬 컴퓨터와 호스팅 환경에 별도 루프백이 있고 HTTPS 미리보기는 다른 경로를 사용하는 네트워크 그림

어느 프로세스에서 요청을 보냈는지 물어보세요. 원격 도구가 허용된 연결을 통해 내 컴퓨터의 브라우저에 지시한다면 HTTP 요청은 로컬 브라우저에서 나갑니다. 호스팅 VM에서 브라우저를 열면 그 환경에서 나갑니다. 가상 브라우저 가이드와 브라우저 에이전트 소개에서 두 가지 실행 형태를 설명합니다.

같은 주소에서 두 가지 응답이 돌아온 실험

로컬 실험에서 Mac 호스트와 Apple Virtualization으로 실행한 Alpine Linux 게스트를 사용했습니다. Mac의 Node 서버는 127.0.0.1:61616에 연결을 받고 host-loopback을 반환했습니다. 게스트에서 같은 주소를 요청하자 처음에는 연결이 거절됐습니다. 게스트의 같은 포트에서 별도 서비스를 시작한 뒤에는 guest-loopback이 돌아왔습니다. Mac의 응답은 그대로였습니다.

요청 환경그 환경에서 연결을 받는 서비스결과
Mac 호스트호스트 서비스host-loopback
Alpine 게스트없음Connection refused
Alpine 게스트게스트 서비스guest-loopback
게스트가 시작된 뒤 Mac호스트 서비스host-loopback
같은 루프백 주소에서 Mac과 Alpine이 서로 다른 응답을 받은 터미널 기록

같은 Mac에서 실제로 분리된 게스트 네트워크를 사용했습니다. 게스트에 외부 네트워크 어댑터를 연결하지 않았습니다. 이 실험은 루프백 분리를 확인했습니다. Codex Cloud 작업이나 실제 원격 미리보기는 실행하지 않았습니다.

격리된 VM이나 컨테이너로 재현할 수 있습니다. 비어 있는 포트를 고르고 호스트에서 Node를 실행해 둡니다. 별도 터미널에서 curl을 실행한 뒤 게스트에서도 같은 URL로 요청합니다.

node -e "require('node:http').createServer((_, res) => res.end('host-loopback\n')).listen(61616, '127.0.0.1')"
curl --noproxy '*' -fsS http://127.0.0.1:61616/probe

게스트에서 같은 명령을 사용하되 응답만 guest-loopback으로 바꿉니다. 설정에 따라 컨테이너의 호스트 네트워크 모드가 네트워크 공간을 공유할 수 있으므로 격리된 환경에서 실험합니다. host.docker.internal은 Docker Desktop에서 호스트에 접근할 때 쓰는 이름입니다. Docker 네트워크 문서를 참고하세요.

앱과 브라우저를 어디서 실행할지 선택

필요한 작업먼저 선택할 방법확인할 내용
내 컴퓨터의 개발 서버 검사같은 컴퓨터의 승인된 브라우저정확한 포트와 로컬 빌드
호스팅 작업 안에서 통합 테스트작업 환경 안에서 테스트 서버 시작클라이언트와 서버가 예정된 네트워크에 있는가
클라우드에서 테스트 사본 확인승인된 HTTPS 미리보기원격에서 접근하고 예상 빌드가 보이는가
사설 서비스에 접속조직이 승인한 사설 네트워크 경로신원, 경로, 도메인, 권한

로컬 UI를 확인할 때는 브라우저와 서버를 같은 컴퓨터에서 실행합니다. OpenAI 데스크톱 브라우저 가이드는 로컬 앱을 여는 방법을 설명합니다. Tabbit Browser도 같은 컴퓨터에서 테스트 페이지를 열고 허용된 페이지 동작을 할 수 있습니다. Tabbit 작동 방식을 참고하세요. 별도 점검에서는 Tabbit Tango로 Tabbit Browser에서 합성 로컬 페이지를 열고 예상한 표시를 읽었습니다.

원격 미리보기는 별도 테스트 사본으로 만들고 접근 대상을 제한합니다. 연결 가능 여부, 인증, 워크스페이스의 네트워크 규칙을 각각 확인합니다. HTTPS 200은 어떤 서비스가 응답했다는 뜻입니다. 예상 빌드 표시나 페이지 상태도 확인해야 합니다.

오류가 나타난 환경에서 원인 좁히기

“Connection refused”는 요청 환경에서 해당 주소와 포트에 연결을 받는 서비스가 없다는 신호인 경우가 많습니다. 시간 초과, 정책 차단, 로그인 화면, 인증서 오류는 서로 다른 점검이 필요합니다. 요청을 보낸 도구, 비공개 정보를 뺀 주소, 오류와 예상 인스턴스를 기록합니다. 브라우저 디버깅 가이드는 문서 응답과 데이터 요청의 실패를 구분합니다.

로컬 Python 환경을 쓰는 개발자는 Codex의 어느 부분이 내 컴퓨터와 클라우드에서 실행되는지 물었습니다. 브라우저 문제에서는 명령, 브라우저, 서버를 나눠 확인합니다.

에이전트에 실제 URL과 민감하지 않은 인스턴스 표시를 요청합니다. 화면만 확인한다면 읽기 작업부터 시작하세요. 브라우저 에이전트 첫 작업 점검표, 브라우저 자동화 가이드, 에이전틱 브라우저 보안 가이드에서 검증과 권한을 다룹니다. 필요한 테스트 사본에 닿는 가장 좁은 경로를 골라 응답이 실제로 그곳에서 왔는지 확인합니다.

자주 묻는 질문

Codex Cloud가 내 컴퓨터의 localhost에 접근할 수 있나요?

클라우드 쪽에서 보낸 localhost 요청은 호스팅 환경에 남습니다. 컴퓨터에서 실행하는 승인된 브라우저를 쓰거나, 필요한 환경에서 앱을 시작하거나, 허용된 미리보기 주소를 사용합니다.

Codex가 브라우저를 열면 누구의 localhost인가요?

요청을 보내는 프로세스가 있는 환경입니다. 내 컴퓨터의 브라우저는 내 컴퓨터의 루프백을 쓰고, 호스팅 환경의 브라우저나 명령은 그 환경의 루프백을 씁니다.

0.0.0.0에 바인딩하면 Codex Cloud에서 접근할 수 있나요?

같은 환경 안에서 더 많은 인터페이스가 연결을 받습니다. 클라우드에서 내 컴퓨터까지 경로를 만들거나 접근 권한을 부여하지는 않습니다.

host.docker.internal은 Codex Cloud에서 내 컴퓨터를 가리키나요?

Docker Desktop 컨테이너가 자기 호스트에 접근할 때 쓰는 이름입니다. 호스팅된 Codex 작업에서 내 컴퓨터로 연결하는 일반 주소가 아닙니다.

언제 원격 미리보기를 쓰나요?

클라우드 쪽 브라우저나 명령이 배포된 테스트 사본을 확인할 때입니다. 그 환경에서 주소에 접근 가능한지와 올바른 빌드가 보이는지 확인합니다.

의도한 서버에 연결됐는지 어떻게 판단하나요?

최종 URL, 응답, 인스턴스나 빌드에 고유한 표시를 대조합니다. 다른 환경에서 같은 포트를 쓰는 서비스도 200을 반환할 수 있습니다.

다음 단계

Tabbit 과 함께 일하세요.

탭 간 조사를 하고, 반복적인 브라우저 작업을 자동화하며, 모든 맥락을 손이 닿는 곳에 두세요.