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 工作区管理。

问清楚是哪个进程发的请求。远程工具通过已授权的连接让本机浏览器打开页面,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 |

虚拟机有独立的网络栈,没有接外部网卡。本实验验证的是回环隔离,未运行 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。