【Codex】Ubuntu 安装 Codex CLI 并解决 Clash 代理与账号认证问题

目录

1.概要

[2. 安装基础依赖](#2. 安装基础依赖)

[3. 安装 Node.js](#3. 安装 Node.js)

[4. 安装 Codex CLI](#4. 安装 Codex CLI)

[5. Codex CLI 的登录方式说明](#5. Codex CLI 的登录方式说明)

[6. 检查 Clash 代理端口](#6. 检查 Clash 代理端口)

[7. Firefox 无法访问 Google 的原因](#7. Firefox 无法访问 Google 的原因)

[8. 给当前终端配置代理](#8. 给当前终端配置代理)

[9. 重新执行 Codex 登录](#9. 重新执行 Codex 登录)

[10. 成功进入 Codex CLI](#10. 成功进入 Codex CLI)


1.概要

最近在 Linux 虚拟机环境中安装并使用 OpenAI Codex CLI。我的环境是:

  • 系统版本:Ubuntu 24
  • 运行环境:Linux 虚拟机
  • 代理工具:Clash Verge
  • 登录方式:ChatGPT 账号登录
  • Codex CLI 版本:v0.125.0

整个过程中主要遇到了三个问题:

  1. Codex CLI 如何安装;
  2. 解决 Clash 代理问题;
  3. codex login --device-auth 登录时报 403 Forbidden 如何处理。
  4. 解决 Codex CLI 登录认证问题。

2. 安装基础依赖

先更新系统软件源:

复制代码
sudo apt update
sudo apt upgrade -y

安装常用基础工具:

复制代码
sudo apt install -y curl git build-essential ca-certificates

3. 安装 Node.js

Codex CLI 通过 npm 安装,因此需要先安装 Node.js。

这里使用 Node.js 20:

复制代码
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

检查版本:

复制代码
node -v
npm -v

只要能正常输出版本号,就说明 Node.js 和 npm 已经安装成功。

4. 安装 Codex CLI

使用 npm 全局安装 Codex CLI:

复制代码
npm i -g @openai/codex

安装完成后检查版本:

复制代码
codex --version

也可以查看帮助信息:

复制代码
codex --help

如果能正常输出版本或帮助信息,说明 Codex CLI 已经安装成功。


5. Codex CLI 的登录方式说明

可以直接执行:

复制代码
codex login

如果当前 Linux 环境没有图形浏览器,或者是在远程服务器、虚拟机中使用,可以执行(我使用的这种方式):

复制代码
codex login --device-auth

该命令会生成一个认证链接和一次性验证码,需要在浏览器中打开链接并输入验证码完成授权。

6. 检查 Clash 代理端口

我的 Ubuntu 虚拟机中安装了 Clash Verge,但一开始并不确定终端是否走了代理。

先尝试常见端口 7890

复制代码
curl -I -x http://127.0.0.1:7890 https://www.google.com

结果报错,这说明本机 7890 端口没有代理服务在监听。:

复制代码
curl: (7) Failed to connect to 127.0.0.1 port 7890 after 0 ms: Couldn't connect to server

后来发现当前 Clash Verge 代理口为 7890。

复制代码
curl -I -x http://127.0.0.1:7897 https://www.google.com

返回结果类似:

复制代码
HTTP/1.1 200 Connection established

HTTP/2 200
content-type: text/html; charset=ISO-8859-1

这说明 Clash 的 HTTP 代理端口是 7897,并且通过该代理可以正常访问 Google。


7. Firefox 无法访问 Google 的原因

虽然命令行通过代理可以访问 Google,但虚拟机中的 Firefox 浏览器仍然无法访问。

原因是:Firefox 没有配置使用 Clash 的代理端口。

可以在 Firefox 中手动设置代理:

  1. 打开 Firefox;

  2. 进入 Settings / 设置;

  3. 搜索 proxy;

  4. 打开 Network Settings / 网络设置;

  5. 选择 Manual proxy configuration / 手动代理配置;

  6. 设置代理:

    HTTP Proxy: 127.0.0.1
    Port: 7897

同时勾选:

复制代码
Also use this proxy for HTTPS

或者 HTTPS Proxy 也填写:

复制代码
HTTPS Proxy: 127.0.0.1
Port: 7897

保存后再次访问:

复制代码
https://www.google.com

如果 Clash 节点正常,Firefox 就可以访问 Google。

8. 给当前终端配置代理

Codex CLI 是在终端中运行的,因此需要让当前终端也走 Clash 代理。

由于我的代理端口是 7897,所以执行:

复制代码
export HTTP_PROXY=http://127.0.0.1:7897
export HTTPS_PROXY=http://127.0.0.1:7897
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897

有些程序还会读取 ALL_PROXY

复制代码
export ALL_PROXY=http://127.0.0.1:7897
export all_proxy=http://127.0.0.1:7897

然后测试 OpenAI 认证域名:

复制代码
curl -I https://auth.openai.com

如果能返回正常 HTTP 响应,说明当前终端访问 OpenAI 认证服务基本没有问题。


9. 重新执行 Codex 登录

配置代理后,还需要在chatgpt web端开启安全权限:

Linux终端执行:

复制代码
codex login --device-auth

这次成功进入 device code 登录流程:

复制代码
Welcome to Codex [v0.125.0]
OpenAI's command-line coding agent

Follow these steps to sign in with ChatGPT using device code authorization:

1. Open this link in your browser and sign in to your account
   https://auth.openai.com/codex/device

2. Enter this one-time code (expires in 15 minutes)
   XXXX-XXXX

Device codes are a common phishing target. Never share this code.

注意:这里的验证码是一次性的,通常 15 分钟内有效。验证码不要分享给别人。

接下来:

  1. 在浏览器中打开:

    https://auth.openai.com/codex/device

  2. 登录自己的 ChatGPT / OpenAI 账号;

  3. 输入终端中显示的一次性验证码;

  4. 授权成功后回到 Linux 终端;

  5. Codex CLI 会自动完成登录。

如果验证码过期,重新执行即可:

复制代码
codex login --device-auth

10. 成功进入 Codex CLI

在web端认证成功后,在终端执行:

复制代码
codex

进入交互界面:

复制代码
╭───────────────────────────────────────╮
│ >_ OpenAI Codex (v0.125.0)            │
│                                       │
│ model:     gpt-5.4   /model to change │
│ directory: ~                          │
╰───────────────────────────────────────╯

这说明 Codex CLI 已经可以正常使用。

相关推荐
orion5715 小时前
Missing Semester Class1:course overview and introduction of shell
linux
用户1204872216121 小时前
Linux驱动编译与加载
linux·嵌入式
Augustzero1 天前
Codex Desktop 新建会话无法发送消息:一次由旧版 CLI 路径引发的故障排查
chatgpt·agent
用户805533698031 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698031 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
七歌杜金房2 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
xn71332 天前
ChatGPT 生图如何自动导入 Astro 内容站:base64 桥接、frontmatter 更新和封面校验
chatgpt
tntxia3 天前
linux curl命令详解_curl详解
linux
扛枪的书生3 天前
Linux 网络管理器用法速查
linux
gptAI_plus3 天前
用 React + TypeScript 写一个世界杯淘汰赛对阵树组件
chatgpt·openai