VPSKnow

Codex CLI / Cursor 怎么放到海外 VPS 上稳定使用?

初级-中级
36分钟

如果你每天都用 Codex CLI、Cursor、GitHub Copilot、Claude 或 OpenAI API 写代码,最影响体验的往往不是模型本身,而是终端网络、GitHub、NPM、Docker 镜像和本地代理是否稳定。把开发环境放到海外 VPS 或云开发机里,可以让代码、命令行和 AI 工具长期走同一个稳定出口。

本文只讨论正常开发、学习和团队协作场景。不要把远程开发机用于共享账号、批量注册、刷号、滥用 API 或存放不该放在服务器上的敏感凭据。API Key、SSH 私钥和客户代码都要按敏感信息处理。

🧑‍💻 这篇文章适合谁

  • 本地网络经常导致 GitHub、NPM、Docker、OpenAI API 不稳定的人。
  • 想在固定海外出口里使用 Codex CLI、Cursor、VS Code Remote 的开发者。
  • 经常在多台电脑之间切换,希望开发环境长期一致的人。
  • 已经有 VPS,但不知道怎么把它变成“开发机”而不是只跑网站的人。

如果你只是偶尔问 ChatGPT,不一定需要远程开发机,先看 稳定 AI 网络环境指南 里的机场和固定节点方案就够了。远程开发机更适合把 AI 工具真正融进开发流程的人。

先给结论:什么时候值得上远程开发机

值得上

每天写代码、跑命令、调 API,并且本地网络经常拖后腿。

先别急

只用网页 ChatGPT 或 Cursor 聊天,稳定机场 + 固定节点通常更省事。

不要误用

远程开发机不是账号环境伪装工具,重点是稳定开发和安全协作。

🏗️ 推荐架构

最简单的架构是:本地只负责编辑和控制,实际代码、依赖安装、构建、测试、AI CLI 都在海外 VPS 上跑。

  本地电脑
  ↓ SSH / VS Code Remote / Cursor Remote
海外 VPS / 云开发机
  ↓
GitHub / NPM / Docker Registry / OpenAI API / Codex CLI

如果你已经有多台设备,或者不想把 SSH 端口暴露在公网,可以再加一层 Tailscale / WireGuard 私有网络:

  本地电脑
  ↓ Tailscale / WireGuard 私有网络
海外 VPS 开发机
  ↓ 固定出口 IP
Codex CLI / Cursor / GitHub / NPM / OpenAI API

这套架构的价值是“稳定一致”:同一个项目、同一个终端、同一个出口 IP、同一套依赖,不会因为你换电脑或换网络就重新折腾。

🖥️ 怎么选 VPS

远程开发机和建站 VPS 的优先级不完全一样。建站更看公网访问、带宽和回源;开发机更看 SSH 稳定、磁盘性能、内存、GitHub / NPM / Docker 可达性和 IP 质量。

  • 轻度开发:1C2G 起步,20GB 到 40GB NVMe,适合小型 Node / Python / Astro 项目。
  • 日常开发:2C4G 更舒服,Docker、NPM 安装和构建不容易卡死。
  • 重度开发:4C8G 以上,适合多容器、数据库、本地模型工具或长时间构建。
  • 地区选择:美国通用性最好,日本 / 新加坡延迟更低,欧洲性价比常常更好。

站内可以先看 VPS 推荐榜单VPS 测评汇总。已有测评里,VMISS / VMRACK 适合继续观察洛杉矶落地和线路,DMIT 更像轻量备用开发机,RackNerd 更适合练手,不建议直接当重度 AI 主力。

⚙️ 服务器初始化

下面以 Debian / Ubuntu 为例。第一次登录后先更新系统、装基础工具,再创建普通开发用户。不要长期用 root 写代码。

  # Debian / Ubuntu 基础初始化
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip ca-certificates gnupg ufw htop tmux

# 设置时区,可按需改成 UTC
sudo timedatectl set-timezone Asia/Shanghai
  # 建议创建普通开发用户,不要长期用 root 开发
sudo adduser dev
sudo usermod -aG sudo dev

# 确认当前 SSH 能正常登录后,再逐步收紧 root 登录和密码登录

防火墙要谨慎开。先确认当前 SSH 连接稳定、密钥可用,再启用 UFW。否则一条命令就可能把自己锁在门外。

  # 先确认 SSH 端口能连,再启用防火墙
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

🔐 SSH 与 VS Code / Cursor 远程开发

小白最容易卡在 SSH。推荐先在本地配置 `~/.ssh/config`,给服务器起一个简单别名,然后 VS Code Remote - SSH 或 Cursor 的远程 SSH 能力都更容易接入。

  Host ai-dev
  HostName 你的服务器IP
  User dev
  Port 22
  IdentityFile ~/.ssh/id_ed25519
  ServerAliveInterval 30
  ServerAliveCountMax 3
  • VS Code:安装官方 Remote - SSH 扩展,连接 `ai-dev`,在远程服务器上打开项目目录。
  • Cursor:如果当前版本支持 Remote SSH 或兼容 VS Code 远程扩展,可以使用同一份 SSH 配置;不稳定时用 VS Code Remote - SSH 作为兜底。
  • 终端:建议常开 `tmux`,长任务断线后还能恢复。

第一次接入时先跑一个小项目,不要直接把核心生产项目搬上去。确认 Git、NPM、构建、测试和 AI 工具都正常后,再迁移主力工作流。

🔗 Tailscale / WireGuard 私有网络

如果你担心 SSH 暴露在公网,或者经常在家、公司、笔记本、台式机之间切换,Tailscale 是最省心的选择之一。WireGuard 更轻量,但配置门槛高一些。

新手优先:Tailscale

登录账号、加入网络、用私有 IP 连接服务器。适合个人和小团队快速搭建安全开发网络。

查看 Tailscale 下载

进阶轻量:WireGuard

性能好、依赖少、长期稳定,但需要自己管理密钥、路由和客户端配置。

查看 WireGuard 安装

如果只是个人开发,Tailscale 通常更合适。只有当你明确知道路由、密钥和防火墙怎么维护时,再上纯 WireGuard。

📦 安装开发运行时

远程开发机最少要有 Git、Node.js、Python 和常用编译工具。Node.js 和 Docker 建议按官方文档安装,避免复制来路不明的一键脚本。

  # Git 身份
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

# Node.js 示例:建议以官方文档或发行版源为准
node -v
npm -v

# 常用项目工具
sudo apt install -y build-essential python3 python3-venv python3-pip

Docker 不是必需品。小项目直接跑 Node / Python 就够了;需要数据库、Redis、Playwright、测试环境隔离时再上 Docker。

  # 如果项目需要 Docker,建议按 Docker 官方文档安装
docker --version
docker compose version

# 普通用户使用 Docker 前,确认你理解 docker 组的权限影响
sudo usermod -aG docker dev

🤖 Codex CLI 与 Cursor 使用思路

Codex CLI 的核心使用场景是终端里的代码理解、修改、运行和检查。把它放在海外 VPS 上跑,重点不是“换个地方登录”,而是让它和 GitHub、NPM、Docker、OpenAI API 共用同一个稳定终端环境。

  • 项目代码放在远程 VPS 的用户目录,例如 `/home/dev/projects/my-app`。
  • GitHub 拉取、依赖安装、构建、测试都在远程终端里完成。
  • Cursor / VS Code 负责远程编辑和审阅,不一定负责所有命令执行。
  • API Key 只放在项目 `.env` 或受控 Secret 管理里,不写进代码、不截图、不提交。

安装和登录 Codex CLI 时,以 OpenAI 官方 Codex 文档为准。不同版本的命令、认证方式和安全选项可能变化,教程里不要把过时命令写成永久事实。

🧪 终端网络与 API 连通性检查

浏览器能打开 ChatGPT,不代表远程 VPS 的终端能稳定访问 API。服务器初始化后,先用下面几条命令确认出口、GitHub、NPM 和 OpenAI API 可达。

  curl ipinfo.io
curl -I https://github.com
curl -I https://registry.npmjs.org
curl -I https://api.openai.com/v1/models
ping -c 5 api.openai.com
  • `curl ipinfo.io`:确认服务器出口国家、ASN 和 IP 类型。
  • `curl -I https://api.openai.com/v1/models`:如果返回未授权类状态,通常说明网络通了但缺少认证。
  • 晚高峰再测一次,尤其是美国普通线路和低价 VPS。
  • VPS 工具箱 补 IP 质量、流媒体 / ChatGPT 解锁和 YABS。

🛡️ 安全与 API Key 管理

远程开发机一旦被入侵,泄露的不只是服务器,还有源码、环境变量、Git 凭据和 API Key。至少做到下面几点:

  • SSH 使用密钥登录,关闭弱密码,必要时改默认端口。
  • 每个项目用独立 `.env`,不要把主账号 API Key 放到公共脚本或第三方中转。
  • 生产项目和实验项目分开目录、分开密钥、分开仓库权限。
  • 只开放必要端口。开发面板、数据库、Redis 不要直接暴露公网。
  • 离职、换电脑、换项目时及时轮换 SSH Key 和 API Key。
  # 项目级 .env,禁止提交到 Git
OPENAI_API_KEY=sk-...

# .gitignore 必须包含
.env
.env.*
!.env.example

如果你已经把 `.env` 提交到 Git,第一步不是从仓库删掉文件,而是先去服务商后台轮换 Key。泄露过的 Key 当作失效处理。

💾 备份与长期维护

远程开发机最怕“机器坏了,代码和配置也没了”。代码应该进 Git,环境配置应该有文档,重要数据应该有备份。

  • 代码:所有项目放 Git,未提交工作每天收尾前整理。
  • 环境:记录 Node、Python、Docker、系统依赖和启动命令。
  • 密钥:不要备份明文私钥和 API Key,使用密码管理器或平台 Secret。
  • 数据:数据库、上传文件、配置目录按 数据备份与灾难恢复 做周期备份。

💰 按预算选择方案

场景 配置 适合做什么 提醒
轻度体验 1C1G / 1C2G 美国或日本 VPS 跑 SSH、Git、小型 Node 项目、偶尔用 Codex CLI 先看低价 VPS,但不要当高信任主力出口。
日常开发 2C2G / 2C4G VPS + 40GB+ NVMe 长期 VS Code Remote、NPM、Docker、小型 Astro / Python 项目 优先稳定线路、磁盘和 IP 质量,不只看 CPU。
重度 AI 开发 4C8G 以上或云开发机 多项目、多容器、长时间构建、频繁调用 API 可以考虑 Hetzner、Vultr、DigitalOcean、GitHub Codespaces 等站外方案。
高稳定团队 固定出口 + Tailscale / WireGuard + 备份 多人协作、长期项目、客户代码 必须做权限分离、密钥轮换、备份和监控。

🔍 常见问题排查

SSH 连不上

先看 VPS 后台是否开机、IP 是否正确、防火墙是否放行、密钥权限是否正确,再看 /var/log/auth.log。

VS Code Remote 卡住

先在本地终端手动 ssh ai-dev,确认能进 shell;再清理远程 .vscode-server 或换网络重试。

NPM 很慢

确认 VPS 到 registry.npmjs.org 是否稳定;不建议随便换来路不明镜像源。

OpenAI API 不通

先 curl api.openai.com 看网络和 TLS,再确认 API Key、账单、权限和请求代码。

Cursor 远程不稳定

用 VS Code Remote - SSH 兜底,或把命令执行放远程 tmux,Cursor 只负责本地编辑和提交审阅。

机器经常卡死

检查内存、Swap、Docker 容器、构建任务和磁盘空间,1C1G 不适合重度 AI 开发。

🧭 站内下一步推荐

📚 资料来源