ByteNoteByteNote
把 AI Agent 从本地搬到 VPS:最值的 10 倍开发升级
字

字节笔记本

2026年10月24日 · 约 24 分钟读完

把 AI Agent 从本地搬到 VPS:最值的 10 倍开发升级

API中转
¥120

很多人用 AI Agent(Claude Code / Codex / Cursor)开发,都跑在本地 Mac 上。但你有没有发现,Mac 越来越扛不住了。

J J(@jturntdev)做了一件事:把所有 Agent 从本地 Mac 搬到 Linux VPS。 他称这是"最大的 10 倍开发升级之一"。113 赞、30 条回复,很多人跟着讨论。

这篇文章把他的方法扩展成完整的操作指南,为什么要搬、怎么选 VPS、怎么配置、怎么迁移工作流、怎么日常使用。每一步都有具体命令。

配图


一、为什么要搬到 VPS

痛点:Mac 扛不住了

如果你同时开多个 worktree + 多个 Claude Code 会话 + 跑 API + 开发服务器,Mac 风扇狂转、内存爆满、电池狂掉。

场景本地 Mac 的痛苦
3 个 worktree 同时跑内存占用 16GB+,开始卡
Codex + Claude Code 并行CPU 100%,风扇起飞
跑测试套件 + 开发服务器电池半小时掉一半
AI Agent 整夜跑合盖就断,第二天从头来
编译大项目Mac 发热,其他操作卡顿

VPS 的五大优势

1. 性能,Mac 只当显示器

所有计算和 IO 都在 VPS 上跑。你的 Mac 只负责 SSH 连接 + 显示终端。Mac 不再发热、不卡、电池持久。

2. 成本,比买 Mac 便宜 10 倍

买新 Mac租 VPS
一次性成本£3000+(M4 Max 32GB)$0
月费$0$40-80/月
升级换机器(又是 £3000)一键升级配置
折旧2-3 年过时永远最新

12 核 AMD vCPU / 24GB RAM 的 VPS 约 $40-60/月,够跑多个 Agent 会话 + 构建 + API + tmux。比买 Mac 便宜太多。

3. 持久性,关了 Mac,Agent 继续跑

tmux + SSH = Mac 合盖/关机/断网,VPS 上的 Agent 继续跑。第二天打开 SSH,结果出来了。这是本地做不到的。

4. 干净的工作流,职责分离

text
Mac         → SSH / 远程显示(只看结果)
VPS         → Codex / Claude / 构建 / 测试 / API(所有计算)
tmux        → 管理 Agent 会话(一个窗口管多个 Agent)
GitHub      → 源代码仓库(source of truth)
生产环境     → 独立的受保护部署目标

每层职责清晰,Mac 不碰代码,VPS 不碰生产,GitHub 是唯一真相源。

5. 弹性扩展

要跑更多 Agent?VPS 一键升级配置。要跑 GPU 任务?换 GPU VPS。不用换机器,不用等发货。


配图

二、怎么选 VPS

配置推荐

级别配置价格(月费)适合
入门4 vCPU / 8GB RAM$10-20单 Agent + 小项目
推荐8-12 vCPU / 16-24GB RAM$30-60多 Agent 并行 + 中型项目
重型16+ vCPU / 32GB+ RAM$80-150大项目 + 多个 worktree + CI
GPU8 vCPU + RTX A4000$100+跑模型推理/训练

VPS 供应商对比

供应商优势劣势价格
Hetzner性价比最高,AMD EPYC欧洲延迟(200-300ms 到中国)CPX31(8核/16G)≈ €22/月
DigitalOcean全球节点,稳定贵8核/16G ≈ $96/月
Vultr高频 CPU,东京节点中等8核/16G ≈ $96/月
AWS Lightsail可靠最贵8核/16G ≈ $120/月
Oracle Cloud Free免费(4核/24G ARM)难抢,性能不稳定$0
国内云低延迟需备案,合规复杂看厂商

推荐,Hetzner CPX31 或 CPX41。性价比碾压。中国到欧洲延迟 200-300ms,但 SSH 终端不是实时交互,延迟可接受。

区域选择

如果你在中国:

  • 延迟最低:东京/首尔(Vultr 东京、DigitalOcean 东京)
  • 性价比最高:欧洲(Hetzner 德国/芬兰),延迟高但便宜
  • 折中:新加坡

SSH 不在乎延迟(不像游戏),200-300ms 完全可用。


三、VPS 初始配置(从零开始)

第 1 步:创建 VPS

以 Hetzner 为例(其他类似):

  1. 注册 console.hetzner.cloud
  2. 创建 Server → 选 CPX31(8 AMD vCPU / 16 GB RAM)
  3. 选 Ubuntu 24.04
  4. 添加 SSH Key
  5. 创建

第 2 步:首次 SSH 连接

bash
# 用你的 VPS IP 替换
ssh root@<你的VPS_IP>

# 更新系统
apt update && apt upgrade -y

# 安装基础工具
apt install -y git curl wget build-essential unzip tmux htop

第 3 步:创建非 root 用户(安全)

bash
# 创建用户
adduser dev
usermod -aG sudo dev

# 配置 SSH Key(把你的 Mac 公钥复制过去)
mkdir -p /home/dev/.ssh
cp ~/.ssh/authorized_keys /home/dev/.ssh/
chown -R dev:dev /home/dev/.ssh
chmod 700 /home/dev/.ssh
chmod 600 /home/dev/.ssh/authorized_keys

# 切换到 dev 用户
su - dev

# 测试 sudo
sudo whoami  # 应该输出 root

第 4 步:禁止 root SSH 登录(安全加固)

bash
sudo nano /etc/ssh/sshd_config

# 修改这两行:
PermitRootLogin no
PasswordAuthentication no

# 重启 SSH
sudo systemctl restart sshd

第 5 步:配置 SSH 别名(Mac 侧)

在 Mac 上编辑 ~/.ssh/config:

ssh
Host vps
    HostName <你的VPS_IP>
    User dev
    IdentityFile ~/.ssh/id_rsa
    ServerAliveInterval 60
    ServerAliveCountMax 3

现在一条命令连接:

bash
ssh vps

四、在 VPS 上安装开发环境

安装 Node.js

bash
# 用 nvm 管理版本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc

nvm install 22
nvm use 22
node -v  # v22.x

安装 Go(如果用 Go)

bash
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc
go version

安装 Python(如果用 Python)

bash
sudo apt install -y python3 python3-pip python3-venv
python3 --version  # 3.12+

安装 Rust(如果用 Rust)

bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustc --version

安装 Docker(可选,用于沙箱)

bash
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 重新登录生效

五、安装 AI Agent 工具

Claude Code

bash
# 安装 Node.js 版 Claude Code
npm install -g @anthropic-ai/claude-code

# 配置 API Key
export ANTHROPIC_API_KEY="sk-ant-xxx"
# 持久化
echo 'export ANTHROPIC_API_KEY="sk-ant-xxx"' >> ~/.bashrc

# 测试
claude --version

Codex CLI

bash
# 安装 Codex
npm install -g @openai/codex

# 配置
export OPENAI_API_KEY="sk-xxx"
echo 'export OPENAI_API_KEY="sk-xxx"' >> ~/.bashrc

codex --version

用 DeepSeek/Glm 替代(省钱)

bash
# DeepSeek
export OPENAI_API_KEY="你的deepseek_key"
export OPENAI_BASE_URL="https://api.deepseek.com/v1"
echo 'export OPENAI_BASE_URL="https://api.deepseek.com/v1"' >> ~/.bashrc

六、tmux 多会话管理(核心)

tmux 是整个工作流的心脏,一个终端窗口管理多个 Agent 会话,断开 SSH 会话不丢失。

tmux 基础配置

bash
# 创建配置文件
cat > ~/.tmux.conf << 'EOF'
# 设置前缀键为 Ctrl+a(更顺手)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# 开启鼠标
set -g mouse on

# 窗口编号从 1 开始
set -g base-index 1
setw -g pane-base-index 1

# 分屏快捷键
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# 256 色
set -g default-terminal "screen-256color"

# 历史记录
set -g history-limit 50000

# 状态栏
set -g status-style bg=default,fg=white
set -g status-left "#[fg=green]#S "
set -g status-right "#[fg=cyan]%Y-%m-%d %H:%M "
EOF

# 重载配置
tmux source ~/.tmux.conf

tmux 日常用法

bash
# 创建新会话
tmux new -s project1

# 在会话里:
# Ctrl+a | → 左右分屏
# Ctrl+a - → 上下分屏
# Ctrl+a d → 脱离(会话继续跑)
# Ctrl+a c → 新窗口
# Ctrl+a 1/2/3 → 切窗口

# 列出所有会话
tmux ls

# 重新连上会话
tmux attach -t project1

# 关闭会话
tmux kill-session -t project1

实际布局(多 Agent 并行)

text
tmux 会话: my-project
├── 窗口 1: claude-code(主 Agent 写代码)
├── 窗口 2: codex(跑测试/构建)
├── 窗口 3: git log(看提交历史)
└── 窗口 4: dev-server(跑开发服务器)

SSH 断开 → tmux 会话继续跑。Mac 合盖 → tmux 会话继续跑。 第二天 ssh vps + tmux attach,一切都在。


七、迁移你的项目

方式一:Git Clone(推荐)

bash
# 在 VPS 上
cd ~/
mkdir projects && cd projects

# 克隆你的项目
git clone git@github.com:yourname/your-project.git
cd your-project

# 安装依赖
npm install  # 或 go mod download / pip install -r requirements.txt

# 跑
claude  # 启动 Claude Code

方式二:rsync 同步(迁移未推送的改动)

bash
# 在 Mac 上执行
rsync -avz --exclude node_modules --exclude .git \
  ~/projects/my-project/ \
  dev@<VPS_IP>:~/projects/my-project/

方式三:Git worktree(多分支并行)

bash
# 在 VPS 上
cd ~/projects/my-project

# 创建 worktree 做不同任务
git worktree add ../my-project-feature-x feature-x
git worktree add ../my-project-bugfix bugfix-123

# 每个 worktree 开一个 tmux 窗口
tmux new -s feature-x -d "cd ../my-project-feature-x && claude"
tmux new -s bugfix -d "cd ../my-project-bugfix && claude"

八、日常使用工作流

早上:连接 + 检查

bash
# 1. SSH 连接
ssh vps

# 2. 看 tmux 会话(昨晚跑的还在不在)
tmux ls

# 3. 连上昨天的会话
tmux attach -t my-project

# 4. 看 Agent 昨晚干了什么
# Claude Code 的对话历史在 ~/.claude/ 里

白天:多 Agent 并行

bash
# 窗口 1:Claude Code 写代码
tmux new-window -t my-project
claude

# 窗口 2:跑测试
tmux new-window -t my-project
npm test -- --watch

# 窗口 3:开发服务器
tmux new-window -t my-project
npm run dev

晚上:提交 + 睡觉

bash
# 提交代码
git add -A
git commit -m "feat: xxx"
git push

# 脱离 tmux(不关闭)
# 按 Ctrl+a 然后按 d

# 关 Mac 走人
# VPS 上的 tmux 继续跑

九、可选增强

VS Code Remote SSH

不只终端,VS Code 也能远程连 VPS:

  1. 装 VS Code 的 "Remote - SSH" 扩展
  2. Cmd+Shift+P → "Remote-SSH: Connect to Host" → 选 vps
  3. VS Code 在 VPS 上运行,Mac 只显示界面

所有文件操作/终端/调试都在 VPS 上。 Mac 不做任何计算。

自动化(cron + Agent)

bash
# 编辑 crontab
crontab -e

# 每天早上 6 点跑 Claude Code 做 CI 检查
0 6 * * * cd ~/projects/my-project && claude -p "检查 CI 失败的测试并修复" >> /tmp/ci-check.log 2>&1

文件同步(mutagen)

如果需要 Mac 和 VPS 双向同步文件:

bash
# Mac 上安装 mutagen
brew install mutagen-io/mutagen/mutagen

# 创建同步会话
mutagen sync create \
  --name my-project \
  ~/projects/my-project \
  dev@vps:~/projects/my-project \
  --ignore node_modules --ignore .git --ignore dist

十、成本对比总结

方案月费性能持久性
新 Mac M4 Max£3000 一次性强❌ 合盖断
VPS Hetzner CPX31~$25/月8核/16G✅ 7×24
VPS Hetzner CPX41~$45/月16核/32G✅ 7×24
MacBook Air + VPS$1200 + $45/月轻量 Mac + 强力 VPS✅

最优组合,便宜的 Mac(Air 就够)+ VPS。 Mac 只负责浏览器/通信/显示,所有开发在 VPS 上。比买顶级 Mac 便宜且更强。


十一、安全清单

  • 禁用 root SSH 登录
  • 禁用密码认证(只用 SSH Key)
  • 配置防火墙(ufw)
  • 定期更新系统(apt update && apt upgrade)
  • API Key 存在环境变量不硬编码
  • 不在 VPS 上存敏感数据(用 .env + gitignore)
  • 配置自动备份
bash
# 配置防火墙
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP(可选)
sudo ufw allow 443/tcp   # HTTPS(可选)
sudo ufw enable

十二、总结:完整工作流

text
你的 Mac(Air 就够)
  │ SSH / VS Code Remote
  ▼
Linux VPS(所有计算)
  ├── tmux 管理多个会话
  │   ├── 窗口1: Claude Code
  │   ├── 窗口2: Codex
  │   ├── 窗口3: 测试
  │   └── 窗口4: Dev Server
  ├── Git Worktree 并行多分支
  └── cron 自动化
      │
      ▼
  GitHub(源代码)
      │
      ▼
  生产环境(独立部署)

一句话,Mac 是显示器,VPS 是大脑,GitHub 是真相源,tmux 是永不掉线的纽带。


本文基于 J J(@jturntdev)的 X 推文扩展整理。原文 https://x.com/jturntdev/status/2071535229047537821 。113 赞、30 回复。

推荐配合:Loop Engineering 论文("睡觉时运行"依赖 VPS 持久性)、Chorus 远端 Agent(类似的远程派任务思路)、TCP 调优(VPS 网络加速)。

相关:把代码与 Codex 会话同步到远程主机。

相关文章

分享: