ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

我把 Claude Code 搬上了云:一台服务器搞定远程编程、多端备份和建站

2026/10/7 14:24:44 拓冰建站 浏览量
我把 Claude Code 搬上了云:一台服务器搞定远程编程、多端备份和建站 1. 为什么要把 Claude Code 搬到云服务器上Claude Code 是一个跑在终端里的 AI 编程助手能读写文件、执行命令、跑测试、做重构。它适合谁适合习惯命令行、想让 AI 直接操作项目文件的开发者。但它有个很现实的限制它跑在你的本地电脑上。你在家开着笔记本让它重构一个模块任务要跑十几分钟这时候你要出门吃饭、要睡觉、要通勤怎么办关电脑任务就断了不关电脑机器一直烤着夏天散热、噪音、电费都是问题。我试过最直接的解法就是把 Claude Code 放到一台 7×24 在线的云服务器上用 tmux 让会话脱离 SSH 连接独立存活用 Termius 在手机上随时接管再顺手用同一台机器托管一个静态站点。这样一台最低配的轻量服务器就能同时承担远程编程、多端备份和建站三件事。这里有个关键认知Claude Code 本身很轻。它本质上是一个 Node.js CLI 程序把你的指令打包发给模型 API再把返回结果渲染到终端真正的计算发生在远端服务器上你的机器只是一个遥控器加文件操作代理。所以 2 核 2G 的最低配服务器就完全够用一年不到一百块。下面我把整套流程拆成可复制的步骤配置命令可以直接抄。2. TaoToken 前置准备拿到 Base URL 和 API Key在动手配服务器之前先把模型接入这一环解决掉。Claude Code 默认要访问 Anthropic 官方接口国内服务器直连不通所以需要配置一个可用的 API 入口。这里我用 TaoToken 来做接入它提供兼容 Anthropic 协议的接口Claude Code 原生支持自定义 Base URL改两个环境变量就能接上。你需要准备两样东西一个 API Key一个 Base URL。获取方式很简单登录 TaoToken 官网进入控制台在 API Keys 页面创建一个新的密钥复制出来形如sk-xxxxx的字符串。Base URL 用https://taotoken.net/api即可注意这个地址后面不加任何多余路径Claude Code 会自己在后面拼接/v1/messages这类端点。如果你更习惯图形化验证模型是否通可以先用模型对话页面发一条测试消息确认 Key 有效、额度正常再去配服务器这样能少走一段弯路。对于长期要跑编码任务和 Agent 的场景可以了解一下 Coding Plan它更适合高频调用只是偶尔用用按量付费的 API Key 就够了。这里要强调一点API Key 等同于你的账户凭证绝对不能提交到 Git 仓库哪怕是私有仓库也不行。后面讲备份的时候我会专门说怎么用.gitignore把它挡在外面。拿到 Key 之后先放一边我们进入服务器配置环节。3. 可复制配置服务器环境、tmux 与 Docker 一次搭好这一节是全文的核心所有配置都可以直接复制。以 Ubuntu 22.04/24.04 为例假设你已经用云服务商的控制台创建好了一台轻量服务器拿到了公网 IP 和 root 初始密码。第一步先做安全加固因为服务器有公网 IP每天都会被扫描器爬。创建日常用户不要用 root 干活adduser jackson usermod -aG sudo jackson su - jackson mkdir -p ~/.ssh chmod 700 ~/.ssh nano ~/.ssh/authorized_keys # 粘贴 Termius 导出的公钥 chmod 600 ~/.ssh/authorized_keys然后编辑/etc/ssh/sshd_config改三项把Port改成 2222 挡掉大部分自动扫描把PasswordAuthentication设为no只认密钥把PermitRootLogin设为no禁止 root 直接登录。改完sudo systemctl restart sshd。注意改端口前一定要先在云服务商的安全组里放行 2222否则会把自己锁在门外。第二步装 Node.js 和 Claude Codecurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs npm install -g anthropic-ai/claude-code echo export ANTHROPIC_API_KEYsk-你的密钥 ~/.bashrc echo export ANTHROPIC_BASE_URLhttps://taotoken.net/api ~/.bashrc source ~/.bashrc第三步配 tmux针对手机操作优化。写入~/.tmux.confcat ~/.tmux.conf EOF set -g mouse on set -g history-limit 100000 set -g status-right %H:%M | #S set -g default-terminal screen-256color set -sg escape-time 10 EOFmouse on让 Termius 可以触摸滚动history-limit加大缓冲区方便回看 Claude 的长输出escape-time降低延迟提升手机端响应这几项实测体验提升明显。第四步如果你还要建站用 Docker 做隔离。先装 Dockercurl -fsSL https://get.docker.com | sh sudo usermod -aG docker jackson然后在~/website/docker-compose.yml里写服务定义version: 3.8 services: nginx: image: nginx:alpine ports: - 80:80 - 443:443 volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./certbot/www:/var/www/certbot - ./certbot/conf:/etc/letsencrypt restart: always website: image: halohub/halo:2 ports: - 127.0.0.1:8090:8090 volumes: - ./halo-data:/root/.halo2 restart: always注意127.0.0.1:8090:8090这个写法应用容器只监听本地回环公网流量必须经过 Nginx 反代这是一个很容易忽略但很重要的安全细节。启动用docker compose up -d查看状态docker compose ps看日志docker compose logs -f停止docker compose down四个命令覆盖九成场景。4. 验证请求从本地到云端的完整跑通步骤配置写完必须验证不然你不知道哪一环断了。先验证 Claude Code 能不能正常调用模型。SSH 进服务器新建一个 tmux 会话tmux new -s claude claude第一次运行会引导你确认一些设置进去之后随便问一句帮我看看当前目录有哪些文件如果它能正常返回并调用工具说明 API 通路是通的。如果卡住或报错先看下一节的排查。接着验证 tmux 的会话保持。在 Claude 正在跑一个任务的时候按CtrlB然后按D这会分离会话你会回到普通 shell。这时候直接关掉 Termius甚至关掉手机屏幕。等几分钟重新连上服务器执行tmux attach -t claude你会看到 Claude 的输出历史都还在任务也没中断。这就是 tmux 的核心价值分离不是退出任务在服务器上继续跑。再验证 Docker 建站。浏览器访问服务器公网 IP如果看到 Nginx 默认页或你的站点说明容器起来了。用docker compose ps确认容器状态是Up用curl -I http://127.0.0.1:8090确认应用容器本地可达。最后验证备份链路。在项目目录里执行一次手动备份脚本确认 GitHub 和 Gitee 两个远程都推送成功然后去两个平台的网页上看最新提交时间是不是刚刚。这一步很多人配完就不管了结果真出事的时候发现 crontab 根本没跑所以一定要当场验证一次。5. 本篇常见错误排查401、local proxy failed 与 OAuth 报错配这套环境最容易撞的几个报错我按真实遇到的整理一下。401 Unauthorized最常见基本是 API Key 错了或者没生效。先确认echo $ANTHROPIC_API_KEY能打印出正确的 Key如果为空说明.bashrc没 source 或者写错了行。再确认 Key 本身没过期、额度没耗尽可以去模型对话页面发一条消息验证。还有一种情况是 Base URL 写错了比如多加了/v1导致路径重复正确写法就是https://taotoken.net/api。local proxy failed / connection refused这个通常出现在你配了本地代理但服务器上并没有代理服务。Claude Code 会读取HTTP_PROXY、HTTPS_PROXY这类环境变量如果.bashrc里残留了本地代理配置服务器上就会连不上。检查env | grep -i proxy把不需要的清掉。reading choices 相关报错这类多半是返回体格式不符合预期常见于 Base URL 指向了一个不兼容 Anthropic 协议的端点。确认你用的是兼容 Anthropic Messages API 的地址而不是 OpenAI 格式的地址两者请求体结构不同。OAuth 相关报错如果你之前用过 Claude 的 OAuth 登录方式环境变量和登录态可能冲突。清掉旧的凭据缓存统一用 API Key 方式接入避免两套认证打架。SSH 连不上先确认安全组放行了你改的端口再确认sshd服务在跑。如果真锁在外面了去云服务商控制台用 VNC 登录救回来。排查的通用思路是分层先确认网络通不通curl测 Base URL再确认认证对不对Key 是否有效最后确认协议兼不兼容返回体格式。一层层往下排比瞎改配置快得多。6. 多端备份、成本核算与最终配置清单数据全放云服务器上有风险服务器被删、账号异常、忘记续费都可能让数据没了所以备份必须做而且要多端。我的架构是四份数据服务器本体、GitHub 私有仓库、Gitee 私有仓库、家里电脑本地副本。两个代码平台分属不同网络环境双份才叫冗余。配置双远程推送git remote add github gitgithub.com:你的用户名/项目名.git git remote add gitee gitgitee.com:你的用户名/项目名.git写一个备份脚本~/bin/git-backup.sh有变更就自动提交并推送到两个远程然后用 crontab 每天凌晨三点自动跑。.gitignore里必须加上.env、.env.*、.claude/这些把 API Key 挡在仓库外面。成本上算笔账国内轻量服务器首年 50 到 99 元Termius 免费版够用API 按实际用量。对比家里电脑 24 小时开机一台中端台式机满载 150W一年电费六七百还没算空调降温和硬件损耗。云服务器不是更贵是更便宜。最终推荐配置腾讯云或阿里云轻量就近节点2 核 4G / 60GUbuntu 24.04 LTSAPI 通路用 TaoToken 接入会话管理 tmux 加定制配置手机端 Termius 加 Snippets 快捷命令备份用 Git 双远程加本地 rsync 加 crontab建站用 Docker 加 docker-compose宿主机保持纯净大文件走对象存储。几个容易踩的坑再提醒一遍改 SSH 端口前先放行防火墙API Key 千万别进 Git轻量服务器只能升配不能降配所以初始买最低配CtrlB然后D是分离不是退出容器端口绑127.0.0.1备份要定期验证。整套方案折腾下来最大的感受是 Claude Code 这类 CLI Agent 天生适合云端部署它足够轻真正的算力在远端它是纯终端的SSH 就够它的任务往往长时间跑正好配 tmux。这三个特性凑在一起云服务器加 tmux 加手机 SSH 就成了几乎最优解。工具本身不复杂难的是想清楚每一层在解决什么问题。需要接入的话API Key 在控制台的 API Keys 页面创建接入细节可以对照接入文档验证模型是否通可以用模型对话页面长期跑编码任务可以看 Coding Plan。