
字节笔记本
2026年10月5日 · 约 19 分钟读完
AI Agent 搬上 VPS 实战:Mac 只当显示器
很多人用 Claude Code、Codex 这类 AI Agent 写代码,默认都跑在本地 Mac 上。项目一多,痛点就来了:几个 worktree 并行、几个 Agent 会话同时开着,再跑一个开发服务器和测试套件,风扇狂转、内存吃满、电池掉得飞快,合上盖子任务还会中断。
一位海外开发者在 X 上分享了自己的解法:把所有 Agent 从本地 Mac 搬到 Linux VPS,他称这是最大的十倍开发升级之一,引来大量开发者跟帖讨论。本文把这个思路整理成一份完整的操作指南:为什么要搬、怎么选机器、怎么配置、怎么迁移项目、日常怎么用,每一步都附具体命令。

一、为什么要搬到 VPS
本地 Mac 的痛点
如果你同时开多个 worktree、多个 Claude Code 会话,还跑着 API 和开发服务器,Mac 很快就会不堪重负:
| 场景 | 本地 Mac 的表现 |
|---|---|
| 3 个 worktree 同时跑 | 内存占用 16GB 以上,开始卡顿 |
| Codex 与 Claude Code 并行 | CPU 占满,风扇起飞 |
| 跑测试套件加开发服务器 | 电池半小时掉一半 |
| Agent 整夜运行 | 合盖就断,第二天从头再来 |
| 编译大项目 | 机器发热,其他操作跟着卡 |
VPS 的五大优势
1. 性能:Mac 只当显示器。 所有计算和 IO 都在 VPS 上跑,你的 Mac 只负责 SSH 连接和显示终端。Mac 不再发热、不卡,电池也耐用了。
2. 成本:比换新 Mac 划算得多。 一台 M4 Max 32GB 的新 Mac 要 3000 英镑起步,而一台 12 核 AMD vCPU、24GB 内存的 VPS 每月大约 40 到 60 美元,足够同时跑多个 Agent 会话、构建、API 和 tmux。想扩容时在线升配即可,不用等机器发货,也不用担心两三年后过时。
3. 持久性:关了 Mac,Agent 继续跑。 tmux 加 SSH 意味着 Mac 合盖、关机、断网,VPS 上的 Agent 都在继续干活,第二天打开 SSH,结果已经出来了。这是本地环境做不到的。
4. 干净的工作流:职责分离。
Mac → SSH / 远程显示(只看结果)
VPS → Codex / Claude / 构建 / 测试 / API(所有计算)
tmux → 管理 Agent 会话(一个窗口管多个 Agent)
GitHub → 源代码仓库(source of truth)
生产环境 → 独立的受保护部署目标每层职责清晰:Mac 不碰代码,VPS 不碰生产,GitHub 是唯一真相源。
5. 弹性扩展。 要跑更多 Agent,VPS 一键升级配置;要跑 GPU 任务,直接换 GPU 机型,不用换机器、不用等发货。
二、怎么选 VPS
配置推荐
| 级别 | 配置 | 月费 | 适合 |
|---|---|---|---|
| 入门 | 4 vCPU / 8GB | 10 到 20 美元 | 单 Agent 加小项目 |
| 推荐 | 8-12 vCPU / 16-24GB | 30 到 60 美元 | 多 Agent 并行加中型项目 |
| 重型 | 16 vCPU 以上 / 32GB 以上 | 80 到 150 美元 | 大项目、多 worktree、CI |
| GPU | 8 vCPU 加 RTX A4000 | 100 美元起 | 模型推理与训练 |
供应商对比
| 供应商 | 优势 | 劣势 | 参考价格 |
|---|---|---|---|
| Hetzner | 性价比最高,AMD EPYC | 到中国延迟 200-300ms | CPX31(8核/16G)约 22 欧元/月 |
| DigitalOcean | 全球节点,稳定 | 偏贵 | 8核/16G 约 96 美元/月 |
| Vultr | 高频 CPU,有东京节点 | 中等 | 8核/16G 约 96 美元/月 |
| AWS Lightsail | 可靠 | 最贵 | 8核/16G 约 120 美元/月 |
| Oracle 免费层 | 免费(4核/24G ARM) | 难抢,性能不稳 | 0 美元 |
| 国内云 | 延迟低 | 需备案,合规复杂 | 看厂商 |
推荐 Hetzner CPX31 或 CPX41,性价比突出。虽然从中国连欧洲延迟有 200-300ms,但 SSH 终端不是实时交互,打字时的这点延迟完全可以接受。在意延迟就选东京或首尔节点(Vultr、DigitalOcean 都有),想要折中可以看新加坡。
三、VPS 初始配置:从零开始
第 1 步:创建实例
以 Hetzner 为例(其他平台类似):注册 console.hetzner.cloud,创建 Server,选 CPX31(8 核 AMD vCPU、16GB 内存),系统选 Ubuntu 24.04,添加你的 SSH 公钥后创建。
第 2 步:首次登录与更新
ssh root@<你的VPS_IP>
# 更新系统
apt update && apt upgrade -y
# 安装基础工具
apt install -y git curl wget build-essential unzip tmux htop第 3 步:创建非 root 用户
adduser dev
usermod -aG sudo dev
# 把 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
su - dev
sudo whoami # 应该输出 root第 4 步:SSH 安全加固
sudo nano /etc/ssh/sshd_config
# 修改这两行:
PermitRootLogin no
PasswordAuthentication no
sudo systemctl restart sshd第 5 步:配置 SSH 别名
在 Mac 上编辑 ~/.ssh/config:
Host vps
HostName <你的VPS_IP>
User dev
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60
ServerAliveCountMax 3以后一条命令就能连上:ssh vps。
四、装好开发环境和 Agent
语言运行时按需安装,常用的是下面几套:
# Node.js(用 nvm 管理版本)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 22 && nvm use 22
# Python
sudo apt install -y python3 python3-pip python3-venv
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
# Go
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 && source ~/.bashrc
# Docker(可选,用于沙箱)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER然后安装 Agent 工具:
# Claude Code
npm install -g @anthropic-ai/claude-code
export ANTHROPIC_API_KEY="你的key" # 写进 ~/.bashrc 持久化
claude --version
# Codex CLI
npm install -g @openai/codex
export OPENAI_API_KEY="你的key"
codex --version
# 用 DeepSeek 等兼容 OpenAI 接口的模型省钱
export OPENAI_BASE_URL="https://api.deepseek.com/v1"API Key 一律走环境变量,不要写进代码或仓库,这一点在文末的安全清单里还会再强调。
五、tmux 多会话:整套工作流的心脏
一个终端窗口管理多个 Agent 会话,SSH 断开也不丢失,这是整个方案的核心。先写一份顺手的基础配置:
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 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 布局:
tmux 会话: my-project
├── 窗口 1: Claude Code(主力写代码)
├── 窗口 2: Codex(跑构建/测试)
├── 窗口 3: git log(看提交历史)
└── 窗口 4: dev-server(开发服务器)SSH 断开,tmux 会话继续跑;Mac 合盖,tmux 会话继续跑。第二天 ssh vps 加 tmux attach,一切都在原地。
六、迁移项目与日常工作流
三种常用迁移方式:
# 方式一:Git clone(推荐)
cd ~/ && mkdir projects && cd projects
git clone git@github.com:yourname/your-project.git
cd your-project && npm install
# 方式二:rsync 同步未推送的改动(在 Mac 上执行)
rsync -avz --exclude node_modules --exclude .git \
~/projects/my-project/ dev@<你的VPS_IP>:~/projects/my-project/
# 方式三:Git worktree 多分支并行(在 VPS 上)
cd ~/projects/my-project
git worktree add ../my-project-feature-x feature-x
git worktree add ../my-project-bugfix bugfix-123
tmux new -s feature-x -d "cd ../my-project-feature-x && claude"
tmux new -s bugfix -d "cd ../my-project-bugfix && claude"搬完之后,一天大概是这样过的:

早上:ssh vps 连上去,tmux ls 看看昨晚的会话,tmux attach 接上,Agent 整夜跑的结果已经躺在窗口里。
白天:一个窗口开 Claude Code 写代码,一个窗口跑测试,一个窗口跑开发服务器,互不抢占本地资源。
晚上:git add 加 commit 加 push 提交代码,Ctrl+a d 脱离会话,合盖走人。VPS 上的任务整夜继续,第二天打开,一切都在。
七、可选增强
VS Code Remote SSH。 不只终端,VS Code 也能远程连 VPS:装 Remote-SSH 扩展,Cmd+Shift+P 选 Connect to Host 里的 vps,之后所有文件操作、终端、调试都在 VPS 上执行,Mac 只负责显示界面。
cron 自动化。 把例行任务交给定时器,比如每天早上 6 点让 Claude Code 检查并修复失败的测试:
crontab -e
0 6 * * * cd ~/projects/my-project && claude -p "检查 CI 失败的测试并修复" >> /tmp/ci-check.log 2>&1mutagen 文件同步。 如果需要 Mac 和 VPS 双向同步文件:
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八、安全清单与成本总结
搬上 VPS 前先过一遍安全清单:禁用 root SSH 登录、禁用密码认证只用密钥、用 ufw 配好防火墙、定期 apt update 升级系统、API Key 只存环境变量、敏感数据不进仓库(.env 加 gitignore)、配置自动备份。
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成本上一目了然:
| 方案 | 花费 | 持久性 |
|---|---|---|
| 新 Mac M4 Max | 约 3000 英镑一次性 | 合盖即断 |
| Hetzner CPX31 | 约 25 美元/月 | 7x24 常驻 |
| Hetzner CPX41 | 约 45 美元/月 | 7x24 常驻 |
| MacBook Air 加 VPS | 约 1200 美元加 45 美元/月 | 常驻 |
最优组合是一台够用的 Mac(Air 就行)加一台 VPS:Mac 负责浏览器、通信和显示,所有开发在 VPS 上完成,比买顶配 Mac 更便宜也更强。
九、写在最后
你的 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 是永不掉线的纽带。当 Agent 越开越多、任务越跑越长,把算力搬上云,可能是最省心的一次升级。
本文整理自一位海外开发者在 X 上分享的远程开发实践,并扩展成完整的操作指南;价格与配置为撰写时的参考数据,以各厂商官网为准。



