Codex CLI --remote 连接失败怎么办?App Server 地址、WebSocket 和认证令牌排查

📅 2026/7/27 17:58:09
Codex CLI --remote 连接失败怎么办?App Server 地址、WebSocket 和认证令牌排查
codex --remote 适合把终端客户端连接到另一个正在运行的 App Server但它与普通 HTTP API 地址不是一回事。连接失败时最常见的原因不是模型不可用而是把 https:// 地址当成 WebSocket、服务只监听本机、端口没有开放或认证令牌没有从指定环境变量读取。排查时要先证明远端 App Server 可达再检查协议与令牌最后才看会话和模型配置。一、理解 --remote 连接的对象远程模式连接的是 Codex App Server 端点用来复用远端会话和执行环境。它不是 OpenAI API 的 Base URL也不是随便一个兼容接口。把模型网关地址填给 --remote即使域名和证书都正常也会因为协议和消息格式不匹配而失败。当前远程地址可以使用 ws://、wss://在支持的系统上也可以使用 Unix socket。ws 是未加密 WebSocketwss 是通过 TLS 加密的 WebSocket。跨机器或跨网络使用时应优先选择 wss不要让认证信息和会话数据在不受控网络中明文传输。二、先确认服务器是否真的在监听到 App Server 所在机器查看进程和监听端口确认服务没有启动后立即退出。很多“远程连接超时”其实是服务只绑定了 127.0.0.1本机可以访问其他电脑却无法连接。如果需要局域网访问应按部署要求绑定合适接口同时用防火墙限制来源地址。端口开放不代表应用协议正确。用端口检测只能证明 TCP 可达不能证明 WebSocket 握手和 App Server 消息正常。服务器日志中如果完全看不到连接请求应检查地址、路由、防火墙和代理能看到握手却马上断开则继续看路径、TLS 或认证。三、ws、wss 和反向代理怎么选本机实验可以使用 ws://127.0.0.1:端口。远程访问建议由可信反向代理提供 wss正确转发 WebSocket 的 Upgrade 和 Connection 头并配置有效证书。普通 HTTP 反向代理若没有启用 WebSocket 转发浏览器访问健康页可能正常Codex 却会在握手阶段失败。公司网关有时会终止长连接或限制空闲时间。连接刚建立就周期性掉线要检查代理超时、负载均衡会话保持和中间设备策略。不要只增加客户端重试次数因为持续重连会掩盖根因还可能产生多条不完整会话。四、认证令牌要通过环境变量传入需要 bearer token 的远程服务可以用 --remote-auth-token-env 指定环境变量名。参数里填写的是变量名称不是令牌内容。例如先在当前安全环境设置一个变量再告诉 Codex 从该变量读取。这样可以避免令牌直接出现在命令历史和进程参数中。安全限制也很重要令牌只应发送到 wss:// 地址或明确属于本机范围的 ws:// 地址。如果地址不安全客户端拒绝发送令牌是合理保护不应通过把密钥硬编码进 URL 来绕过。确认变量是否存在时只检查长度或是否为空不要把完整值打印到共享终端和日志。五、环境变量明明设置了却读不到Windows PowerShell、命令提示符、WSL、容器和 IDE 终端拥有不同环境。你在一个窗口设置变量另一个已打开窗口通常不会自动获得。服务由计划任务、系统服务或 CI 启动时还要看运行账户是谁不能假设它继承个人桌面的变量。排查时在启动 Codex 的同一个终端检查变量是否存在再运行远程命令。变量名区分大小写的环境中要保持完全一致。若通过脚本启动确认脚本没有清理环境或覆盖空值。长期令牌应放进合规的密钥管理系统并设置轮换和失效时间。六、连接成功后仍找不到会话怎么办远程模式支持的命令包括启动、恢复、分支以及部分会话管理操作但并非所有本地子命令都接受 --remote。某个子命令直接拒绝远程参数时先查命令是否支持不要把它误判为服务器故障。连接成功却看不到预期会话还要确认远端用户、数据目录和工作区是否与之前一致。App Server 上的会话属于远端环境。客户端电脑当前目录存在同名仓库并不会自动让远端会话指向它。恢复任务前记录远端项目路径、分支和会话标识避免在错误仓库继续修改。远端代码状态与本地代码状态也要通过版本控制或明确同步机制对齐。七、用最小连接逐步验证第一步在服务器本机连接本机地址排除服务自身问题。第二步在同一局域网使用实际地址连接不经过公网代理。第三步启用 wss 和认证。第四步再加入反向代理、域名和外部网络。分层测试能迅速判断故障落在哪一段。每一步都保存时间点和双方日志。客户端显示 timeout 时对照服务器同一时刻是否收到连接显示 unauthorized 时检查令牌变量和服务器校验TLS 报错则核对证书域名、证书链和系统时间。不要在同一轮同时更换证书、端口和令牌。如果大家想体验一线 AI 编程模型 codex 和 claude用它们完成远程开发、代码修改和测试审查可以参考以下教程文档进行接入配置接入配置好后即可使用。文档教程https://my.feishu.cn/wiki/NIgLwuuj1ibzJIkLGM0cgVNinzg八、生产使用必须补上的安全措施不要把 App Server 直接暴露到公网并使用长期静态令牌。至少需要 TLS、来源限制、短期凭据、访问日志和令牌轮换。能够访问远端 Codex 会话往往意味着能够间接访问代码、工具和执行环境其风险高于普通只读网页。还应限制远端进程可读写的目录使用独立低权限账户并把生产环境与开发环境隔离。令牌泄漏后要能立即吊销日志里不要记录完整认证头。团队应明确谁能建立远程会话、谁能审批高风险命令、谁负责审计异常连接。九、稳定性验收看什么一次握手成功还不够。连续完成创建会话、读取项目、执行只读命令、恢复会话和正常断开观察代理是否中途重置连接。再模拟客户端网络短暂中断确认恢复行为不会重复执行危险操作。涉及写入时先用测试仓库检查 diff 和日志是否完整。最终记录可用的远程地址格式、证书更新方式、令牌变量名、服务启动账户、监听范围和故障日志位置。把这些信息做成团队检查表远比只留一条能运行的命令可靠。远程连接的关键不是多试几个 URL而是逐层证明 App Server、WebSocket、TLS、认证和会话环境都正确。