Codex 远程服务器登陆的实现步骤

Written by

in

文章目录
  • 实现: Codex 安装在远程 Linux 服务器上 登录与对话请求全部在服务器端完成 可配合 Remote SSH / VS Code 正常访问服务器文件 无需 API Key,仅使用 codex sign 登录 核心思路:通过 SSH RemoteForward 将服务器的网络请求转发到本地代理端口,让服务器“借用”本机梯子出网。
  • 服务器无法直接访问 OpenAI 相关域名,导致 Codex 登录失败,而本机代理可以正常访问外网。通过 SSH 反向端口转发的流程如下: 服务器访问 127.0.0.1:17897↓ SSH 隧道Mac 访问 127.0.0.1:7897(本地代理)↓外网 即:服务器通过 SSH 隧道,将流量转回本地代理端口。
  • 在 Mac 终端执行: nc -vz 127.0.0.1 7897 必须看到类似以下输出,否则说明代理未启动或端口错误: Connection to 127.0.0.1 port 7897 [tcp/*] succeeded!
  • 在 Mac 执行(请替换 USER 与 SERVER_IP): ssh -N -R 17897:127.0.0.1:7897 USER@SERVER_IP 示例: ssh -N -R 17897:127.0.0.1:7897 ubuntu@1.2.3.4 说明: 17897 为服务器端本地端口 7897 为本地代理端口 注意:隧道建立后不要关闭该终端。
  • 另开一个终端登录服务器: ssh USER@SERVER_IP 在服务器执行: nc -vz 127.0.0.1 17897 若显示以下内容,说明转发成功: Connection succeeded!
  • 在服务器执行: curl -I -x “http://127.0.0.1:17897” “https://www.google.com” 若返回类似以下状态码,说明服务器已经可以借用本地代理访问外网: HTTP/2 200
  • 在服务器终端执行临时代理配置: export http_proxy=”[http://127.0.0.1:17897](http://127.0.0.1:17897)” export https_proxy=”[http://127.0.0.1:17897](http://127.0.0.1:17897)” 然后登录 Codex: codex sign 后续即可正常进行对话: codex chat
  • 不建议在服务器端配置永久全局代理,否则一旦 SSH 隧道断开,系统网络会全部卡住。推荐使用快捷命令按需开启。 在服务器编辑 ~/.bashrc: nano ~/.bashrc 在文件末尾添加: proxy_on() { export http_proxy=”[http://127.0.0.1:17897](http://127.0.0.1:17897)” export https_proxy=”[http://127.0.0.1:17897](http://127.0.0.1:17897)” echo “Proxy enabled” } proxy_off() { unset http_proxy https_proxy echo “Proxy disabled” } 使其生效: source ~/.bashrc 使用方式: proxy_on # 开启代理 codex chat # 愉快使用 proxy_off # 用完关闭代理
  • 为了避免每次都手动输长长的 SSH 命令,可以在 Mac 端配置自动化脚本。
  • 不要将本地的 .codex 文件夹直接复制到服务器。 不要在本地运行 Codex 再试图操作远程文件。 SSH 隧道关闭后,如果服务器环境变量未 unset,服务器将无法正常访问外网(这就是为什么推荐使用 proxy_off)。 该方案成本极低、结构清晰、无隐私泄漏风险,非常适合长期使用 Remote SSH 工作流的开发者。 到此这篇关于Codex 远程服务器登陆的实现步骤的文章就介绍到这了,更多相关Codex 远程服务器登陆内容请搜索风君子博客以前的文章或继续浏览下面的相关文章,希望大家以后多多支持风君子博客!
  • 目录
    • 目标
    • 环境说明
      • 本机
      • 远程服务器
    • 原理说明
      • Step 1:确认本地代理端口可用
        • Step 2:建立 SSH RemoteForward 隧道
          • Step 3:服务器端验证隧道
            • Step 4:验证服务器是否可通过代理访问外网
              • Step 5:让 Codex 走代理登录
                • 长期使用方案(推荐 proxy_on / proxy_off)
                  • Mac 端一键脚本(推荐)
                    • 1. 配置 SSH 免密登录
                    • 2. 开启隧道脚本
                    • 3. 关闭隧道脚本
                  • 日常使用流程
                    • 🟢 开始工作:
                    • 🔴 结束工作:
                  • 注意事项

                    实现:

                    • Codex 安装在远程 Linux 服务器上
                    • 登录与对话请求全部在服务器端完成
                    • 可配合 Remote SSH / VS Code 正常访问服务器文件
                    • 无需 API Key,仅使用 codex sign 登录

                    核心思路:
                    通过 SSH RemoteForward 将服务器的网络请求转发到本地代理端口,让服务器“借用”本机梯子出网。

                    • macOS
                    • 本地代理端口:7897(示例)

                    • 云服务器(ECS / VPS)
                    • Ubuntu 20 / 22
                    • 已安装 Codex,但无法登录

                    服务器无法直接访问 OpenAI 相关域名,导致 Codex 登录失败,而本机代理可以正常访问外网。通过 SSH 反向端口转发的流程如下:

                    服务器访问 127.0.0.1:17897
                    ↓ SSH 隧道
                    Mac 访问 127.0.0.1:7897(本地代理)

                    外网

                    即:服务器通过 SSH 隧道,将流量转回本地代理端口。

                    在 Mac 终端执行:

                    nc -vz 127.0.0.1 7897
                    

                    必须看到类似以下输出,否则说明代理未启动或端口错误:

                    Connection to 127.0.0.1 port 7897 [tcp/*] succeeded!
                    

                    在 Mac 执行(请替换 USERSERVER_IP):

                    ssh -N -R 17897:127.0.0.1:7897 USER@SERVER_IP
                    

                    示例:

                    ssh -N -R 17897:127.0.0.1:7897 ubuntu@1.2.3.4

                    说明:

                    • 17897 为服务器端本地端口
                    • 7897 为本地代理端口
                    • 注意:隧道建立后不要关闭该终端。

                    另开一个终端登录服务器:

                    ssh USER@SERVER_IP
                    

                    在服务器执行:

                    nc -vz 127.0.0.1 17897
                    

                    若显示以下内容,说明转发成功:

                    Connection succeeded!
                    

                    在服务器执行:

                    curl -I -x "http://127.0.0.1:17897" "https://www.google.com"
                    

                    若返回类似以下状态码,说明服务器已经可以借用本地代理访问外网:

                    HTTP/2 200
                    

                    在服务器终端执行临时代理配置:

                    export http_proxy="[http://127.0.0.1:17897](http://127.0.0.1:17897)"
                    export https_proxy="[http://127.0.0.1:17897](http://127.0.0.1:17897)"
                    

                    然后登录 Codex:

                    codex sign
                    

                    后续即可正常进行对话:

                    codex chat
                    

                    不建议在服务器端配置永久全局代理,否则一旦 SSH 隧道断开,系统网络会全部卡住。推荐使用快捷命令按需开启。

                    在服务器编辑 ~/.bashrc

                    nano ~/.bashrc
                    

                    在文件末尾添加:

                    proxy_on() {
                      export http_proxy="[http://127.0.0.1:17897](http://127.0.0.1:17897)"
                      export https_proxy="[http://127.0.0.1:17897](http://127.0.0.1:17897)"
                      echo "Proxy enabled"
                    }
                    
                    proxy_off() {
                      unset http_proxy https_proxy
                      echo "Proxy disabled"
                    }
                    

                    使其生效:

                    source ~/.bashrc
                    

                    使用方式:

                    proxy_on      # 开启代理
                    codex chat    # 愉快使用
                    proxy_off     # 用完关闭代理
                    

                    为了避免每次都手动输长长的 SSH 命令,可以在 Mac 端配置自动化脚本。

                    ssh-copy-id -i ~/.ssh/id_ed25519.pub USER@SERVER_IP
                    

                    验证是否成功:

                    ssh USER@SERVER_IP "echo OK"
                    

                    创建存放脚本的目录及文件:

                    mkdir -p ~/bin
                    nano ~/bin/codex-tunnel-on
                    

                    写入以下内容(注意替换 USER@SERVER_IP):

                    #!/usr/bin/env bash
                    
                    nohup ssh -N 
                      -o ExitOnForwardFailure=yes 
                      -o ServerAliveInterval=30 
                      -R 17897:127.0.0.1:7897 
                      USER@SERVER_IP 
                      >/dev/null 2>&1 &
                    
                    echo "Codex tunnel started"
                    

                    赋予执行权限:

                    chmod +x ~/bin/codex-tunnel-on
                    

                    创建文件:

                    nano ~/bin/codex-tunnel-off
                    

                    写入以下内容:

                    #!/usr/bin/env bash
                    pkill -f "ssh.*17897:127.0.0.1:7897"
                    echo "Codex tunnel stopped"
                    

                    赋予执行权限:

                    chmod +x ~/bin/codex-tunnel-off
                    

                    1. Mac 端运行隧道脚本:
                      codex-tunnel-on
                      
                    2. 服务器端开启代理并使用:
                      proxy_on
                      codex chat
                      

                    1. 服务器端关闭代理:
                      proxy_off
                      
                    2. Mac 端关闭隧道:
                      codex-tunnel-off
                      

                    • 不要将本地的 .codex 文件夹直接复制到服务器。
                    • 不要在本地运行 Codex 再试图操作远程文件。
                    • SSH 隧道关闭后,如果服务器环境变量未 unset,服务器将无法正常访问外网(这就是为什么推荐使用 proxy_off)。
                    • 该方案成本极低、结构清晰、无隐私泄漏风险,非常适合长期使用 Remote SSH 工作流的开发者。

                    到此这篇关于Codex 远程服务器登陆的实现步骤的文章就介绍到这了,更多相关Codex 远程服务器登陆内容请搜索风君子博客以前的文章或继续浏览下面的相关文章,希望大家以后多多支持风君子博客!

                    站内搜索