
关键词
- Codex 最新客户端下载
- Codex iOS 连接失败
- ChatGPT iOS SSH 连接问题
- Debian Codex remote_control 报错
- Tailscale Codex 远程控制问题
- nc -U not supported nc.traditional
补充说明(Codex客户端下载)
Codex 最新客户端下载可以参考:
用于获取对应 客户端版本,便于与 remote-control 功能配套使用。
最近在排查 ChatGPT iOS App 连接 Linux Codex 远程控制环境时,遇到一个比较隐蔽的问题:iOS 可以完成 SSH 认证,但始终无法建立稳定 Codex 会话。同一套环境在 macOS Codex App 上却完全正常。
本文记录完整现象、排查过程以及最终解决方案(已验证有效)。
一、环境信息
-
Debian Linux 主机
-
Tailscale 内网互通
-
SSH 已开启且可正常登录
-
Codex CLI 版本测试:
- 0.130.0
- 0.132.0
- 0.133.0
-
ChatGPT iOS App:最新版本
-
macOS Codex App:正常工作
-
连接方式:SSH + Codex remote_control
二、问题现象
在 iOS 端连接时表现如下:
-
ChatGPT iOS App 不断重连
-
最终提示:"The network connection was lost"
-
SSH 日志显示:
- 认证成功
- 会话创建成功
-
iPhone 实际执行:
codex --version正常codex app-server proxy正常启动
但关键问题是:
❗ 没有建立有效 remote-control 会话
三、关键对比现象
同一套环境下:
| 设备 | 结果 |
|---|---|
| macOS Codex App | ✅ 正常连接 |
| ChatGPT iOS App | ❌ 反复断开 |
| Debian SSH | ✅ 正常 |
| Tailscale | ✅ 正常 |
因此可以初步判断:
问题不在 SSH / 网络 / Codex server,而是 iOS 端连接链路差异
四、Codex 0.133.0 额外问题
在开启 remote_control = true 时,Codex 0.133.0 还出现本地报错:
Invalid request: invalid type: string ":workspace",
expected internally tagged enum PermissionProfileSelectionParams
临时结论:
- 关闭 remote_control → 本地正常
- 降级到 0.130 / 0.132 → 本地正常
- 但 iOS 仍然无法连接
五、关键日志分析
从 SSH 和 Codex 日志观察:
- SSH session 成功建立并关闭
codex app-server proxy正常调用- 未出现权限或认证错误
- Tailscale 网络稳定
但 iOS 仍然报:
network connection lost
说明问题发生在 iOS → remote-control socket 阶段
六、最终根因定位
最终问题定位在 Debian 系统的 nc 实现差异。
iOS 远程控制流程最终会执行:
bash
nc -U /tmp/xxx.sock
但 Debian 默认可能使用:
nc.traditional
该版本 不支持 -U UNIX socket 参数
验证方式:
bash
nc -U /tmp/test
输出:
nc: invalid option -- 'U'
七、解决方案
安装 OpenBSD 版本 netcat:
bash
sudo apt install netcat-openbsd
切换 alternatives:
bash
sudo update-alternatives --config nc
选择:
/bin/nc.openbsd
八、修复结果验证
切换完成后:
- iOS ChatGPT App 可正常连接 Codex remote-control
- 不再出现 "network connection lost"
- SSH + Codex session 稳定建立
- macOS / iOS 行为一致
十、总结
这个问题本质不是 Codex 或 iOS 的业务逻辑 bug,而是:
Debian 默认
netcat实现不兼容-U UNIX socket参数,导致 iOS remote-control 通道断裂
关键修复点:
- 使用
netcat-openbsd - 替换
nc.traditional - 确保
nc -U可用
如果后续还遇到 iOS/macOS 行为不一致,优先检查三类组件:
- SSH shell 环境差异
- CLI 工具版本(Codex)
- system utilities(nc / socat / curl)