为什么要把 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 还是国内云服务器?
中国大陆读者在买服务器时,最容易踩坑的是网络连通性。你可以按下面的实际情况来取舍:
省心首选适合需要直连 Anthropic 官方接口、用 Claude 订阅账号,或经常从 GitHub、npm、Docker Hub 拉依赖的场景。低延迟 + 国产模型SSH 敲命令延迟极低,直连 DeepSeek、智谱、百炼等国内模型接口快,但访问海外资源受限。- 官方接口与地区限制:Anthropic 官方服务与 API 不支持中国大陆(及香港等不在支持列表内的地区)。如果你用 Claude Pro/Max 订阅登录,或者直连 Anthropic 官方 API,服务器必须选在 Anthropic 支持的国家和地区(例如美国、日本、新加坡),否则登录或调用会返回 403 错误。
- 安装包与开发依赖:Claude Code 的官方一键安装脚本托管在
claude.ai,日常写代码也经常要连 GitHub。中国大陆不在 Anthropic 的支持地区内,官方安装脚本在不支持的地区会返回 403;选国内机器时,模型也只能接国产模型的官方接口。 - SSH 延迟与备案:国内服务器连 SSH 基本没有延迟,敲命令跟本地终端一样跟手;境外 VPS 从国内直连会有一定延迟(选美西、日本或新加坡通常在可接受范围内)。另外,网站备案取决于服务器是否在中国内地并对外提供网站服务,具体以所用云厂商的规则为准。
- 注意计费方式:很多云厂商的按量付费实例,在控制台点“关机”后磁盘等资源依然会继续计费(只有删除实例才完全停止计费)。买之前先看清计费规则。
第一步:创建普通用户(不要直接用 root)
拿到新服务器后,先创建一个带 sudo 权限的普通用户来跑 Claude Code,不要全程用 root,这样就算 AI 执行了误删或改错配置的命令,破坏范围也是可控的。
先用云厂商给你的 root 账号登录一次服务器,执行下面的命令创建新用户(把 dev 换成你喜欢的用户名):
# 创建用户并加入 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,配置都会自动生效:
{
"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 国内怎么用?接国产模型或中转站的完整方法。
安全提醒:千万不要把包含密钥的配置写进项目目录里的 .claude/settings.json 并提交到 Git 仓库——Anthropic 文档特别警告过,项目级的配置文件会共享给所有克隆该仓库的人。设置好后,在 Claude Code 里输入 /status,就能确认当前生效的接口地址和认证方式。
方式二:使用 Anthropic 官方 API Key
如果你有可用的 Anthropic Console 账号,可以直接按 Token 用量付费。把官方生成的 Key 写进 ~/.claude/settings.json 的 ANTHROPIC_API_KEY 字段即可(不需要改 Base URL):
{
"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),可以直接用账号登录:
启动并复制登录链接
在服务器终端运行
claude。因为服务器上没有图形浏览器,按键盘上的c键(或直接鼠标选中)复制终端里打印出的登录 URL。在本地电脑浏览器完成授权
在你自己电脑的浏览器里打开刚才复制的链接,登录你的 Claude 账号,页面会给出一个授权码(Code)。
把授权码粘贴回服务器终端
回到服务器的
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 后会话不会掉线。
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。
办法一:手机 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,登录同一个账号,把它们放进同一个虚拟局域网里:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
你还可以运行 tailscale set --ssh 开启 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_configPasswordAuthentication 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。
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?
跑 Claude Code 的服务器最低需要什么配置?
服务器上的 Claude Code 可以接 DeepSeek、智谱或中转站吗?
为什么我关掉 SSH 窗口后,服务器上的 Claude Code 任务就断了?
接了国产模型或中转站,还能用 Claude 官方的手机 Remote Control 吗?
在服务器上安装 Claude Code 必须要先装 Node.js 吗?
不想自己折腾服务器和运维?
AlwaysAgent 给你一台预装好 Claude Code 和 Codex 的独享 Linux 云服务器,电脑和手机浏览器打开就能用,不用配 SSH。
先试再买 $0.05/h →