VSCode Remote-SSH基于本地代理使用Codex

VSCode Remote-SSH基于本地代理使用Codex

VSCode Remote-SSH基于本地代理使用Codex

  • 原理
  • 配置vscode本地代理
  • 配置vscode SSH RemoteForward
  • 配置远端vscode
  • 复制 .codex/auth.json
  • 验证代理端口监听状态
  • vscode终端注意事项

原理

VS Code 本地能联网,不代表 Remote-SSH 里的远端 extension host 能联网,导致:

  • 本地电脑可以通过代理访问 Codex;
  • 但是远程服务器因为网络限制,不能直接访问 chatgpt.com / OpenAI 相关服务;
  • 用 VS Code Remote-SSH 连接服务器以后,Codex 插件经常登录失败、请求报错、卡在 Thinking,或者插件不能稳定访问远端项目。

  • Local Laptop:你看见的 VS Code 界面,以及本地已经能用的代理端口,例如 127.0.0.1:7890;
  • SSH RemoteForward:一条通过 SSH 建立的端口转发,把远端的 17890 映射回本地代理;
  • Remote Server:远端 VS Code Server、remote extension host、Codex 插件和你的项目文件。

Codex 插件请求流程:

  1. 你在本地 VS Code UI 里打开 Codex 面板,输入 prompt;
  2. Codex 插件运行在远端 extension host,所以它能直接读取远程服务器上的项目文件;
  3. 我们在 Remote Settings 里告诉远端 VS Code:HTTP 请求优先使用这个代理入口:
http.proxy=http://127.0.0.1:17890
  1. 对远端服务器来说,127.0.0.1:17890 是服务器自己的 localhost 端口;
  2. 但因为 ~/.ssh/config 里设置了:
RemoteForward17890127.0.0.1:7890
  1. 远端的 17890 端口会被 SSH 转发回本地电脑的 127.0.0.1:7890;

  2. 最后由本地代理访问 chatgpt.com / OpenAI 服务,再沿着同一条路径把响应传回 Codex 插件,并显示在本地 VS Code 界面里。

配置vscode本地代理

Preferences: Open User Settings(JSON)

  • 路径:~/.config/Code/User/settings.json(Linux)
  • 作用:本机全局生效,所有窗口、所有项目都用这一套Visual Studio Code
  • 适用:现在只是本地打开 VS Code 写代码,没有远程连接
    → 配代理就改这个

加入: