Tabbit部落格

Codex 雲端為甚麼打不開電腦上的 localhost?

弄清 Codex 請求發自哪台機器,重現回送位址的邊界,再選擇本機瀏覽器或有權限的預覽位址。

本文目錄
  1. 要點
  2. 先畫清請求怎麼走
  3. 同一個位址得到兩種回應
  4. 怎麼選本機瀏覽器、托管服務和預覽
  5. 在看到錯誤的環境里排查

localhost 指向發起請求的機器或網路環境。 Codex 雲端如果從托管環境發出請求,http://localhost:3000 指向該托管環境。你電腦上只綁定回送位址的開發伺服器不會收到這條請求。

一位 Reddit 使用者遇到預覽反覆開啟專案沒用的連接埠。調整網路設定前,先記下瀏覽器實際存取的位址。

先確認瀏覽器或命令在哪運行,再選方案。可以用授權的本機瀏覽器,在托管任務的環境里啓動服務,或給遠程環境一個可存取的預覽 URL。Tabbit 和 Codex 的對比介紹兩款產品,網路邊界仍由瀏覽器實際所在的位置決定。

要點

  • 連線埠只標識該環境里正在接聽的服務。

  • 雲端終端和本機瀏覽器存取同一個 URL,可能得到不同結果。

  • 修改服務接聽位址不會自動建立到本機的網路路徑。

  • 從真正運行檢查的環境驗證預覽。

  • 即使得到 200,也要核對回應中的唯一標記。

先畫清請求怎麼走

請求從哪發出localhost 指向哪裡先檢查甚麼
本機瀏覽器本機網路棧開發伺服器是否接聽預期連線埠
托管虛擬機里的瀏覽器或命令虛擬機自己的回送位址同環境內是否有服務
容器里的瀏覽器或命令常規隔離設定下的容器網路命名空間服務在當前容器還是外部
存取 HTTPS 預覽的瀏覽器預覽域名是實際目的地存取權限、建置標識、預期結果

IANA 把 127.0.0.0/8 標為回送位址。OpenAI 文檔說明 Codex 雲端運行在托管環境,有獨立的公網和私網存取設置。雲端環境不會繼承電腦的本機網路存取。IANA IPv4 注冊表、OpenAI 雲端環境、OpenAI 工作區管理。

本機與托管環境擁有各自的回送位址,HTTPS 預覽走獨立路徑的網路示意

問清楚是哪個進程發的請求。遠程工具通過已授權的連線讓本機瀏覽器打開頁面,HTTP 請求仍由本機瀏覽器送出。工具如果在托管虛擬機啓動瀏覽器,請求從那裡發出。虛擬瀏覽器指南和瀏覽器 Agent 概覽介紹了兩種執行環境。

同一個位址得到兩種回應

本機實驗在 Mac 主機和 Apple Virtualization 啓動的 Alpine Linux 客體中運行。主機把 Node 服務綁定到 127.0.0.1:61616,返回 host-loopback。客體存取同一位址時起初連線被拒絕。在客體的同一連線埠啓動另一個接聽後,客體得到 guest-loopback,主機的回應仍是原值。

發起請求的環境當前環境是否接聽結果
Mac 主機主機服務host-loopback
Alpine 客體無Connection refused
Alpine 客體客體服務guest-loopback
客體開始接聽後的主機主機服務host-loopback
終端機記錄顯示 Mac 主機與 Alpine 客體在同一回送位址取得不同回應

虛擬機有獨立的網路棧,沒有接外部網路介面。本實驗驗證的是回送隔離,未運行 Codex 雲端任務或測試真實預覽。

可以用虛擬機或隔離容器重現。在主機用 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 Desktop 文檔里的 host.docker.internal 是該環境提供的獨立宿主存取路徑。Docker 網路文檔。

怎麼選本機瀏覽器、托管服務和預覽

需求優先方案要核對的證據
檢查電腦上的開發伺服器同一台機器的授權瀏覽器精確連線埠與本機建置內容
在托管任務里跑集成測試在任務環境內啓動測試服務客戶端與接聽服務在預期網路內
讓雲端瀏覽器看測試副本允許存取的 HTTPS 預覽雲端能存取且識別正確建置
存取私有測試服務使用工作區批准的私網路徑身份、路由、域名和權限匹配

本機介面驗收時,把瀏覽器和服務放在同一台電腦。OpenAI 的桌面瀏覽器文檔說明瞭如何預覽本機應用。Tabbit Browser 也可在本機打開本機測試網頁,按已授予的權限用網頁工具查看內容。請求仍留在本機。Tabbit 瀏覽器解析。 另一次使用 Tabbit Tango 開啟本機合成網頁,Tabbit Browser 讀到了預期的本機標記。

遠程預覽應使用獨立測試副本並限制存取對象。連得上、能認證和符合工作區網路規則是三件事。預覽返回 HTTPS 200 只說明有服務回應。先看建置標記或特定頁面狀態,再讓 Agent 根據它做判斷。

在看到錯誤的環境里排查

“Connection refused”通常表示從請求發起方看,該位址和連線埠沒有接聽。超時、瀏覽器策略拒絕、要求登入和憑證錯誤要分別排查。記錄發請求的工具、脫敏後的準確目的地、錯誤和預期實例。瀏覽器調試指南用例子說明文檔與失敗的數據請求如何區分。

一位使用本機 Python 環境的開發人員想知道 Codex 哪些操作在本機、哪些在雲端。除錯時要分別確認命令、瀏覽器和伺服器的位置。

讓 Agent 報當前 URL 和無敏感信息的實例標記。只核對渲染時,第一次保持只讀。瀏覽器 Agent 首次任務清單、瀏覽器自動化和智能體瀏覽器安全指南介紹驗收與授權。選擇能到達預期測試副本的最小路徑,再證明結果確實來自那裡。

常見問題

Codex 雲端能直接打開我電腦上的 localhost 嗎?

從雲端發出的 localhost 請求會留在托管環境。可以選擇經授權的本機瀏覽器、在需要存取它的環境運行應用,或提供允許遠程存取的預覽位址。

Codex 打開瀏覽器時,localhost 屬於誰?

看哪個進程發出請求。本機瀏覽器使用電腦的回送位址,托管環境內的瀏覽器或命令使用托管環境的回送位址。

綁定 0.0.0.0 能讓 Codex 雲端存取嗎?

它讓服務在自己的環境里接聽更多接口。它不會替你建立雲端到本機的路由,也不會授予存取權限。

host.docker.internal 可以從雲端指向我的電腦嗎?

這是 Docker Desktop 為容器存取主機提供的名稱。它不是任何托管環境都能用的本機存取位址。

甚麼時候該用遠程預覽?

需要從雲端驗證部署後的測試副本時,用經授權的預覽。請從實際執行檢查的環境核對連通性和建置標記。

怎麼判斷存取到了正確服務?

核對最終 URL、回應內容和預期實例獨有的標記。同一個連線埠在不同環境中可能有另一個服務,即使都返回 200。

下一步

讓 Tabbit 與你並肩工作。

跨分頁調研、自動化重複的瀏覽器工作,讓每一處上下文都觸手可及。