Codex App 连接远程服务器后一直重连:代理未继承踩坑记录
·
问题现象
我的环境是:
- Windows 本地使用 Codex App
- 通过 Remote SSH 连接远程 Linux 服务器
- 远程服务器需要通过本地代理访问 OpenAI
远程服务器直接执行 Codex CLI:
codex exec --skip-git-repo-check "只回复 OK"
可以正常返回:
OK
但通过 Windows Codex App 连接远程服务器后,界面一直显示:
正在重新连接
甚至还会导致后续直接在远程服务器启动 Codex 也出现网络异常。
原因
远程服务器的 shell 中虽然配置了:
HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
但 Codex App 通过 Remote SSH 启动的:
codex app-server
并不会稳定继承这些代理环境变量。
结果就是:
手动启动 Codex CLI
↓
有代理
↓
正常
Codex App Remote
↓
启动 app-server
↓
没有代理
↓
一直重新连接
解决办法
思路很简单:
不再依赖
.bashrc是否被继承,而是在codex启动入口强制注入代理。
原来的:
~/.local/bin/codex
是一个软链接:
~/.local/bin/codex
-> ~/.codex/packages/standalone/current/bin/codex
先备份:
mv ~/.local/bin/codex ~/.local/bin/codex.link.bak
然后创建一个 wrapper:
cat > ~/.local/bin/codex <<'EOF'
#!/usr/bin/env bash
unset ALL_PROXY
unset all_proxy
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1,::1
export no_proxy=localhost,127.0.0.1,::1
exec "$HOME/.codex/packages/standalone/current/bin/codex" "$@"
EOF
chmod +x ~/.local/bin/codex
hash -r
之后无论是:
codex
还是 Codex App Remote SSH 启动:
codex app-server
都会强制带上代理。
验证
先测试 CLI:
codex exec --skip-git-repo-check "只回复 OK"
正常返回:
OK
再重新连接 Windows Codex App,网络恢复正常,不再一直显示重连。
如果以后 Codex 更新把 wrapper 覆盖了
可以检查:
head -30 ~/.local/bin/codex
正常应该能看到:
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
如果发现已经没有这些内容,或者:
ls -l ~/.local/bin/codex
又变回了软链接,例如:
~/.local/bin/codex -> ~/.codex/packages/standalone/current/bin/codex
说明 Codex 更新时把 wrapper 覆盖了。
直接重新执行:
rm -f ~/.local/bin/codex
cat > ~/.local/bin/codex <<'EOF'
#!/usr/bin/env bash
unset ALL_PROXY
unset all_proxy
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1,::1
export no_proxy=localhost,127.0.0.1,::1
exec "$HOME/.codex/packages/standalone/current/bin/codex" "$@"
EOF
chmod +x ~/.local/bin/codex
hash -r
然后测试:
codex --version
codex login status
codex exec --skip-git-repo-check "只回复 OK"
总结
这次问题的核心不是账号,也不是 Codex CLI 本身,而是:
Codex App Remote SSH
↓
远程 app-server
↓
没有继承 HTTP_PROXY
↓
网络异常
最终通过给 codex 加一层 wrapper,强制所有 Codex 进程使用代理解决:
Codex App / CLI
↓
~/.local/bin/codex wrapper
↓
强制注入 HTTP_PROXY
↓
真正的 Codex binary
↓
OpenAI
以后如果升级 Codex 后问题复现,第一件事就是检查:
head -30 ~/.local/bin/codex
如果代理配置没了,重新生成 wrapper 即可。
更多推荐
所有评论(0)