本地 codex 连接 linux 服务器
参考链接:在没有梯子的服务器上使用 VSCode Codex 的完整指南
前置条件
- 本地安装 codex ,有可以使用的 chatgpt 账号(=本地有代理,代理不要开虚拟网卡)
- 本地代理端口 127.0.0.1:7897 (clash verge 默认设置?)
- vscode 可以通过 Remote-SSH 连接到 linux 服务器,且 vscode 装有 codex 插件
- 服务器安装 codex (通过 npm,可以没有 root 权限)
Step 1 配置 SSH 隧道
编辑本地的 ~/.ssh/config 文件,添加以下内容:
1 | Host <server> |
RemoteForward(远程转发):在 linux 服务器上开通 SSH 隧道,通向本地内网里的某个服务。LocalForward(本地转发):在你本地开通 SSH 隧道,通向远程服务器里的某个服务。ServerAliveInterval、ServerAliveCountMax:用于保持 SSH 连接的活跃状态。
Step 2 复制 Codex 登录凭证到服务器
- 在本地登录 codex 后,找到
~/.codex/auth.json文件,并将其复制到服务器上的相同位置。
1 | scp ~/.codex/auth.json <user>@<server>:~/.codex/auth.json |
- 上传后不要在本地退出或重新登录 Codex,否则本地的 token 会更新,服务器上的也会跟着过期,就要重新粘过去。
- 每隔一段时间如果服务器端 Codex 提示认证失败,重新从本地复制一次最新的
auth.json即可。
Step 3 配置 VSCode 远程代理
- 在 VSCode 中通过 Remote-SSH 连接到服务器
- 打开远程设置:
Cmd/Ctrl + Shift + P→ 输入Preferences: Open Remote Settings (JSON)。 - 在打开的 JSON 文件中添加:
1 | { |
这部分可能不需要?我直接在服务器 ~/.bashrc 的最顶上(case $- in 那段之前)添加代理设置:
1 | export http_proxy=http://127.0.0.1:7890 |
检测端口:
1 | ss -tlnp | grep 17897 |
结束后重启终端激活设置,然后检测是否可以连接 OpenAI:
1 | curl -x http://127.0.0.1:17897 https://api.openai.com |
或者直接
1 | curl https://api.openai.com |
如果输出显示 message 之类的就成功了。
Step 4 中止服务器中 codex 进程
检查服务器上的 codex 进程
1 | pgrep -af codex |
kill 残留进程
1 | pkill -f 'codex.*app-server' |
重启远程 VSCode 窗口(断开再重新连接)。
Step 5 本地连接检测
本地 ssh 检测
1 | ssh <user>@<server> 'curl -sS -o /dev/null -w "%{http_code}\n" https://chatgpt.com/backend-api/codex/responses' |
返回 401/405 都算“能通”。
Step 6 爽用 codex
用 vscode 打开一个服务器窗口以连接服务器。
然后爽用 codex。