使用SSH连接远程服务器时使用codex登陆时出现403错误
本文介绍了在Windows+VSCode+Remote SSH环境下让远程Linux服务器访问OpenAI API的解决方案。主要解决两个问题:1)远程服务器403访问限制,通过SSH反向隧道(18080→本地9674)实现代理;2)OAuth登录回调失败,利用VSCode端口转发将localhost:1455映射到远程1455端口。关键步骤包括建立SSH隧道、配置远程环境变量、设置端口转发,最终
一、问题背景
我的目标是:
在 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 就可以正常使用。
更多推荐




所有评论(0)