1. 原理
通过 SSH 反向隧道,把服务器上的代理请求转发到本机,再由本机的代理访问外网。因此前提是:本机已经能够正常访问 Codex / ChatGPT 相关服务,并且本机代理端口可用。
端口对应关系:
- 本机代理端口:127.0.0.1:7890
- 服务器上的转发入口:127.0.0.1:7891
服务器访问 127.0.0.1:7891 时,请求会通过 SSH 隧道转发到本机的 127.0.0.1:7890。本机 7890 端口取决于你的代理端口,服务器 7891 端口被占用可以更换为其他端口,请根据实际情况修改。
2. 步骤
2.1 确认本机代理可用
在本机运行:
curl -x http://127.0.0.1:7890 -I https://www.google.com
如果能返回 HTTP 响应头,说明本机代理端口可用。
2.2 配置反向隧道
在本机 SSH 配置文件中加入:
- macOS / Linux:~/.ssh/config
- Windows:C:\\Users\\你的用户名\\.ssh\\config
Host myserver
HostName server_ip
User username
RemoteForward 127.0.0.1:7891 127.0.0.1:7890
如果不想配置 SSH 别名,也可以跳过本节,在下一步直接使用完整命令启动隧道。
2.3 开启并验证反向隧道
2.3.1 本机启动隧道
推荐使用 SSH 配置中的 myserver 启动:
ssh -N myserver
也可以不使用 SSH 配置,直接写完整命令:
ssh -N -R 127.0.0.1:7891:127.0.0.1:7890 username@server_ip
这个命令所在的 SSH 连接必须保持运行。关闭终端后,服务器上的 7891 监听会消失。
2.3.2 服务器验证隧道
在服务器上运行:
ss -lntp | grep 7891
若命令有输出,说明服务器上的 7891 已经开始监听,反向隧道建立成功。
2.4 服务器上安装 Codex
npm i -g @openai/codex
2.5 服务器上配置代理环境变量
export http_proxy=http://127.0.0.1:7891
export https_proxy=http://127.0.0.1:7891
注意:export 只对当前终端生效。若需要永久生效,可以写入服务器上的 ~/.bashrc、~/.zshrc 等 shell 配置文件。
2.6 服务器上验证代理
在服务器上运行:
curl -x http://127.0.0.1:7891 -I https://www.google.com
如果能返回 HTTP 响应头,说明代理链路基本可用。
3. 使用
服务器终端输入:
codex
如果能够正常进入 Codex CLI 交互界面,且没有网络连接报错,则说明配置成功。
4. 常见问题
4.1 服务器上看不到 7891 监听
在服务器上运行:
ss -lntp | grep 7891
如果没有输出,通常说明 SSH 隧道没有建立或已经断开。请回到本机,重新运行:
ssh -N myserver
或者:
ssh -N -R 127.0.0.1:7891:127.0.0.1:7890 username@server_ip
4.2 关闭终端后代理失效
这是正常现象。反向隧道依赖 SSH 连接存活。SSH 连接断开后,服务器上的 7891 监听会消失。
如果希望后台运行,可以使用:
ssh -fN myserver
如果希望自动断线重连,可以考虑使用 autossh:
autossh -M 0 -fN myserver
4.3 服务器禁止反向转发
如果 SSH 报错显示远程转发失败,需要检查服务器的 /etc/ssh/sshd_config 是否允许 TCP 转发:
AllowTcpForwarding yes
修改后需要在服务器上重载 SSH 服务:
sudo systemctl reload sshd
或:
sudo systemctl reload ssh
4.4 其他问题
直接问 AI。
网硕互联帮助中心




评论前必须登录!
注册