Ubuntu 部署 Claude Code + DeepSeek 配置完全指南

Ubuntu 部署 Claude Code + DeepSeek 配置完全指南

Ubuntu 部署 Claude Code + DeepSeek 配置完全指南

适用环境:Ubuntu 20.04/22.04/24.04(x86_64)
测试环境:PyTorch 2.2.2 + CUDA 11.8 + cuDNN 8 + Ubuntu 22.04
更新时间:2026-06-22


一、环境准备

Claude Code 本身与 PyTorch/CUDA 无直接依赖,它是一个终端 AI 助手,运行在用户态。安装前确保:

  • Ubuntu 20.04+(x86_64 或 ARM64)
  • 网络可访问 npm 镜像(清华/淘宝)
  • 4GB+ 内存

1.1 安装 Node.js(20 LTS)

由于claude.ai/install.sh官方脚本在部分地区受限,推荐使用npm 全局安装方式。

通过清华大学镜像安装 Node.js:

# 下载清华镜像预编译的 Node.js 二进制包cd/usr/localcurl-Ohttps://mirrors.tuna.tsinghua.edu.cn/nodejs-release/v20.15.0/node-v20.15.0-linux-x64.tar.xztar-xvfnode-v20.15.0-linux-x64.tar.xz# 创建软链接到系统 PATHln-sf/usr/local/node-v20.15.0-linux-x64/bin/node /usr/local/bin/nodeln-sf/usr/local/node-v20.15.0-linux-x64/bin/npm /usr/local/bin/npm# 验证node--version# v20.15.0npm--version# 10.7.0

1.2 配置 npm 国内镜像(加速)

npmconfigsetregistry https://registry.npmmirror.com

二、安装 Claude Code

npminstall-g@anthropic-ai/claude-code

验证安装:

claude--versionclaude doctor

注意:官方推荐的curl -fsSL https://claude.ai/install.sh | bash方式在部分地区会返回App unavailable in region错误,因此本文采用 npm 安装作为可靠替代方案。


三、配置 DeepSeek API

3.1 获取 DeepSeek API Key

  1. 访问 platform.deepseek.com
  2. 注册/登录 →API Keys→ 创建新密钥
  3. 复制密钥(格式为sk-...),只显示一次,请妥善保存

3.2 一键配置脚本

创建启动脚本,将 DeepSeek Key 硬编码其中(适合个人服务器/容器使用):

cat>start-claude-deepseek.sh<<'EOF' #!/bin/bash # ========== 配置区 ========== # 替换为你的真实 DeepSeek API Key DEEPSEEK_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # =========================== set -e echo "========================================" echo " Claude Code + DeepSeek 启动脚本" echo "========================================" echo "" # 检查 Key 是否已修改 if [[ "$DEEPSEEK_KEY" == "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ]]; then echo "❌ 错误:你还没有配置 DeepSeek API Key" echo " 请编辑本脚本,将 DEEPSEEK_KEY 的值替换为你的真实 Key" exit 1 fi # 检查 Claude Code if ! command -v claude &> /dev/null; then echo "❌ 错误:未找到 claude 命令" exit 1 fi echo "✅ Claude Code 已安装" # 写入 ~/.bashrc(首次运行时写入,避免重复) if ! grep -q "CLAUDE_CODE_DEEPSEEK_CONFIGURED" ~/.bashrc 2>/dev/null; then echo "📝 首次运行:写入环境变量到 ~/.bashrc ..." cat >> ~/.bashrc << ENVEOF # === Claude Code DeepSeek Config [CLAUDE_CODE_DEEPSEEK_CONFIGURED] === export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" export ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_KEY" export ANTHROPIC_API_KEY="$DEEPSEEK_KEY" export ANTHROPIC_MODEL="deepseek-v4-pro[1m]" export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]" export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]" export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash" export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash" export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1" export CLAUDE_CODE_EFFORT_LEVEL="max" # === End Claude Code Config === ENVEOF echo "✅ ~/.bashrc 已更新" else echo "✅ ~/.bashrc 已配置过,跳过" fi # 写入 ~/.claude/settings.json(持久化配置,双重保险) echo "📝 写入 ~/.claude/settings.json ..." mkdir -p ~/.claude cat > ~/.claude/settings.json << JSONEOF { "env": { "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic", "ANTHROPIC_AUTH_TOKEN": "$DEEPSEEK_KEY", "ANTHROPIC_API_KEY": "$DEEPSEEK_KEY", "ANTHROPIC_MODEL": "deepseek-v4-pro[1m]", "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]", "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro[1m]", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash", "CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1", "CLAUDE_CODE_EFFORT_LEVEL": "max" } } JSONEOF echo "✅ settings.json 已更新" # 当前会话立即生效 export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" export ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_KEY" export ANTHROPIC_API_KEY="$DEEPSEEK_KEY" export ANTHROPIC_MODEL="deepseek-v4-pro[1m]" export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]" export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]" export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash" export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash" export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1" export CLAUDE_CODE_EFFORT_LEVEL="max" # 测试 DeepSeek 连接 echo "" echo "🧪 测试 DeepSeek 连接 ..." TEST=$(curl -s -w "\n%{http_code}" \ -H "Authorization: Bearer $DEEPSEEK_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"deepseek-v4-pro[1m]","messages":[{"role":"user","content":"Hi"}],"max_tokens":5}' \ https://api.deepseek.com/v1/chat/completions 2>/dev/null || echo "CURL_FAILED") CODE=$(echo "$TEST" | tail -n1) if [[ "$TEST" == "CURL_FAILED" ]]; then echo "⚠️ 网络测试失败,但配置已保存" elif [[ "$CODE" == "200" ]]; then echo "✅ DeepSeek API 连接正常" elif [[ "$CODE" == "401" ]]; then echo "⚠️ API Key 无效 (401),请检查 Key" else echo "ℹ️ DeepSeek 返回 HTTP $CODE" fi # 启动 Claude Code echo "" echo "========================================" echo " 🚀 启动 Claude Code ..." echo "========================================" echo "" echo "💡 提示:输入 /status 查看当前模型配置" echo " 输入 'hi' 测试 DeepSeek 是否正常回复" echo "" claude EOFchmod+x start-claude-deepseek.sh

3.3 修改脚本填入你的 Key

nanostart-claude-deepseek.sh

找到这一行:

DEEPSEEK_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

sk-xxxxxxxx...替换为你的真实 DeepSeek API Key,保存退出(Ctrl+OCtrl+X)。

3.4 运行脚本

bashstart-claude-deepseek.sh

首次运行会自动完成所有配置并启动 Claude Code。后续直接运行同一命令即可。


四、日常使用命令

4.1 标准交互模式(推荐)

# 进入项目目录后启动cd/path/to/your-projectbashstart-claude-deepseek.sh

4.2 全权自动模式(非 root 用户)

如果你创建了普通用户,可以使用--dangerously-skip-permissions跳过所有确认提示:

claude --dangerously-skip-permissions

⚠️安全警告:此模式下 Claude Code 会自动执行文件编辑和命令运行,不会询问确认。请确保在正确的项目目录,且代码已备份。

4.3 在 Claude Code 内部常用命令

命令作用
/status查看当前模型、权限和连接状态
/auto-accept开启自动接受所有编辑建议(root 用户推荐)
/init生成CLAUDE.md,让 Claude 深度理解项目结构
/clear清空对话历史
/cost查看本次会话的 API 消耗

五、root 用户特殊处理

Claude Code 出于安全考虑,禁止 root 用户使用--dangerously-skip-permissions

方案 A:创建普通用户(推荐)

# 创建用户useradd-m-s/bin/bash dev# 切换用户su- dev# 确保 node 和 claude 在 PATHexportPATH="/usr/local/node-v20.15.0-linux-x64/bin:$HOME/.local/bin:$PATH"# 复制配置(如需要)mkdir-p~/.claudecp/root/.claude/settings.json ~/.claude/settings.json2>/dev/null||true# 现在可以全权运行claude --dangerously-skip-permissions

方案 B:root 下使用 /auto-accept

claude

进入后输入:

/auto-accept

六、模型配置说明

环境变量说明推荐值
ANTHROPIC_BASE_URLDeepSeek 兼容接口地址https://api.deepseek.com/anthropic不要加尾部斜杠或/v1
ANTHROPIC_MODEL主模型deepseek-v4-pro[1m]
ANTHROPIC_DEFAULT_SONNET_MODEL中等复杂度任务deepseek-v4-pro[1m]
ANTHROPIC_DEFAULT_HAIKU_MODEL简单/子代理任务deepseek-v4-flash
CLAUDE_CODE_SUBAGENT_MODEL子代理模型deepseek-v4-flash
CLAUDE_CODE_EFFORT_LEVEL推理努力程度max

[1m]后缀显式请求 1M 上下文窗口,处理大代码库时建议带上。


七、常见问题排查

问题原因解决方案
bash: line 1: syntax error near unexpected token '<'官方安装脚本受地区限制改用本文的 npm 安装方式
GnuTLS recv error (-110)GitHub 访问受限用清华镜像安装 Node.js
--dangerously-skip-permissions cannot be used with root安全限制创建普通用户,或进入后用/auto-accept
API Error: streaming failed流式传输失败添加export CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1
401 UnauthorizedAPI Key 无效同时设置ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEY为同一 Key
404 model not found模型名称错误使用deepseek-v4-pro[1m]而非旧版deepseek-chat

八、安全建议

  1. 文件权限:脚本包含 API Key,建议设置chmod 600 start-claude-deepseek.sh
  2. 不要上传:切勿将含 Key 的脚本提交到 GitHub 或共享给他人
  3. 定期轮换:在 DeepSeek 平台定期更换 API Key
  4. 成本监控:使用/cost命令查看消耗,避免意外高额账单

九、快速检查清单

部署完成后,逐项确认:

  • Node.js 20+ 已安装 (node --version)
  • Claude Code 已安装 (claude --version)
  • DeepSeek API Key 已填入脚本
  • 脚本已运行并测试连接成功
  • ~/.bashrc已包含环境变量配置
  • ~/.claude/settings.json已写入
  • 进入 Claude Code 后/status显示 DeepSeek 模型
  • 输入hi能正常收到 DeepSeek 回复

本文基于 Claude Code 官方文档及 DeepSeek API 兼容接口实践整理。