返回文章列表
/ 工具 / 环境

Codex CLI 安装与可用化记录

Ubuntu 无 GPU 环境下,解决地域限制与本地模型太慢两个问题,最终用上可用的 Codex。

CodexCLI开发环境

记录本机安装 OpenAI Codex CLI 后,如何解决「地域限制 + 本地模型太慢」两个问题,最终用上可用的 Codex。 环境:Ubuntu 24.04,Node v24.15.0(nvm),无 GPU(纯 CPU),网络对 GitHub release / OpenAI 官方均存在地域限制。


一、问题背景

本机执行 codex 连 OpenAI 官方时报错:

{"error":{"code":"unsupported_country_region_territory",
          "message":"Country, region, or territory not supported", ...}}

这是 OpenAI 服务端按出口 IP 地理位置做的硬性拦截,不是配置错误,无法通过改开关消除。


二、已完成的操作

1. 安装 / 升级 Codex CLI

  • 全局已装在 nvm 的 Node 环境:<本机路径>
  • 已升级到最新版 codex-cli 0.164.0(npm install -g @openai/codex@latest)
  • 验证:codex --version → codex-cli 0.164.0 ✅

2. 本地模型路线(ollama)—— 已放弃

尝试用本地模型绕过地域限制,结论:本机纯 CPU 推理太慢,无实用价值。

  • 安装了 ollama(免 root,解压到 ~/.local/bin/ollama,v0.40.11)
  • 拉取过 qwen2.5-coder:7b(4.7 GB)与尝试 gpt-oss:20b(~13 GB)
  • 实测 CPU 推理:7B 仅数 token/s,20B 会更慢约 3 倍
  • 最终决定:删除全部本地模型并卸载 ollama(见下方「清理记录」)

关键经验:CPU-only 机器跑本地大模型不现实;要快必须让 OpenAI 自己的 GPU 跑。


三、最终方案:连通真实 Codex(二选一)

本地模型行不通,只能让请求到达 OpenAI 官方(由官方 GPU 执行)。两种方式:

方案 A:代理出口(你有支持地区的代理 / VPN)

export HTTPS_PROXY=http://你的代理host:端口
export HTTP_PROXY=http://你的代理host:端口
export OPENAI_API_KEY=<你的 key>
codex
  • Codex 基于 OpenAI SDK,会读取 HTTPS_PROXY / HTTP_PROXY
  • 注意:OpenAI 会封大量已知 VPN / 数据中心 IP,要选住宅 IP 或干净 VPS IP 才稳

方案 B:OpenAI 兼容网关(国内中转 / 厂商网关)

把 base_url 指向兼容端点,由网关侧解决地域问题:

# ~/.codex/config.toml
[model]
provider = "openai"
name = "网关支持的模型名"          # 如 gpt-5-codex
base_url = "https://你的网关地址/v1"
export OPENAI_API_KEY=<你的 key>
codex
  • base_url 是 codex 0.164 识别的合法配置项(已从二进制确认)

四、怎么找代理(方案 A 的前提)

  1. 商业 VPN:选带美/欧/日/新加坡节点、最好「住宅 IP」类型的服务。注意 OpenAI 常封 VPN IP 段,不一定通。
  2. 自建代理(最稳):租一台支持地区的 VPS(最便宜 1C1G 即可只做代理),跑 squid / tinyproxy 或 v2ray / shadowsocks,本机 export HTTPS_PROXY=http://VPS公网IP:端口。VPS 干净 IP 比公共 VPN 更不易被封。
  3. 买现成代理:从服务商买 Residential(住宅)HTTP/SOCKS5 代理,挑支持地区节点。住宅 IP 最不容易被封。

注意:若拿到的是 SOCKS5,codex 的 HTTPS_PROXY 不认,需套转换层(如 privoxy 把 SOCKS5 转 HTTP,或 proxychains 包住 codex)。


五、拿到代理/网关后的配置步骤

  1. 提供代理地址(http://host:port 最佳)或网关三项(base_url + 模型名 + key)
  2. 写入环境变量或 ~/.codex/config.toml
  3. 跑连通性验证,确认不再报 unsupported_country_region_territory

六、清理记录(已执行)

  • ollama rm qwen2.5-coder:7b + 删 gpt-oss:20b 半成品
  • rm -f ~/.local/bin/ollama、rm -rf ~/.ollama
  • rm -f ~/.codex/config.toml(之前为本地模型所建,已无用)
  • 从 ~/.bashrc / ~/.profile 移除为 ollama 加的 export PATH="$HOME/.local/bin:$PATH"
  • 全局 codex CLI 保留(v0.164.0)
  • 磁盘回到 77% 占用(52G 空闲)

七、下载过程中的网络坑(备查)

  • github.com 的 release 资产下载被掐(http=000),但 api.github.com 可达
  • 解决:用 ghproxy.net 镜像获取 ollama 二进制(先下 .tar.zst,断点续传后 sha256 校验一致)
  • ollama 官方 registry 拉模型中途会卡 0 速,重启 ollama pull 即可恢复速度
  • 磁盘曾 100% 占满(14B 权重 + 7B 失败残留 partial 共约 27GB 垃圾),清空 ~/.ollama/models 后恢复