在 VPS 上跑 Codex,各部分怎么配合
这里涉及三台机器,各司其职:
- Linux 服务器运行 Codex。它的项目里的对话在服务器上运行命令、读取文件、写入修改,用的是服务器的依赖、安全策略和算力。桌面应用通过 SSH,在远程用户的登录 shell 里启动 Codex。
- 一台 Mac 或 Windows 电脑运行 ChatGPT 桌面应用,SSH 连接由它维持。你的手机通信的对象就是这台主机,所以它也必须保持唤醒并在线。
- 你的手机运行 ChatGPT App,通过远程控制来控制这台主机。它负责发送提示词和批准,并向你显示 diff、终端输出和通知。
- OpenAI 的文档只把 macOS 和 Windows 列为远程控制主机,所以把手机直接和 Linux 服务器配对,文档里没有介绍。改为把手机和那台 Mac 或 Windows 电脑配对,最好是一台常开的 Mac mini。
需要准备什么
- 一台能用 SSH 登录的 Linux 服务器。Codex CLI 在 GitHub 上的安装指南列出的是 Ubuntu 20.04+ 或 Debian 10+,内存最低 4 GB,推荐 8 GB;正式版构建有 x86_64 和 ARM64 两种。
- 一台装了 ChatGPT 桌面应用的 Mac 或 Windows 电脑,用来把服务器添加为 SSH 主机。如果想用手机访问服务器,这台电脑必须一直开着。
- 一个用于 Codex 的 ChatGPT 账号。OpenAI 的套餐对照表列出:SSH 远程连接支持 Plus、Pro、Business、Enterprise 和 API key;手机远程控制支持 Plus、Pro、Business 和 Enterprise,但不支持 API key。
- 手机上的 ChatGPT App(iOS 或 Android)。
怎么在 Linux VPS 上配置 Codex
租一台服务器并确认 SSH 能用
创建一台 Linux 服务器,确认能从要运行桌面应用的那台 Mac 或 Windows 电脑用 SSH 登录。使用基于密钥的登录,并用一个只有 Codex 所需权限的账号,而不是 root。
在服务器上安装 Codex CLI
在服务器上运行 OpenAI 的安装脚本;以后用同一条命令就能更新,用 npm 也可以。为 Codex 的沙盒安装 bubblewrap:如果 PATH 里没有
bwrap,Codex 会退而使用一个自带的辅助程序,它需要非特权用户命名空间(unprivileged user namespaces),而且 Codex 启动时会发出警告。在 Ubuntu 24.04 上,可能要加载bwrap-userns-restrict这个 AppArmor 配置文件后,警告才会消失。# On the server: install the Codex CLI (run it again to update) curl -fsSL https://chatgpt.com/codex/install.sh | sh # or: npm install -g @openai/codex # Codex's sandbox on Linux uses bubblewrap sudo apt install bubblewrap # Fedora: sudo dnf install bubblewrap在无界面的服务器上登录
服务器上没有浏览器,所以用设备码登录:运行
codex login --device-auth,或者选择 Sign in with Device Code,然后按提示操作。它还是 Beta 版,而且必须先在你的 ChatGPT 安全设置里开启设备码登录,或者由工作区管理员开启。如果用不了,就用ssh -L 1455:localhost:1455转发登录回调,再在服务器上运行codex login;或者从一台已经登录的电脑复制~/.codex/auth.json,并像对待密码一样保管这个文件。# Headless sign-in (beta; turn on device code login in ChatGPT first) codex login --device-auth # Or forward the browser callback from your computer, then run codex login ssh -L 1455:localhost:1455 you@devbox.example.com # Exits 0 once you're signed in codex login status把服务器加到 SSH 配置里
在 Mac 或 Windows 电脑上,往
~/.ssh/config里添加一条 Host 条目,确认ssh devbox能连上。Codex 会从这个文件读取具体的主机别名,忽略只有通配模式的条目。桌面应用在远程用户的登录 shell 里启动 Codex,所以codex必须在那里的 PATH 上。# ~/.ssh/config on the Mac or PC running the ChatGPT desktop app Host devbox HostName devbox.example.com User you IdentityFile ~/.ssh/id_ed25519 # Check it works before adding it in the app ssh devbox在桌面应用里把它添加为 SSH 主机
在 ChatGPT 桌面应用里打开 Settings > Connections,添加或启用这台 SSH 主机,然后在服务器上选一个项目文件夹。这个项目里的对话会在服务器上运行命令、读取文件、写入修改。
用手机控制它
在同一台 Mac 或 Windows 电脑上打开 Settings > Connections > Control this Mac or PC,选择 Set up 或 Add,再用 ChatGPT App 扫描二维码。在手机上打开 Codex,选中那台电脑和服务器上的项目,然后新开一个对话。这个对话经由那台电脑在服务器上运行,所以要让那台电脑保持唤醒并在线;家里的一台 Mac mini 就能胜任。配置细节和解决办法见 Codex 远程控制。
只用终端:在 tmux 里通过 SSH 运行 Codex CLI
如果你只需要终端,可以不用桌面应用。SSH 登录服务器,在 tmux 里运行 Codex CLI,然后分离(detach)会话:断开连接后 Codex 会继续运行,之后从任何一台能 SSH 登录的电脑都能重新接上。
在 tmux 里启动 Codex
如果还没有 tmux,就从你所用发行版的软件包里安装它,启动一个会话,然后在项目文件夹里运行
codex。# On the server: run Codex inside tmux so it outlives your SSH connection tmux new -s codex cd ~/my-project codex # Detach with Ctrl+B, then D. Reattach later with: tmux attach -t codex了解它做不到什么
这个方案和你的手机是不连通的。OpenAI 表示,手机端的设置要从桌面应用开始,没法从 CLI 设置。CLI 有一个实验性的
codex remote-control命令,文档把它和受管理的远程控制客户端以及 SSH 工作流联系在一起,但没有介绍怎么把手机和一台只运行 CLI 的服务器配对。
保证服务器安全
- 像对待任何 SSH 服务器一样对待它:用受信任的密钥、权限最小的账号,并且不要让未经认证的服务在公网上监听。
- 不要暴露 Codex 的 app server。
codex app-server --listen和codex --remote主要用于开发和调试,OpenAI 警告不要在共享网络或公共网络上开放 app-server 的传输通道。 - 要从服务器所在网络之外访问它,就用 VPN 或 Tailscale 这样的 mesh 组网工具;Tailscale 只通过加密的 WireGuard 链路连接你自己的设备。
- 保管好
~/.codex/auth.json;OpenAI 说要像对待密码一样对待它。 - 沙盒设置、安全控制和批准机制对服务器上的对话照样生效,和在本地一样;Linux 上的沙盒需要 bubblewrap。
在你的电脑和服务器之间转移对话
桌面应用可以把一个对话连同它的 Git 状态,在你的电脑和已连接的 SSH 主机之间转交。两边都需要有同一个 Git 仓库的已保存项目。在对话底部点选它当前运行的位置,选择目标主机(选 This computer 就转回本机),检查一遍,然后选择 Hand off。Codex 会在目标那边创建或复用一个 worktree。还在生成中的回复会被中断,而且对话没法转交给 Codex cloud。
完全不用服务器:Codex cloud
- Codex cloud 在 OpenAI 的云端运行编程任务。每个任务都有自己的工作空间,电脑休眠时也会继续干活。
- 可以从网页、桌面应用(Work in > Cloud)或手机上的 ChatGPT App(打开 Codex,选择 Cloud 和一个环境)启动。用默认环境的话,不选代码仓库也能开始,Codex 可以从你已连接的 GitHub 或 GitLab 账号检出代码仓库。
- 云端任务只能看到自己的云端环境:你的本地文件、正在运行的进程、浏览器登录状态和 VPN 访问都不会带过去。可复用的配置在 Work in > Cloud > Select environment > Create environment 下。
- 它需要用 ChatGPT 登录,不能用 API key。在终端里,
codex cloud会打开一个云端对话的选择器,codex cloud exec用来提交任务。
Mac mini 主机、Linux SSH 主机和 Codex cloud 对比
| Mac mini 主机 | Linux SSH 主机 | Codex cloud | |
|---|---|---|---|
| Codex 在哪运行 | 在 Mac mini 上,在 ChatGPT 桌面应用里 | 在服务器上;由 Mac 或 Windows 电脑上的桌面应用通过 SSH 启动 | 在 OpenAI 的云端,每个任务一个工作空间 |
| 手机连的是什么 | Mac mini | 运行桌面应用的 Mac 或 Windows 电脑 | OpenAI 的云端:打开 Codex,选择 Cloud |
| 什么必须一直开着 | Mac mini | 服务器,以及那台 Mac 或 Windows 电脑 | 你自己的设备都不用 |
| 文件、登录状态和 VPN | Mac mini 上的一切 | 服务器上有的东西 | 只有云端环境;本地文件、浏览器登录状态和 VPN 访问都不会带过去 |
| 适合 | Computer Use 和通过 Chrome 扩展执行的浏览器任务、iOS 开发、把文件留在家里 | 在服务器上做终端工作,用它的算力和依赖 | 只需要代码仓库的编程任务 |
| 套餐(OpenAI 的对照表) | 手机远程控制:Plus、Pro、Business、Enterprise | SSH 连接:上述套餐和 API key;用手机控制主机仍然需要上述套餐之一 | Plus、Pro、Business、Enterprise;不支持 API key |
| 配置 | 桌面应用、保持唤醒的设置、远程控制 | 服务器上的 CLI、SSH 配置、桌面应用里的 SSH 主机 | 选择或创建一个云端环境 |
给服务器一份长期工作
一台永不休眠的服务器,仍然在等你的下一条提示词。Crewmark 把它上面的一个 Codex 对话变成一名 AI 员工,有岗位、量化目标、工作时间和心跳:工作时间内,crewmark CLI(除了 macOS 和 Windows,在 Linux 上也能运行)会唤醒这名员工,让它处理共享看板上自己的 issue。运行它的电脑必须一直开着,而 VPS 正是如此。
招一名员工
从 AI 员工岗位里选一个岗位,比如软件工程师或 SEO 专员,写下它的目标和 KPI。
在服务器上连接 Codex
把 setup 链接粘贴到服务器上的一个 Codex 对话里。它会安装
crewmarkCLI,并把这个对话绑定到这名员工。Claude Code 也可以,见在 VPS 上运行 Claude Code。设定工作时间和心跳
可以只排工作日,也可以每天都排;工作时间可以跨过午夜;每 15、30、60、120 或 240 分钟唤醒一次。每次唤醒都进入同一个 Codex 对话,所以它会从上次停下的地方接着干。Codex 自带的定时方式对比,见如何让 Codex 主动工作。
用手机派 issue、和它对话
在手机浏览器里打开 crewmark.ai,创建并指派 issue,或者在员工的工作记录里给它写消息;消息会送到服务器上的 Codex 对话里,它也在那里回复。一指派 issue,员工马上就会被唤醒;需要你审核或拍板时,它会把 issue 标为“需处理”,并在那里问你。可以交给它的活,见 Codex 使用场景。
常见问题
可以在 VPS 上运行 Codex 吗?
可以。Codex CLI 能在 Linux 上运行:用 curl -fsSL https://chatgpt.com/codex/install.sh | sh 安装,用 codex login --device-auth 登录,然后要么通过 SSH 在 tmux 里使用它,要么在 Mac 或 Windows 电脑上的 ChatGPT 桌面应用里把服务器添加为 SSH 主机,而那台电脑可以用手机控制。
没有浏览器,怎么在 VPS 上登录 Codex?
运行 codex login --device-auth,或者选择 Sign in with Device Code,然后按提示操作。它还是 Beta 版,需要在你的 ChatGPT 安全设置里开启,或者由工作区管理员开启。否则,就用 ssh -L 1455:localhost:1455 user@server 转发回调,在服务器上运行 codex login;或者从一台已经登录的电脑复制 ~/.codex/auth.json。
怎么把 Codex 连到 VPS?
在运行 ChatGPT 桌面应用的 Mac 或 Windows 电脑上,把服务器添加到 ~/.ssh/config,确认 ssh <alias> 能连上。确保 codex 已安装、已登录,并且在远程用户登录 shell 的 PATH 上,然后在 Settings > Connections 里添加这台主机,再选一个远程项目文件夹。
可以用手机控制 VPS 上的 Codex 吗?
可以,但要经过一台 Mac 或 Windows 电脑。你的手机控制那台电脑上的 ChatGPT 桌面应用,应用再通过 SSH 在服务器上运行对话,所以那台电脑必须保持唤醒并在线。OpenAI 的文档没有介绍怎么把手机直接和 Linux 服务器配对,或者只和 CLI 配对。
ChatGPT 桌面应用能在 Linux 服务器上运行吗?
有一个 Linux 版 ChatGPT 桌面应用,目前是预览版,面向桌面版的 Ubuntu、Debian、Fedora 和 Arch Linux,还没有 Computer Use。OpenAI 的文档没有涉及没有桌面环境的服务器,Linux 也不在远程控制主机之列。在 VPS 上,就用 Codex CLI。
在 VPS 上运行 Codex 安全吗?
像对待任何 SSH 服务器一样对待它:基于密钥的登录、权限最小的账号,不要有未经认证的公网监听。不要在公共网络上暴露 Codex 的 app server,从外部访问服务器时用 VPN 或 mesh 组网,保管好 ~/.codex/auth.json,并安装 bubblewrap,让沙盒能正常工作。
已于 2026 年 11 月 14 日对照 OpenAI 的文档(远程连接、Codex CLI、身份验证、沙盒、Linux 版应用、Codex cloud、套餐)、GitHub 上的 Codex README 和安装指南,以及 Tailscale 文档核对。