# 怎么在云服务器上跑 Claude Code（24 小时运行 + 手机随时连）

> 一台基础配置的 Linux 云服务器、一行官方安装命令，再加上 tmux，就能让 Claude Code 在你合上笔记本后继续干活。下面是完整的搭建步骤，包括国内与海外服务器怎么选、怎么接模型、手机怎么连以及安全加固清单。

Source: https://alwaysagent.app/zh/claude-code-vps
更新于: 2026-11-05

## 为什么要把 Claude Code 放到服务器上

把 Claude Code 装在云服务器上，最大的好处是让任务和你的电脑解耦：笔记本合盖、休眠、断网或者关机，服务器上的代码重构和测试依然在跑，你随时能换台设备或掏出手机看进度。

Claude Code 本质上是一个运行在终端里的本地程序。你在哪台机器上启动它，它就在哪台机器上读写文件、执行命令。一旦这台机器休眠，正在跑的任务就会中断。把它搬到一台 24 小时在线的 Linux 云服务器上，能同时解决三个问题：

- **长任务不会断。**大型重构、循环跑测试、数据库迁移可以在后台一直跑完，不用守着电脑。
- **多设备随时接力。**会话保存在服务器里，在公司电脑、家里电脑或手机上看到的都是同一个现场。
- **本地电脑零负担。**编译、Docker 容器和依赖安装都吃服务器的资源，不占本地内存和电量。

Anthropic 官方虽然提供了两个远程方案，但都有明确限制。根据官方文档，Remote Control（远程控制）的会话依然跑在你自己的电脑上，所以你的电脑必须保持开机和联网；而网页版云端会话（Claude Code on the web）强制要求绑定 claude.ai 账号，不支持自带 API Key，也没法接入国产大模型或第三方中转站。自己管一台服务器，就没有这些限制。

## 服务器怎么选：配置要求与境内/境外取舍

选一台至少 2 核 4 GB 内存、装主流 Linux 发行版（Ubuntu 或 Debian）的云服务器；至于选国内云还是境外 VPS，完全取决于你打算接哪家的模型接口以及拉取代码的网络环境。

### 硬件与系统要求

根据 Claude Code 官方系统要求，服务器需要满足：Ubuntu 20.04+、Debian 10+ 或 Alpine 3.19+ 系统，x64 或 ARM64 架构处理器，以及**至少 4 GB 内存**。低于这个内存，安装或运行过程中很容易因为内存不足被系统直接杀死（OOM）。

除了 Claude Code 本身，你还要给项目编译、跑测试和 Docker 留出余量：

| 日常用途 | 建议起步配置 |
| --- | --- |
| 写脚本、小型前后端项目、轻量重构 | 2 vCPU、4 GB 内存、40 GB 硬盘 |
| 带数据库或 Docker 的全栈项目 | 4 vCPU、8 GB 内存、75 GB+ 硬盘 |
| 大型编译、同时开多个 Claude Code 会话 | 6+ vCPU、12 GB+ 内存、100 GB+ 硬盘 |

### 境外 VPS 还是国内云服务器？

中国大陆读者在买服务器时，最容易踩坑的是网络连通性。你可以按下面的实际情况来取舍：

- **境外 VPS（美西、日本、新加坡等）** (`省心首选`): 适合需要直连 Anthropic 官方接口、用 Claude 订阅账号，或经常从 GitHub、npm、Docker Hub 拉依赖的场景。
- **国内云服务器（阿里云、腾讯云等）** (`低延迟 + 国产模型`): SSH 敲命令延迟极低，直连 DeepSeek、智谱、百炼等国内模型接口快，但访问海外资源受限。

- **官方接口与地区限制：**Anthropic 官方服务与 API 不支持中国大陆（及香港等不在支持列表内的地区）。如果你用 Claude Pro/Max 订阅登录，或者直连 Anthropic 官方 API，服务器必须选在 [Anthropic 支持的国家和地区](https://www.anthropic.com/supported-countries)（例如美国、日本、新加坡），否则登录或调用会返回 403 错误。
- **安装包与开发依赖：**Claude Code 的官方一键安装脚本托管在 `claude.ai`，日常写代码也经常要连 GitHub。中国大陆不在 Anthropic 的支持地区内，官方安装脚本在不支持的地区会返回 403；选国内机器时，模型也只能接国产模型的官方接口。
- **SSH 延迟与备案：**国内服务器连 SSH 基本没有延迟，敲命令跟本地终端一样跟手；境外 VPS 从国内直连会有一定延迟（选美西、日本或新加坡通常在可接受范围内）。另外，网站备案取决于服务器是否在中国内地并对外提供网站服务，具体以所用云厂商的规则为准。
- **注意计费方式：**很多云厂商的按量付费实例，在控制台点“关机”后磁盘等资源依然会继续计费（只有删除实例才完全停止计费）。买之前先看清计费规则。

## 第一步：创建普通用户（不要直接用 root）

拿到新服务器后，先创建一个带 `sudo` 权限的普通用户来跑 Claude Code，不要全程用 `root`，这样就算 AI 执行了误删或改错配置的命令，破坏范围也是可控的。

先用云厂商给你的 `root` 账号登录一次服务器，执行下面的命令创建新用户（把 `dev` 换成你喜欢的用户名）：

`在服务器上（root 权限）`

```
# 创建用户并加入 sudo 组（Debian/Ubuntu）
adduser dev
usermod -aG sudo dev
```

接着回到你自己的电脑上，把本地的 SSH 公钥传给这个新用户，以后就能免密登录了：

`在你自己的电脑上`

```
ssh-copy-id dev@你的服务器IP
ssh dev@你的服务器IP
```

如果你电脑上还没有 SSH 密钥对，先在本地运行 `ssh-keygen -t ed25519` 生成一对，私钥留在自己电脑上，绝不要外传。

## 安装 Claude Code

推荐使用官方原生安装脚本：它不需要预装 Node.js，直接把可执行文件装在当前用户的家目录下，并且会在后台自动更新。

`在服务器上（用刚创建的普通用户）`

```
curl -fsSL https://claude.ai/install.sh | bash
claude --version
```

下载过程中终端不会显示进度条，耐心等它跑完即可。装好后运行 `claude --version`，能打印出版本号就说明成功了；你还可以运行 `claude doctor` 做一次环境自检。

如果官方脚本在你的服务器上拉不下来，官方文档还提供了另外两种安装途径：

- **系统包管理器（apt / dnf / apk）：**Anthropic 提供了带签名的软件源，装好后可以跟着系统升级一起更新。
- **npm 安装：**如果你的机器上本来就有 Node.js（要求 Node.js 22 及以上版本），可以运行 `npm install -g @anthropic-ai/claude-code`。注意官方明确提醒**不要加 `sudo`**。npm 包安装下来的其实也是同一个原生二进制程序。

## 登录与模型接入：国产模型、中转站、API Key 或官方订阅

装好之后，你需要给 Claude Code 接上大模型。对于国内开发者，最常见的是写入 `ANTHROPIC_BASE_URL` 和 `ANTHROPIC_AUTH_TOKEN` 来接国产模型或中转站；如果你在境外 VPS 上，也可以直接用 Anthropic 官方 API Key 或 Claude 订阅账号。

### 方式一：接入国产大模型官方接口或中转站（国内最常用）

DeepSeek、智谱 GLM、Kimi（月之暗面）、阿里云百炼（通义千问）、MiniMax 等国内厂商，都已经官方提供了兼容 Anthropic 格式的接口。中转站（聚合 API）的原理也完全一样：给 Claude Code 指定一个请求地址（Base URL）和一个密钥（Token）。

最干净的做法是把它们写进用户目录下的 `~/.claude/settings.json` 文件里（没有就新建一个）。这样不管你从哪个目录启动 `claude`，配置都会自动生效：

`~/.claude/settings.json（以 DeepSeek 为例）`

```
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "在这里填入你的密钥",
    "ANTHROPIC_MODEL": "deepseek-flash[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-flash"
  }
}
```

如果你用的是其他国产厂商或第三方中转站，只需把上面的 `ANTHROPIC_BASE_URL`、`ANTHROPIC_AUTH_TOKEN` 以及模型名称，替换成对应平台文档里提供的值即可。各家厂商的具体地址和写法，可以参考我们的另一篇指南：[Claude Code 国内怎么用？接国产模型或中转站的完整方法](/zh/claude-code-china)。

> **安全提醒：**千万不要把包含密钥的配置写进项目目录里的 `.claude/settings.json` 并提交到 Git 仓库——Anthropic 文档特别警告过，项目级的配置文件会共享给所有克隆该仓库的人。设置好后，在 Claude Code 里输入 `/status`，就能确认当前生效的接口地址和认证方式。

### 方式二：使用 Anthropic 官方 API Key

如果你有可用的 Anthropic Console 账号，可以直接按 Token 用量付费。把官方生成的 Key 写进 `~/.claude/settings.json` 的 `ANTHROPIC_API_KEY` 字段即可（不需要改 Base URL）：

`~/.claude/settings.json（官方 API Key）`

```
{
  "env": {
    "ANTHROPIC_API_KEY": "sk-ant-你的官方API密钥"
  }
}
```

根据官方文档，只要环境变量里设置了 `ANTHROPIC_API_KEY`，即使你之前登录过订阅账号，Claude Code 也会优先使用这个 API Key 计费；想切回订阅账号，需要把这个变量删掉或执行 `unset ANTHROPIC_API_KEY`。

### 方式三：使用 Claude 订阅账号登录（Pro / Max / Team 等）

如果你在境外 VPS 上，并且有付费的 claude.ai 订阅账号（Pro、Max、Ultra、Team 或 Enterprise，免费版不支持 Claude Code），可以直接用账号登录：

1. **启动并复制登录链接** — 在服务器终端运行 `claude`。因为服务器上没有图形浏览器，按键盘上的 `c` 键（或直接鼠标选中）复制终端里打印出的登录 URL。
1. **在本地电脑浏览器完成授权** — 在你自己电脑的浏览器里打开刚才复制的链接，登录你的 Claude 账号，页面会给出一个授权码（Code）。
1. **把授权码粘贴回服务器终端** — 回到服务器的 `Paste code here` 提示处，把授权码粘贴进去回车即可。如果交互界面粘贴没反应，官方建议改跑 `claude auth login` 命令，它会从标准输入读取授权码。

如果你需要写自动化脚本跑无值守任务，可以运行 `claude setup-token` 生成一个有效期一年的 OAuth 令牌，填到 `CLAUDE_CODE_OAUTH_TOKEN` 环境变量里使用（注意这种令牌不支持开启 Remote Control）。

## 用 tmux 保持 24 小时后台运行

在服务器上跑 Claude Code，一定要把它放在 `tmux` 会话里启动；否则你的 SSH 连接一旦因为网络波动断开，正在跑的 `claude` 进程就会被系统直接终止。

`tmux` 是一个终端复用工具，它能让终端会话一直留在服务器后台，你可以随时断开（detach），过几个小时再从另一台电脑或手机重新接上（attach）。Anthropic 在 Remote Control 文档中也建议：在远程机器上运行 `claude` 时放进 `tmux` 或 `screen`，这样断开 SSH 后会话不会掉线。

`tmux 常用命令`

```
sudo apt install tmux        # Debian/Ubuntu 安装 tmux
tmux new -s work             # 创建并进入一个叫 work 的会话
claude                       # 在 tmux 里面启动 Claude Code

# 想离开时：先按 Ctrl+b，松开后再按 d（会话会留在后台继续跑）

tmux ls                      # 查看后台有哪些会话
tmux attach -t work          # 下次连上服务器，重新回到 work 会话
```

记住一个最省事的命令：`tmux new -A -s work`。它的意思是“如果已经有叫 `work` 的会话就直接连进去，没有就新建一个”。平时用电脑或手机连上服务器后，直接敲这一行就够了。

注意：`tmux` 能扛住 SSH 断线，但扛不住服务器重启。如果服务器重启了，重新跑一次 `tmux new -A -s work` 并启动 `claude` 即可。

## 在手机上怎么远程连上去用

把 Claude Code 部署在服务器上之后，你有三种办法从手机访问它：装一个手机 SSH 客户端连 tmux、用 Anthropic 官方的 Remote Control，或者直接用浏览器工作台。更详细的对比可以看 [手机上怎么用 Claude Code](/zh/claude-code-phone)。

### 办法一：手机 SSH App + tmux（不挑模型，最通用）

在手机上装一个支持 SSH 的终端 App（Android 常用 Termux 或 JuiceSSH，iOS 常用 Blink Shell、Termius 或 Prompt），导入你的私钥连上服务器，然后执行 `tmux new -A -s work`，就能直接看到刚才电脑上留下的 Claude Code 界面。

这种方式对所有模型接法都有效（国产模型、中转站、API Key 都能用）。缺点是手机屏幕小、敲长命令费劲，适合在外面看一眼进度、审批一下权限（按回车确认），或者发一两句简短的指令。

### 办法二：加装 Tailscale 组建私有内网（更安全）

如果你不想把服务器的 22 端口暴露在公网上天天被机器人扫，可以在服务器和手机上都装上 Tailscale，登录同一个账号，把它们放进同一个虚拟局域网里：

`在服务器上安装 Tailscale`

```
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
```

你还可以运行 `tailscale set --ssh` 开启 [Tailscale SSH](https://tailscale.com/kb/1193/tailscale-ssh)。开启后，凡是通过 Tailscale 内网连过来的请求，直接由 Tailscale 验证身份，连 SSH 密钥都不用在手机上配，同时也不会改动你原有的 `sshd` 配置。配通之后，你就可以在云厂商防火墙里把公网的 22 端口彻底关掉了。

### 办法三：官方 Remote Control（仅限官方订阅账号）

Anthropic 提供了 Remote Control 功能，让你用手机上的 Claude App 或网页版 `claude.ai/code` 直接遥控服务器上的会话。用法是在服务器的 tmux 里运行 `claude remote-control`，然后在手机上打开终端显示的链接，或按空格键显示二维码后扫码。它只向外发起 HTTPS 请求，不需要服务器开放入站端口。

**但它的限制非常严，绝大多数国内用法都用不了：**

- 必须使用 claude.ai 订阅账号登录（**不支持 API Key**）。
- 只要你的 `ANTHROPIC_BASE_URL` 指向了非官方地址（即非 `api.anthropic.com`），Remote Control 会被直接禁用——也就是说**国产模型和中转站全部无法使用此功能**。
- 服务器上的 `claude` 进程必须一直保持运行。

因此，只要你用的是国产模型、中转站或者按量计费的 API Key，手机端就请老老实实用 SSH，或者用下面介绍的浏览器工作台。

## 服务器安全加固清单（必做）

一台刚开通的公网云服务器，几分钟内就会被全网的扫描器盯上。把代码和 API 密钥放上去之前，请至少做完下面 6 件事：

- 

### 禁用密码登录与 root 远程登录

先开第二个终端窗口，确认你的普通用户用 SSH 密钥能正常登录。确认无误后，编辑服务器上的 `/etc/ssh/sshd_config`，改成下面这样：

`/etc/ssh/sshd_config`

```
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
```

改完先运行 `sudo sshd -t` 检查语法有没有错，没报错再重启 SSH 服务（Debian/Ubuntu 上是 `sudo systemctl restart ssh`，部分其他发行版是 `sshd`）。有些云镜像自带的子配置文件会覆盖主配置，建议跑一下 `sudo sshd -T | grep -i -E "passwordauth|permitroot"`，确认实际生效的值确实是 `no`。在测试新窗口能连上之前，别关掉手头现有的终端。

- 

### 开启防火墙（ufw）

Ubuntu 默认没启用 ufw。启用前**必须先放行 SSH 端口**，否则会把自己锁在门外：

`配置 ufw 防火墙`

```
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status
```

只有当你需要在服务器上对外展示网页时，才去额外放行 80 和 443 端口。

- 

### 安装 fail2ban 防暴力破解

`fail2ban` 会自动监控 `/var/log/auth.log` 等日志，把连续试错密码或密钥的 IP 直接封禁一段时间。在 Debian/Ubuntu 上运行 `sudo apt install fail2ban` 即可装好，用 `sudo fail2ban-client status` 可以查看运行状态。

- 

### 日常绝不用 root 跑 Claude Code

始终用你的普通用户启动 `claude`。遇到 Claude Code 询问是否允许执行某条危险命令时，看一眼再点确认，不要无脑全部放行。

- 

### 管好 API Key 和 Git 凭证

把接口密钥放在 `~/.claude/settings.json` 里，并确保文件权限只有你自己能读写（`chmod 600 ~/.claude/settings.json`）。在 Linux 上，Claude Code 默认也会把登录凭证以 `0600` 权限保存在 `~/.claude/.credentials.json`。服务器上拉代码时，尽量用只针对单个仓库的 Deploy Key（部署密钥）或限制了权限范围的个人访问令牌（PAT）。

- 

### 保持系统与工具更新

原生安装的 Claude Code 会自动更新；操作系统层面，建议在 Debian/Ubuntu 上开启 `unattended-upgrades` 自动安装安全补丁。

## 成本怎么算：服务器租金 + 模型消耗

自己在云服务器上跑 Claude Code，总花费由两部分相加：**固定付给云厂商的服务器租金**，加上**按实际使用量付给模型厂商的费用**。

- **服务器费用：**按月或按小时固定计费。只要服务器实例还存在，不管你今天有没有打开 Claude Code，这笔钱都在走。记得留意流量包超额、额外挂载硬盘和自动快照是不是单独收费。
- **模型费用：**如果你接的是国产模型、中转站或官方 API Key，都是按 Token 消耗量扣费的——让 Claude Code 在后台自动循环改 Bug、跑测试，一晚上消耗的 Token 费用完全可能超过服务器本身的月租。如果你用的是固定月费的套餐（如 Claude Pro/Max 或部分国产厂商的包月编程套餐），则是消耗套餐内的额度上限。

最稳妥的办法是：先按平时的真实工作强度跑上一周，把云厂商账单和模型后台的消耗加起来乘以 4，就能算出你每个月的真实开销。

## 常见问题排查（Troubleshooting）

新服务器上部署遇到报错，十有八九是环境变量 PATH、内存不足、网络拦截或认证冲突，按下面的症状对号入座即可：

- **装完提示 `claude: command not found`：**官方安装脚本会把程序装在 `~/.local/bin/claude`，但这个目录可能还没加进你的 PATH。运行 `echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc` 即可解决。
- **安装过程中突然显示 `Killed`（退出码 137）：**服务器可用内存不够，进程被 Linux 内核杀掉了。按照官方排查文档的做法，先用 `fallocate`、`mkswap` 和 `swapon` 挂载一个 2 GB 的 Swap 交换文件，或者直接升级到 4 GB 以上内存的机型，再重新运行安装脚本。
- **运行安装脚本返回一堆 HTML 或 403 错误：**说明服务器当前的网络被拦截了，或者服务器所在地区不在 Anthropic 支持列表内（官方安装脚本在不支持的地区会返回 403）。这种情况请换用支持地区的服务器。
- **配了国产模型或中转站，但一直报 401 / 403 认证错误：**在 Claude Code 里输入 `/status` 检查当前生效的配置。看看是不是环境变量名拼错了（应为 `ANTHROPIC_BASE_URL` 和 `ANTHROPIC_AUTH_TOKEN`），或者机器上同时残留了旧的 `ANTHROPIC_API_KEY` 和登录状态——可以执行 `/logout` 退出账号后重启 `claude`。
- **OAuth 登录提示 `Invalid code`：**授权码过期了，或者复制的时候漏了字符。重新运行登录，按 `c` 键完整复制链接并在浏览器里快速完成授权。
- **SSH 重连后发现之前跑的任务没了：**说明你上次是直接在普通 SSH 窗口里敲的 `claude`，没进 `tmux`。下次记得先跑 `tmux new -A -s work`，在里面再启动 Claude Code。
- **`claude remote-control` 启动失败：**先往上翻看“办法三”里的限制条件——只要你用的是 API Key、国产模型或中转站，这个功能就是不可用的。如果是官方订阅账号还连不上，可以跑 `claude remote-control --verbose` 查看详细报错日志。

## 不想自己配服务器？用 AlwaysAgent 开箱即用

如果你想要“任务 24 小时在云端跑、手机随时能看”的效果，但不想自己去买 VPS、配 SSH 密钥、调防火墙和记 tmux 命令，可以直接用 [AlwaysAgent](https://alwaysagent.app)。

AlwaysAgent 给每位用户分配一台独享的云端 Linux 服务器（带独立公网 IP），里面已经预装好了 Claude Code 和 OpenAI Codex。你不需要装任何客户端，也不用配 SSH，直接在电脑或手机浏览器里打开工作台，就能用上 AI 对话、文件管理、终端、远程浏览器预览和版本记录。关掉电脑或浏览器标签页后，任务依然在你的服务器上 7×24 小时继续运行。

- **自带模型接口，平台不赚差价：**在工作台设置里直接填入 Base URL 和 API Key 即可——无论是 DeepSeek、智谱、Kimi 等国产模型官方接口，还是第三方中转站、OpenRouter，或是 Anthropic / OpenAI 官方 Key 都能用。密钥只保存在你自己的服务器上，平台不经手 AI 调用、不加价，也不转售模型额度。
- **计费透明，先试再买：**支持按小时试用，充值 $10 起，约 $0.05/小时（注意：按小时服务器在关机状态下也会继续计费，删除服务器即停止计费；充值 14 天内未消费余额可退，扣除手续费）。如果觉得好用，可以一键转成月付套餐并自动迁移数据：Starter $9.9/月（2 核 4GB 40GB）、Developer $17.9/月（4 核 8GB 75GB）、Pro $24.9/月（6 核 12GB 100GB）、Power $44.9/月（8 核 24GB 200GB），全部不限流量、包含每日自动快照，到期自动续费且可随时取消。

## 常见问题

### 云服务器跑 Claude Code，选国内服务器还是国外 VPS？

取决于你用什么模型和代码源。如果你用国产大模型（如 DeepSeek、智谱、Kimi）且代码托管在国内平台，国内云服务器延迟最低；如果你要用 Claude 官方订阅账号、Anthropic 官方 API Key，或者经常从 GitHub、npm 拉包，选美西、日本或新加坡的境外 VPS 会省去很多网络折腾。

### 跑 Claude Code 的服务器最低需要什么配置？

按照 Anthropic 官方要求，内存至少需要 4 GB（安装程序本身也需要约 512 MB 以上的空闲内存，1 GB 或 2 GB 的小机器很容易在安装时因为内存不足被系统杀死）。日常写代码建议从 2 核 4 GB 起步；如果要跑 Docker 或大型项目编译，建议选 4 核 8 GB 及以上配置。

### 服务器上的 Claude Code 可以接 DeepSeek、智谱或中转站吗？

可以。在服务器上的 ~/.claude/settings.json 文件里，把厂商或中转站提供的接口地址填进 ANTHROPIC_BASE_URL，把密钥填进 ANTHROPIC_AUTH_TOKEN 即可生效，用法和在本地电脑上完全一样。

### 为什么我关掉 SSH 窗口后，服务器上的 Claude Code 任务就断了？

因为直接通过 SSH 启动的程序会绑定在当前连接上，网络一断进程就会收到挂断信号退出。解决办法是先在服务器上运行 tmux new -A -s work 进入 tmux 会话，再在里面启动 claude；这样就算关掉电脑或断开 SSH，任务也会在后台继续跑。

### 接了国产模型或中转站，还能用 Claude 官方的手机 Remote Control 吗？

不能。Anthropic 官方的 Remote Control 强制要求使用 claude.ai 订阅账号登录，且一旦检测到 ANTHROPIC_BASE_URL 不是官方地址就会自动禁用。如果你用国产模型、中转站或 API Key，想在手机上用，可以通过手机 SSH 客户端连 tmux，或者使用 AlwaysAgent 这类直接支持手机浏览器的云端工作台。

### 在服务器上安装 Claude Code 必须要先装 Node.js 吗？

不需要。使用官方推荐的 curl -fsSL https://claude.ai/install.sh | bash 命令安装的是独立原生二进制程序，不依赖 Node.js。只有当你选择用 npm install 方式安装，或者你自己的项目本身需要 Node 环境时，才需要安装 Node.js。
