目 录CONTENT

文章目录

【待修改】【Claude-code接入vps】让网站搭建实现0代码,飞速维护我们的网站

JIN
JIN
2026-05-22 / 0 评论 / 0 点赞 / 14 阅读 / 0 字
广告 广告
广告 广告

前置说明:本教程基于一台已安装 Claude Code 的 VPS(Ubuntu 22.04/24.04),通过对接第三方 AI 聚合网关(OpenAI 兼容协议)来调用 Claude、Gemini、GPT、Grok 等多模型,让你的 VPS 能用最强 AI 帮你写代码、维护网站。

我的架构是双 VPS:

用途 部署内容
VPS A 主力开发机 Claude Code + CCR 路由器
VPS B API 网关 CPA(CLIProxyAPI,Docker 部署)

如果你只有一台 VPS,把 A、B 装一起也完全可以。


一、安装 Claude Code(VPS A)

官网文档:https://code.claude.com/docs/zh-CN/quickstart#homebrew

直接输入即可:

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

若缺少 node、npm 等文件,直接复制 Ubuntu 提示的语句粘贴后即可下载

安装后验证①:

node -v
npm -v

安装后验证②:

claude -v

安装后验证③:

git -v

二、Node.js 版本检查(关键)

CCR 路由器要求 Node.js ≥ v20,老版本会报 EBADENGINE 警告,跑起来不稳定。

2.1、查看当前 Node 版本
node -v

如果输出 v18.xx 或更老,必须升级。如果已经是 v20+,跳过本章。

2.2、安装 nvm(Node 版本管理工具)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
2.3、让 nvm 立刻生效(不用重开终端)
export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
2.4、装 Node 20 LTS 并设为默认
nvm install 20
nvm use 20
nvm alias default 20
2.5、验证
node -v

应显示 v20.x.x

⚠️ 切换 Node 版本后,全局包要重新安装(nvm 每个 Node 版本的全局包是独立的)

2.6、重装 Claude Code
npm install -g @anthropic-ai/claude-code

三、为什么不能直接用 Claude Code 接第三方网关

直接修改 ~/.claude.json没用的——这个文件只存客户端 UI 状态,不是 API 配置。

Claude Code 原生只认 Anthropic 协议/v1/messages),但绝大多数 AI 聚合网关用的是 OpenAI 兼容协议/v1/chat/completions),格式不一样。

所以需要 CCR(claude-code-router) 做中间翻译层:

Claude Code → CCR(协议翻译)→ 网关 → 真实模型

CCR 拦截 Claude Code 发出的请求,转换成 OpenAI 格式,再发给你的网关。


四、安装 CCR 路由器(VPS A)

4.1、全局安装
npm install -g @musistudio/claude-code-router
4.2、验证
ccr -v

应该看到版本号 2.0.0 或更新


五、配置 CCR 接入网关

5.1、创建配置目录
mkdir -p ~/.claude-code-router
5.2、写配置文件
nano ~/.claude-code-router/config.json
5.3、nano 编辑器输入:
{
  "LOG": false,
  "HOST": "127.0.0.1",
  "PORT": 3456,
  "Providers": [
    {
      "name": "cpamc",
      "api_base_url": "http://你的网关IP:端口/v1/chat/completions",
      "api_key": "你的API密钥",
      "models": [
        "claude-opus-4-7",
        "claude-opus-4-6",
        "claude-opus-4-6-thinking",
        "claude-sonnet-4-6",
        "claude-sonnet-4-5-20250929",
        "claude-haiku-4-5-20251001",
        "gpt-5.4",
        "gpt-5.5",
        "gemini-3.1-pro-low",
        "gemini-pro-agent",
        "grok-4.3"
      ]
    }
  ],
  "Router": {
    "default": "cpamc,claude-opus-4-7",
    "background": "cpamc,claude-haiku-4-5-20251001",
    "think": "cpamc,claude-opus-4-6-thinking",
    "longContext": "cpamc,claude-sonnet-4-5-20250929",
    "webSearch": "cpamc,claude-sonnet-4-6"
  }
}

配置说明:

字段 作用
api_base_url 网关完整地址,必须带 /v1/chat/completions,不是只到 /v1
api_key 网关给你的密钥(sk-开头)
models 网关支持的模型列表,名字必须精确(区分大小写和短横线)
Router.default 日常默认用的模型
Router.background 后台小任务用的便宜快速模型
Router.think 深度思考任务用的模型
Router.longContext 长上下文任务用的模型
Router.webSearch 网搜任务用的模型

保存按 Ctrl + O,然后按 Enter 确认

退出按 Ctrl + X

5.4、验证配置能拉通网关
curl 你的网关IP:端口/v1/models -H "Authorization: Bearer 你的API密钥"

能看到模型列表的 JSON 输出说明网络和密钥都没问题


六、清理环境变量冲突(重要)

如果你之前尝试过其他方法,可能在 ~/.bashrc 里设过 ANTHROPIC_* 环境变量,会和 CCR 冲突。

6.1、检查现有变量
grep -E "ANTHROPIC_(API_KEY|AUTH_TOKEN|BASE_URL)" ~/.bashrc ~/.bash_profile ~/.profile ~/.zshrc 2>/dev/null
6.2、有就清掉
sed -i '/ANTHROPIC_BASE_URL/d;/ANTHROPIC_AUTH_TOKEN/d;/ANTHROPIC_API_KEY/d' ~/.bashrc
6.3、清空当前 shell
unset ANTHROPIC_BASE_URL
unset ANTHROPIC_AUTH_TOKEN
unset ANTHROPIC_API_KEY
source ~/.bashrc
6.4、验证全空
env | grep ANTHROPIC

应该没有任何输出。所有 ANTHROPIC_* 都让 CCR 自己管,你不要手动设。


七、启动 Claude Code

7.1、用 CCR 包装启动(关键)
ccr code

不是 claude,是 ccr code。这两个命令的区别:

命令 行为
claude 直连 Anthropic 官方 API(需要官方 key)
ccr code 启动 CCR 路由 → 注入环境变量 → 调起 claude → 走网关
7.2、测试是否接通

进入 Claude Code 后随便发一句:

你是什么模型

如果回复正常(不是报错),说明整条链路 Claude Code → CCR → 网关 → 模型 已经打通。


八、切换模型(核心用法)

Claude Code CLI 里切换模型有两种方式。

8.1、原生菜单(只能选 Anthropic 内置)

输入框敲:

/model

弹出菜单选 Opus / Sonnet / Haiku,方向键选择回车确认。但看不到你网关里的 Gemini/GPT 等自定义模型

8.2、CCR 切换(用这个,看到所有模型)

输入框敲完整路径:

/model cpamc,claude-opus-4-7
/model cpamc,claude-sonnet-4-6
/model cpamc,claude-haiku-4-5-20251001
/model cpamc,gemini-3.1-pro-low
/model cpamc,gpt-5.4
/model cpamc,grok-4.3

格式:/model provider名,模型ID

模型名要完全精确,例如:

写法 结果
/model cpamc,claude-sonnet-4-6 ✅ 正确
/model cpamc,Claude Sonnet 4.6 ❌ 502 unknown provider
/model cpamc,gpt-5.4 ✅ 正确
/model cpamc,GPT 5.4 ❌ 错误

💡 提示:网关里模型分类大标题(如"Claude"、"Gemini 3.1 Pro Series")不是模型名,不能直接用。要去网关后台「模型列表」页看每个模型的精确 ID。


九、开启 YOLO 模式(免确认权限)

默认状态下,Claude Code 每次想读文件、跑命令、访问网络都会问你。在 VPS 上做网站维护这种场景,频繁确认非常烦。可以开启 YOLO 模式。

⚠️ 警告:YOLO 模式下 Claude 可无确认地读写任何文件、跑任意 bash 命令。只在 VPS / 容器 / 沙箱里用,不要在自己主力开发机上用。

重要数据请先 git 备份,出问题能回滚。

9.1、启动时加参数(一次性)

ccr code --dangerously-skip-permissions

9.2、改成持久化(推荐)

将启动参数写入别名:

echo "alias cc='ccr code --dangerously-skip-permissions'" >> ~/.bashrc && source ~/.bashrc && alias cc

以后输入 cc 即可一键启动 YOLO 模式 Claude Code

9.3、项目级配置(更稳)

mkdir -p ~/.claude
cat > ~/.claude/settings.json <<EOF
{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}
EOF

这样不管怎么启动,都是 YOLO 模式

9.4、折中方案:只放宽部分工具

如果觉得全开太危险,可以只让常用工具免问:

mkdir -p ~/.claude
cat > ~/.claude/settings.json <<EOF
{
  "permissions": {
    "allow": [
      "Bash(*)",
      "WebFetch(*)",
      "Read(*)",
      "Write(*)",
      "Edit(*)"
    ]
  }
}
EOF

十、实战:用 Claude Code 维护你的网站

到这里搭建已经完成。下面是几个实战场景,让你感受 Claude Code 的威力。

10.1、启动并进入项目目录

cd /root/data/docker_data/halo
cc

💡 一定要在项目目录里启动,不要在 /root 里启动。Claude Code 会自动读取当前目录作为工作空间。

10.2、常用任务示例

示例 1:让 Claude 帮你看博客的 Docker 配置有没有问题

进入 cc 后直接说:

帮我检查 docker-compose.yml,看密码、端口、卷挂载有没有安全风险

示例 2:让 Claude 排查为什么网站 502

nginx 反代 8090 端口的 Halo,浏览器访问报 502,帮我排查

它会自动跑 docker psdocker logscurl localhost:8090 等命令诊断

示例 3:让 Claude 写一个数据库定时备份脚本

给我的 halodb (MySQL 8.0) 写一个每天凌晨 3 点自动备份的 bash 脚本,保留最近 7 天

它会写好脚本 + 配好 crontab,全程不用你动手

示例 4:切到 Gemini 处理长文档

/model cpamc,gemini-3.1-pro-low
读取 /var/log/nginx/access.log,分析过去 7 天哪些 IP 在频繁扫描我的网站

Gemini 的 200 万 token 上下文适合处理大日志


十一、常见问题排错

11.1、ccr: command not found

npm 全局路径没在 PATH 里:

export PATH=$PATH:$(npm prefix -g)/bin

11.2、启动后顶部出现 ⚠ Auth conflict

环境变量没清干净,回到第六章再清一遍

11.3、401 Unauthorized

密钥错误。检查 ~/.claude-code-router/config.jsonapi_key 字段,和网关后台对一遍

11.4、404 Not Found

api_base_url 路径不对。常见错误是只写到 /v1,应该是 完整的 /v1/chat/completions

11.5、model not found502 unknown provider for model xxx

模型名拼错了。去网关后台「模型列表」页复制精确模型 ID

11.6、400 User location is not supported

调用的上游 API(典型如 Google Gemini Code Assist)拦截了请求来源 IP 地理位置。这是上游限制,跟 Claude Code 和 CCR 都无关。解决方法:

  • 换网关上游凭证
  • 换 VPS 节点到 Google 友好地区
  • 给 VPS 配住宅代理

11.7、/model 菜单看不到自定义模型

正常现象。新版 Claude Code 的 /model 菜单只显示 Anthropic 内置模型。自定义模型用 /model provider,模型名 直接输入切换,参考第八章

11.8、API 调用失败但 /model 菜单显示模型正常

/model 菜单显示什么不代表实际在用什么。CCR 完全劫持请求,按 Router 配置路由。要看真实模型可以问:

你是哪个模型?回答型号即可

十二、补充:CCR Web 面板(可选)

CCR 自带一个网页配置面板,可以图形化管理。

12.1、启动 UI
ccr ui

会监听 127.0.0.1:3456

12.2、本机通过 SSH 隧道访问

VPS 是远程的,本地浏览器访问不了 127.0.0.1。需要做 SSH 端口转发:

ssh -L 3456:127.0.0.1:3456 root@你的VPS_IP
12.3、浏览器打开
http://127.0.0.1:3456/ui

可以图形化切换路由、看请求日志、测试模型,比命令行直观


到这里所有配置就完成了。你的 VPS 现在拥有一个:

  • 可调用多家顶级 AI 模型(Claude Opus、Gemini Pro、GPT-5、Grok)
  • 一键启动免确认的开发助手
  • 能直接读写文件、执行命令、维护服务
  • 通过 CCR 智能路由(深度任务用 Opus,小活用 Haiku 省钱,长文用 Gemini)

的 AI 开发环境,从此搭建网站、写脚本、排查故障、写博客文章都可以让 AI 帮你干。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
广告 广告
广告 广告

评论区