这套部署把服务器现有的 ChatGPT/Codex 登录安全地提供给本机客户端,同时保留服务器原有 Codex 的正常使用:
- Claude Code 使用 Anthropic Messages:
http://127.0.0.1:18317 - Codex 使用 OpenAI Responses:
http://127.0.0.1:18318/v1 - 两个本地端口通过 SSH 转发到服务器唯一的回环监听
127.0.0.1:8317
服务器不会向公网监听,也没有修改或替换系统的 /usr/local/bin/codex。
官方 Codex app-server 是网关内部唯一允许使用原始 ~/.codex/auth.json 和执行 OAuth 刷新的组件。认证镜像程序只输出固定的八个字段:
type, access_token, account_id, id_token, last_refresh,
refresh_interval_seconds, websockets, disabled
镜像永远不包含 refresh_token。CLIProxyAPI 运行在独立 systemd mount namespace 中,逻辑 HOME 和真实 /data1/... HOME 都不可见;每次启动还会在沙箱内断言原始 auth.json 不可读。它只得到只读的 access-only 镜像,因此不能轮换、复用或破坏服务器登录态。
镜像在 access token 剩余 48 小时时请求官方 app-server 刷新,在不足 1 小时且无法安全刷新时清空 bearer 字段并失败关闭。官方 Codex 的刷新路径会先重新加载磁盘认证;已有直接 Codex 进程发现 app-server 已更新认证后会采用新状态,而不是再次使用旧 refresh token。首次安装明确使用 --no-refresh,上线和启用自启动时均已确认原始认证文件未变化。
- OpenAI Codex CLI/app-server:
0.144.5 - CLIProxyAPI no-plugin:
7.2.80,commit09da52ad509e2c18e7b9540db3b98c2214c280aa - CLIProxyAPI 发布包 SHA-256:
36616fdd8240719902d0c767a1f7445ea248950f29d8785996b93046472840b6
模型目录固定在已校验的 CLIProxyAPI 二进制中,不在运行时自动更新。每日更新任务只记录可用版本,绝不下载、切换或重启;新版本必须重新固定校验值并通过 live canary。
查看状态:
systemctl --user status codex-gateway.target
systemctl --user status codex-gateway-app-server.service
systemctl --user status codex-gateway-proxy.service运行不调用模型的健康检查:
~/.local/share/codex-gateway/libexec/healthcheck.sh手动运行会实际消耗少量额度的完整协议 canary:
~/.local/share/codex-gateway/libexec/protocol_canary.py它检查下游鉴权、模型发现、Messages、count_tokens、两种 SSE、Responses、Chat Completions、Anthropic 工具往返、Responses 函数往返和 /responses/compact,不会打印 key 或响应正文。
网关 key 位于 ~/.config/codex-gateway/api-key,权限为 0600。可通过 SSH 直接送入本机剪贴板而不在终端显示:
# macOS
ssh YOUR_SSH_ALIAS 'cat ~/.config/codex-gateway/api-key' | pbcopy
# Linux Wayland(二选一)
ssh YOUR_SSH_ALIAS 'cat ~/.config/codex-gateway/api-key' | wl-copy
# Linux X11(二选一)
ssh YOUR_SSH_ALIAS 'cat ~/.config/codex-gateway/api-key' | xclip -selection clipboard剪贴板本身仍是敏感位置;粘贴到客户端后应按桌面环境的方式清空。
不要把服务器 8317 绑定到 0.0.0.0,也不要复制 ~/.codex/auth.json 到本机。仓库提供 macOS launchd 和 Linux systemd --user 常驻隧道安装器;Linux 的正常安装/卸载无需 root,只有可选的 linger 是否获准由本机管理员策略决定。客户端安装和 CC Switch/Codex 配置见 客户端说明。
scripts/auth_mirror.py:access-only 原子认证镜像scripts/protocol_canary.py:手动 live conformance suiteserver/:固定版本、CLIProxyAPI 配置和codex-gateway包装器systemd/:用户级服务模板client/macos/:launchd SSH 隧道和客户端 smoke testclient/linux/:systemd 用户级 SSH 隧道、Codex 配置和客户端 smoke testclient/cc-switch/:Claude Code 初始与分层模型模板tests/:认证、安全边界和客户端资产回归测试
~/.local/bin/codex-gateway 是可选包装器:普通 TUI 连接共享 app-server,exec/review 使用完全隔离、没有 OAuth 文件的 CODEX_HOME 经 Responses 网关运行。维护认证时必须显式使用 codex-gateway maintenance ...;普通 codex 命令仍是服务器原有安装。