Claude Code 远程部署实战:在 VPS 上运行 AI 编程助手
把 Claude Code 装到你的 VPS 上,随时随地通过 SSH 调用 AI 编程能力
前言
Claude Code 是 Anthropic 推出的命令行 AI 编程助手,能够直接在终端中理解代码、编写代码、执行命令。但你有没有想过——把它部署到远程 VPS 上会怎样?
这篇博客记录了我将 Claude Code 部署到一台 Ubuntu 22.04 VPS 的全过程,包含踩坑、配置和实用技巧。
环境概览
| 项目 | 配置 |
|---|---|
| 服务器 | 你的 VPS IP |
| 系统 | Ubuntu 22.04.5 LTS (Jammy Jellyfish) |
| 架构 | x86_64 |
| 内存 | 2.4G |
| Node.js | v20.20.2 |
| npm | 10.8.2 |
| Claude Code | 2.1.181 |
第一步:连接 VPS
首先通过 SSH 登录服务器:
1ssh root@你的服务器IP::: tip
建议配置 SSH 密钥登录而不是密码登录,既安全又方便。如果你用的是 Windows 终端,也可以借助 Claude Code 桌面版或 VS Code 插件来管理远程连接。
:::
第二步:安装 Node.js
Claude Code 基于 Node.js 运行,第一步先确保 Node.js 环境到位。
方法一:使用 NodeSource(推荐)
1# 下载并执行 NodeSource 安装脚本
2curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
3
4# 安装 Node.js
5apt-get install -y nodejs
6
7# 验证
8node --version # v20.20.2
9npm --version # 10.8.2方法二:使用 nvm(Node Version Manager)
1# 安装 nvm
2curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
3
4# 重新加载 shell 配置
5source ~/.bashrc
6
7# 安装 Node.js LTS
8nvm install --lts为什么选择 v20? Claude Code 推荐 Node.js 18+,v20 是目前最新的 LTS 版本,稳定性和兼容性都经过充分验证。
第三步:安装 Claude Code
Node.js 就绪后,安装 Claude Code 只需要一条命令:
1npm install -g @anthropic-ai/claude-code安装完成后验证:
1claude --version
2# 输出:2.1.181 (Claude Code)
3
4which claude
5# 输出:/usr/bin/claude安装了什么?
- 可执行文件:
/usr/bin/claude(符号链接) - 实际位置:
/usr/lib/node_modules/@anthropic-ai/claude-code/ - 配置文件目录:
~/.claude/
番外篇:环境变量配置(核心亮点)
安装完成后,最关键的一步就是配置环境变量。揭开我们 VPS 上 .bashrc 的真实配置,这才是本文的精髓:
1# Claude Code / Anthropic API 配置
2export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
3export ANTHROPIC_AUTH_TOKEN=sk-你的密钥
4export ANTHROPIC_MODEL=deepseek-v4-flash
5export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro
6export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro
7export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash
8export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash
9export CLAUDE_CODE_EFFORT_LEVEL=max
10export API_TIMEOUT_MS=60000
11export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1这些变量都是干什么的?
API 端点和密钥
| 变量 | 作用 | 示例值 |
|---|---|---|
ANTHROPIC_BASE_URL | API 请求地址,指向兼容 Anthropic 格式的第三方 API | https://api.deepseek.com/anthropic |
ANTHROPIC_AUTH_TOKEN | API 身份验证令牌 | sk-xxxxx |
为什么要改 BASE_URL? 因为 Claude Code 原生只支持 Anthropic 官方 API,但通过修改 ANTHROPIC_BASE_URL,可以将其指向任何兼容 Anthropic API 格式的第三方服务商(如 DeepSeek、OpenRouter 等)。这对于某些地区无法直接访问 Anthropic API 的用户来说,是必不可少的配置。
模型映射
Claude Code 内部使用三个模型层级,我们可以为每一层指定不同的实际模型:
| 变量 | Claude 层级 | 映射模型 | 用途 |
|---|---|---|---|
ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet(平衡型) | deepseek-v4-pro | 日常编程、代码生成 |
ANTHROPIC_DEFAULT_OPUS_MODEL | Opus(最强型) | deepseek-v4-pro | 复杂推理、架构设计 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Haiku(轻量型) | deepseek-v4-flash | 快速问答、简单任务 |
CLAUDE_CODE_SUBAGENT_MODEL | 子 agent 模型 | deepseek-v4-flash | 后台并行任务 |
这样的映射策略很聪明:
- 复杂任务 →
deepseek-v4-pro(对标 Sonnet/Opus,能力强) - 简单任务 + 后台子任务 →
deepseek-v4-flash(速度快,成本低) - 默认模型 设为
deepseek-v4-flash,兼顾响应速度和能力
运行调优
| 变量 | 作用 | 值 |
|---|---|---|
CLAUDE_CODE_EFFORT_LEVEL | Claude Code 的"努力程度" | max — 全力以赴,不偷懒 |
API_TIMEOUT_MS | API 请求超时时间 | 60000(60 秒) |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 禁用非必要流量 | 1 — 关闭遥测,保护隐私 |
::: tip
CLAUDE_CODE_EFFORT_LEVEL 设为 max 后,Claude Code 在生成代码、分析问题时会投入更多"思考",产出质量更高,但也会稍微增加响应时间。
:::
环境变量配在哪?
环境变量通常写在 Shell 配置文件中:
1# 方案一:全局生效
2echo 'export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic' >> /etc/environment
3
4# 方案二:当前用户生效(推荐)
5echo 'export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic' >> ~/.bashrc
6source ~/.bashrc
7
8# 方案三:直接写在终端里(关闭终端就失效,不推荐)
9export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic推荐方案二:写入
~/.bashrc,每次登录自动加载。这也是我们 VPS 上采用的方式。
验证环境变量是否生效
1# 查看所有 Claude 相关变量
2env | grep ANTHROPIC
3env | grep CLAUDE_CODE
4
5# 或单独查看某个变量
6echo $ANTHROPIC_BASE_URL
7echo $ANTHROPIC_MODEL第四步:基础配置
初始化
首次运行 claude 命令会进入交互式初始化流程:
1claude这会引导你:
- 阅读并同意服务条款
- 配置认证方式
- 设置工作目录
配置文件
Claude Code 的配置文件存放在 ~/.claude/ 目录下:
1// ~/.claude/settings.json — 全局设置
2{
3 "theme": "dark"
4}
5
6// ~/.claude/settings.local.json — 本地覆盖设置
7{
8 "permissions": {
9 "allow": [
10 "Bash(caddy version *)",
11 "Bash(npx vitepress *)"
12 ]
13 }
14}目录结构一览:
1~/.claude/
2├── backups/ # 备份文件
3├── file-history/ # 文件修改历史
4├── plans/ # 项目计划
5├── plugins/ # 插件
6├── projects/ # 项目配置
7├── session-env/ # 会话环境
8├── sessions/ # 会话记录
9├── tasks/ # 任务记录
10├── history.jsonl # 历史记录
11├── settings.json # 全局设置
12└── settings.local.json # 本地设置权限管理
在远程 VPS 上使用 Claude Code 时,权限管理尤为重要。每次 Claude Code 要执行 Shell 命令时,会请求你的许可。你可以在 settings.local.json 中预设信任的命令,减少反复确认的打扰。
第五步:从本地连接到远程 Claude Code
部署完成后的核心问题:怎么在本地使用 VPS 上的 Claude Code?
方案一:直接 SSH 远程执行
1# 在 VPS 上直接使用
2ssh root@你的服务器IP
3
4# 然后运行 claude
5claude方案二:SSH 配合 tmux 持久会话
1# 创建持久会话
2ssh root@你的服务器IP -t "tmux new -s claude-session"
3
4# 在会话中启动 Claude Code
5claude
6
7# 断线后重连
8ssh root@你的服务器IP -t "tmux attach -t claude-session"这样即使本地断网或关闭终端,Claude Code 仍在 VPS 上运行,重连即可恢复。
方案三:通过管道传递任务
1# 单次执行任务
2ssh root@你的服务器IP "claude --print '分析 /root/project 的代码质量'"使用场景与技巧
1. 远程代码审查
1ssh root@你的服务器IP "cd /root/project && claude --print '审查最近的代码变更'"2. 服务器运维辅助
Claude Code 可以理解服务器状态、分析日志、排查问题:
1claude "检查系统负载和磁盘空间,分析是否有异常进程"3. 项目管理
利用 Claude Code 的 plans/ 和 tasks/ 目录来跟踪项目进度:
1claude "查看当前项目的任务列表"4. 定时任务联动
可以结合 cron 定时任务,让 Claude Code 定期执行代码分析或报告生成:
1# 每天凌晨 2 点执行代码检查
20 2 * * * cd /root/project && claude --print '运行测试并生成报告' >> /var/log/claude-daily.log注意事项
安全性
-
API 密钥管理:Claude Code 需要 API 密钥,确保密钥文件权限正确
bash1chmod 600 ~/.claude/credentials -
SSH 安全加固:
- 禁用密码登录,使用 SSH 密钥
- 更换 SSH 默认端口(非 22)
- 配置 fail2ban 防暴力破解
-
最小权限原则:在 settings.local.json 中只赋予 Claude Code 必要的命令权限
性能考虑
- 2.4G 内存的 VPS 运行 Claude Code 足够,但如果同时运行其他服务(如数据库、Web 服务),注意监控资源使用
- Claude Code 本身不消耗 GPU 资源——所有 AI 计算在云端完成,VPS 只需要基本的网络和计算能力
- 网络延迟会影响交互体验,建议使用 tmux 保持会话
总结
在 VPS 上部署 Claude Code 是一个非常实用的操作。只需三步——装 Node.js、装 Claude Code、配环境变量——你就能获得一个 24 小时在线的 AI 编程助手。
和本地使用相比,远程部署的优势很明显:
| 维度 | 本地使用 | VPS 部署 |
|---|---|---|
| 可用性 | 关机即停 | 24h 在线 |
| 资源消耗 | 占用本机 | 服务器承担 |
| 团队协作 | 仅限本人 | 可共享入口 |
| 持久会话 | tmux 可保 | 天然持久 |
| 网络依赖 | 随时能用 | 需保持 SSH |
Happy Coding!