在 VS Code Remote-SSH 中通过本地代理使用 Codex 插件
Made by Mike_Zhang
Unfold Linux Topics $\triangledown$
本文假设:你本地电脑已经有可用代理。我们不讨论代理软件怎么搭,只讨论如何让 VS Code Remote-SSH 里的 Codex 插件 使用这个本地代理。
NO BULLSHIT
如果你只想先跑起来,推荐方案是:
- 本地代理尽量使用 HTTP proxy 端口,例如
http://127.0.0.1:7890。 - 在 VS Code 本地设置代理:
1 | |
- 在本地电脑的
~/.ssh/config中为远程服务器加上RemoteForward:
1 | |
- 在 VS Code Remote-SSH 里连接
my-server-codex,打开 Remote Settings,给远端 VS Code 写入:
1 | |
- 重启 VS Code Remote-SSH server,确认 Codex 插件安装在
SSH: my-server-codex远端。
Intro
最近很多人遇到一个很现实的问题:
- 本地电脑可以通过代理访问 Codex;
- 但是远程服务器因为网络限制,不能直接访问
chatgpt.com/ OpenAI 相关服务; - 用 VS Code Remote-SSH 连接服务器以后,Codex 插件经常登录失败、请求报错、卡在
Thinking,或者插件不能稳定访问远端项目。
简单来说,坑点在这里:
VS Code 本地能联网,不代表 Remote-SSH 里的远端 extension host 能联网。
VS Code Remote-SSH 连接远程服务器后,很多插件其实运行在远端的 VS Code Server / extension host 里。远端看到的 127.0.0.1 是服务器自己的 localhost,不是你本地电脑的 localhost。
所以这篇文章的目标很简单:用 ~/.ssh/config 把本地代理端口转发给远端,再让远端 VS Code 的 Codex 插件使用这个转发端口。
1. What is Happening
1. 先理解数据到底怎么走
使用 VS Code Remote-SSH 时,事情不是“本地 VS Code 直接操作服务器文件”这么简单。更准确地说,是有三层东西同时存在:
- Local Laptop:你看见的 VS Code 界面,以及本地已经能用的代理端口,例如
127.0.0.1:7890; - SSH RemoteForward:一条通过 SSH 建立的端口转发,把远端的
17890映射回本地代理; - Remote Server:远端 VS Code Server、remote extension host、Codex 插件和你的项目文件。
先看整体数据流:

简单来说,一次 Codex 插件请求大概是这样走的:
- 你在本地 VS Code UI 里打开 Codex 面板,输入 prompt;
- Codex 插件运行在远端 extension host,所以它能直接读取远程服务器上的项目文件;
- 我们在 Remote Settings 里告诉远端 VS Code:HTTP 请求优先使用这个代理入口:
1 | |
- 对远端服务器来说,
127.0.0.1:17890是服务器自己的 localhost 端口; - 但因为
~/.ssh/config里设置了:
1 | |
远端的 17890 端口会被 SSH 转发回本地电脑的 127.0.0.1:7890;
- 最后由本地代理访问
chatgpt.com/ OpenAI 服务,再沿着同一条路径把响应传回 Codex 插件,并显示在本地 VS Code 界面里。
2. Prepare Local VS Code Proxy
2. 先让 VS Code 本地侧正常走代理
打开 VS Code:
1 | |
加入:
1 | |
其中:
http.proxy:你的本地 HTTP 代理地址;http.noProxy:让 localhost / loopback 这类本地回调地址不要走代理,避免登录回调或本地服务被误代理;http.proxySupport: "override":让 VS Code 的 HTTP client 优先使用这个设置;http.proxyStrictSSL: true:正常情况下保持true,不要随便关 SSL 检查。
如果你使用的是 Clash / V2Ray / sing-box 这类工具,一般会同时提供 HTTP 和 SOCKS5 两个端口。建议先用 HTTP proxy 端口,例如 7890 / 1081。
3. Configure SSH RemoteForward
3. 在 ~/.ssh/config 中把本地代理带到服务器
假设:
- 本地代理:
127.0.0.1:7890 - 远端给 VS Code 使用的代理地址:
127.0.0.1:17890
在本地电脑编辑:
1 | |
加入:
1 | |
然后在 VS Code Remote-SSH 里连接:
1 | |
这里的关键是:
1 | |
它的含义是:远程服务器上的 17890 端口会通过 SSH 连接转发到本地电脑的 127.0.0.1:7890。
注意:如果服务器禁用了 TCP forwarding,这一步会失败,需要服务器管理员允许 AllowTcpForwarding。如果 17890 被占用,就换一个端口,比如 17891。
4. Configure Remote VS Code Settings
4. 让远端 VS Code 使用转发后的代理端口
连接到 Remote-SSH 后,打开:
1 | |
加入:
1 | |
这一步的意思是:在这个 Remote-SSH 窗口中,远端 VS Code 的 HTTP 请求优先使用 127.0.0.1:17890,也就是前面通过 RemoteForward 转发出来的本地代理。http.noProxy 保留 localhost / loopback 地址,减少本地回调和远端本地服务被误代理的概率。
改完后建议重启远端 VS Code Server:
1 | |
然后重新连接 my-server-codex。
5. Install Codex Extension on Remote
5. 确认 Codex 插件安装在 Remote-SSH 远端
连接 Remote-SSH 后,打开 VS Code Extensions 面板,搜索 Codex。
你需要注意插件安装位置:
- 如果按钮显示
Install in SSH: my-server-codex,说明它还没有安装到远端; - 如果显示已经安装在
SSH: my-server-codex,说明 Codex 插件会运行在远端 extension host; - 对于需要读写远程项目文件的场景,建议安装在远端,而不是只装在本地 UI 侧。
简单来说,Codex 插件要能看到你的远程代码仓库,就应该在 Remote-SSH 远端环境里运行。
如果插件没有响应,可以打开:
1 | |
检查是否有 proxy、timeout、403、ECONNREFUSED、EACCES 等关键词。这里先不要急着改一堆配置,先确认 ~/.ssh/config 的 Host 确实是 VS Code 当前连接的那个 Host,并且 RemoteForward 端口没有被占用。
6. My Suggested Workflow
6. 我的建议
如果我是从零帮同学配置,我会按这个顺序:
- 本地确认 HTTP proxy 端口可用,例如
127.0.0.1:7890。 - VS Code 本地 settings 写入
http.proxy。 ~/.ssh/config写入RemoteForward 17890 127.0.0.1:7890。- 用 VS Code Remote-SSH 连接这个 Host。
- 在远端 Remote Settings 里写入
http.proxy: "http://127.0.0.1:17890",并保留http.noProxy。 Remote-SSH: Kill VS Code Server on Host...后重连。- 确认 Codex 插件安装在远端
SSH: my-server-codex。
这条路径的好处是配置集中在两个地方:
- 本地
~/.ssh/config负责把本地代理转发给远端; - 远端 VS Code
Remote Settings负责让 Codex 插件使用转发后的代理。
Summary
总结
VS Code Remote-SSH 下使用 Codex 插件的核心不是“本地 VS Code 设置一个 proxy”这么简单,而是要分清楚:
- 本地 VS Code 的网络;
- 远程 VS Code Server / extension host 的网络;
~/.ssh/config里的RemoteForward;- Remote Settings 里的
http.proxy。
一句话总结:
把本地代理通过
RemoteForward暴露成远端 localhost 端口,再在 Remote Settings 里把http.proxy指向这个端口。
这样配置以后,Codex 插件既能运行在远端、读写远程项目文件,又能通过本地电脑已有的代理访问网络。
References
Microsoft. Network Connections in Visual Studio Code. https://code.visualstudio.com/docs/setup/network (accessed May 12, 2026).
Microsoft. Remote Development using SSH. https://code.visualstudio.com/docs/remote/ssh (accessed May 12, 2026).
OpenAI. Codex IDE extension. https://developers.openai.com/codex/ide (accessed May 12, 2026).
OpenAI. Codex IDE extension settings. https://developers.openai.com/codex/ide/settings (accessed May 12, 2026).
OpenBSD. ssh_config(5). https://man.openbsd.org/ssh_config (accessed May 12, 2026).
OpenAI Codex GitHub Issue #2987. VS Code Remote-SSH: Codex extension stuck on “Thinking”. https://github.com/openai/codex/issues/2987 (accessed May 12, 2026).
OpenAI Codex GitHub Issue #11998. Linux / VS Code / Codex token exchange failed when system proxy enabled. https://github.com/openai/codex/issues/11998 (accessed May 12, 2026).
原创文章,转载请标明出处
Made by Mike_Zhang
