一、问题背景

我的目标是:

Windows + VSCode + Remote SSH + 远程 Linux 服务器 环境中
让远程服务器能够正常使用 Codex / OpenAI API

但遇到了两个问题:

1️⃣ 远程服务器访问 OpenAI 被限制(403 Country not supported)
2️⃣ OAuth 登录回调 localhost 失败(ERR_CONNECTION_REFUSED)
在这里插入图片描述


在这里插入图片描述

解决思路:

  • SSH 反向隧道让远程服务器走本地代理
  • VSCode Port Forward解决 OAuth 回调

二、本机开启代理

先确保你本机有可用代理。

假设代理端口是:

127.0.0.1:9674

验证代理是否可用:

PowerShell:

$env:HTTP_PROXY="http://127.0.0.1:9674"
$env:HTTPS_PROXY="http://127.0.0.1:9674"
curl.exe -I https://api.openai.com

如果返回:

HTTP/1.1 200 Connection established

说明代理正常。


三、建立 SSH 反向代理隧道

目的:

让远程服务器的流量通过 你的本地代理 出网。

执行:

ssh -N -T -R 18080:127.0.0.1:9674 username@xx.xx.xx.xx

含义:

参数 作用
-R 18080:127.0.0.1:9674 远程18080 → 本地9674
-N 不执行命令
-T 不分配终端

建立后:

远程服务器访问

127.0.0.1:18080

就等于访问:

Windows 127.0.0.1:9674

四、远程服务器测试代理

登录远程服务器:

ssh username@xx.xx.xx.xx

测试:

curl -I -x http://127.0.0.1:18080 https://api.openai.com

如果返回:

HTTP/1.1 200 Connection established

说明代理成功。


五、配置远程服务器代理环境变量

编辑:

nano ~/.bashrc

添加:

export HTTP_PROXY=http://127.0.0.1:18080
export HTTPS_PROXY=http://127.0.0.1:18080
export ALL_PROXY=http://127.0.0.1:18080

刷新:

source ~/.bashrc

验证:

env | grep -i proxy

六、VSCode Remote SSH 连接服务器

在 VSCode:

Remote-SSH → Connect to Host

连接:

username@xx.xx.xx.xx

七、Codex 登录问题(OAuth 回调失败)

登录时浏览器会打开:

http://localhost:xxxx

但监听端口在远程服务器。

所以浏览器访问失败:

ERR_CONNECTION_REFUSED

八、解决方法:VSCode 端口转发

打开 VSCode:

PORTS 面板

你会看到:

在这里插入图片描述

1455   localhost:1455
18080  127.0.0.1:18080

其中:

端口 作用
1455 OAuth 回调
18080 代理隧道

VSCode 自动帮你完成:

localhost:1455 → remote:1455

浏览器回调就能成功。


九、最终网络结构

完整结构:

浏览器
   │
   ▼
localhost:1455
   │
   ▼
VSCode Port Forward
   │
   ▼
远程服务器 1455
   │
   ▼
Codex OAuth 登录

API 网络:

远程服务器
   │
HTTP_PROXY=127.0.0.1:18080
   │
   ▼
SSH RemoteForward
   │
   ▼
Windows 127.0.0.1:9674
   │
   ▼
本地代理
   │
   ▼
OpenAI API

十、最终开发环境

你的开发架构现在是:

Windows
 ├─ 代理工具
 ├─ VSCode
 │
 └─ Remote SSH
       │
       ▼
远程 Linux 服务器
       │
       ├─ Codex
       ├─ Node
       ├─ MySQL
       └─ 项目代码

所有远程流量:

npm / git / codex / openai
        │
        ▼
SSH隧道 → 本地代理

十一、强烈建议(自动化配置)

为了以后不用手动运行 SSH 隧道,建议在:

~/.ssh/config

添加:

Host empire
    HostName xx.xx.xx.xx
    User username
    RemoteForward 18080 127.0.0.1:9674
    ServerAliveInterval 60

以后:

ssh empire

自动建立代理隧道。


十二、总结(关键点)

要让 远程服务器使用本地代理 + Codex 登录成功,必须完成三件事:

① SSH 反向隧道

Remote 18080 → Local 9674

② 远程代理变量

HTTP_PROXY=127.0.0.1:18080

③ VSCode Port Forward

localhost:1455 → remote:1455

只要这三步正确,Codex 就可以正常使用

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐