Claude Max 单服务器
安全运行手册
服务商负责首次安装、进程保活、线路切换与故障恢复;账号本人只在首次或登录过期时完成 Anthropic 官方授权。日常用户只聊天,不需要进入模型设置。
一、先确认:什么情况下才能走 Max 客户端
下面四条要同时满足,少一条就改用 Claude 官方 API。
Claude Max 账号、邮箱、二次验证和付款方式都属于实际使用者本人。
VPS 是本人租用并控制;服务商不能保存、复制或代管 Claude 登录凭据。
只让账号本人使用,不向其他顾客、家庭成员、团队成员或机器人池开放。
账号本人和实际使用均应符合 Anthropic 支持地区政策;VPS 在新加坡不能替代这一条件。
官方边界:Pro/Max OAuth 用于订阅者正常使用 Claude Code;开发者构建产品或代表用户路由请求应使用 API Key。详见 Claude Code Legal and compliance、Consumer Terms 和 Supported countries。
二、推荐结构:凭据与聊天数据分层
Claude 登录只存在 Claude Code 的专用 Linux 用户目录;PWA、relay 和运营后台都不接触它。
不保存 Claude 凭据
唯一连接密钥
游标补收断线消息
Max 套餐推理
/app/tts 固定调用 MiniMax TTS。MiniMax 凭据和音色由服务商单独初始化,用户日常不用操作。三、首次安装:服务商主操作,用户只做一次官方授权
除 Anthropic 账号登录和二次验证外,安装、配置、启动、验收都由服务商完成。用户不接触 TidalEcho 设置页。
/opt/tidal/customers/<客户ID>。命令中的尖括号是待替换文字,不是终端变量;粘贴后先改成真实值再回车。demo001 是测试客户 ID;ubuntu 是运营商 SSH 进入客户所提供服务器时的用户;claude-max 是服务器内部运行 Claude Code 的专用 Linux 用户。它们都不是客户的 Claude 邮箱。ssh 在运营商自己的电脑终端输入;看到 ubuntu@...:~$ 后,sudo 和 systemctl 才在客户服务器输入;claude auth login 在 claude-max@...$ 的服务器终端输入;启动 claude 后,/status、/mcp 才输入 Claude Code 界面;最终切换按钮在运营商私有后台点击。RELAY_ALLOW_DESKTOP_BRAIN=1 到底是什么:它只是客户 relay 的 Max 安全许可开关。0 表示无论谁连上 Channel 都不准接管;改成 1 后,也只是允许运营后台在客户端在线时切换。它不会安装、登录、连接或自动切换模型。在运营商 Mac 的“终端”运行 /Users/shibeibei/GetRich/TidalEcho/biz-kit/server/mac-开单一条龙.sh。只有出现“✅ 一条龙完成”后,才继续 Max。
ssh -i "/Users/shibeibei/GetRich/服务器信息/<客户ID>.pem" ubuntu@<客户服务器IP>
复制后把两个尖括号占位符换成真实值。看到 ubuntu@...:~$ 才是客户服务器窗口。
sudo bash ~/deploy/bizkit/prepare-claude-max.sh demo001
把 demo001 换成真实客户 ID。脚本自动创建专用用户、安装 Claude Code 与 Bun、写 Channel/MCP/最小权限配置,并安装三个操作命令;不用手写 JSON,也不接收客户密码。
sudo tidal-claude-login
这条命令在客户自己的服务器浏览器 SSH 中运行。客户本人按官方页面完成账号、二次验证和一次性 code;服务商不代填、不保存。
# 稳妥:跟随 Max 套餐当前默认 sudo tidal-claude-model default # 需要固定 4.8,且该账号确实可用时 sudo tidal-claude-model claude-opus-4-8
若 4.8 未对该账号开放,立即运行 sudo tidal-claude-model default。Claude Code 的可用模型与套餐、客户端版本有关,不能靠脚本绕过。
sudo tidal-claude-start start sudo tidal-claude-start status
脚本自动创建或恢复 tidal-companion 会话并确认开发 Channel。只有状态中 plugin_subs 为 1 以上,才回私有运营后台切到 Claude Max。需要人工查看时运行 sudo tidal-claude-start attach。
最小权限建议
为 Companion 使用独立工作目录,并在该目录的 .claude/settings.local.json 使用 dontAsk,只预批准 mcp__companion__reply、call、react。不要用 --dangerously-skip-permissions 给聊天消息完整服务器控制权。权限规则以 Claude Code permissions 为准。
四、“聊天不断”的五层恢复
不是假装永不出错,而是每层出错后都有明确的续接点。
| 层 | 保存什么 | 发生故障后 |
|---|---|---|
| relay 数据库 | 聊天记录、角色、媒体、消息 ID | 模型进程重启不影响用户看到的历史。 |
| Channel 游标 | last_in_id | SSE 自动重连,用 ?since=游标 补收断线消息,避免漏消息或重复回复。 |
| Claude 会话 | 本地 transcript 和上下文 | 总从固定目录执行 claude --resume tidal-companion,恢复原会话而不是创建新人格。 |
| 进程看护 | 运行状态与日志 | 用用户级 systemd、tmux 或受控 expect 包装;异常退出后恢复同名会话并重新确认开发 Channel。 |
| API 备用 | 独立 API Key、最近 N 条 relay 历史 | Max 限额、登录失效或 Channel 兼容故障时,由服务商从运营后台切到 API,继续同一聊天记录。 |
常驻启动命令
sudo tidal-claude-start start sudo tidal-claude-start status
官方说明 Channels 只有在会话打开时才收事件,所以必须运行在持续终端或后台进程中;重启时仍需再次带上 Channel flag。会话恢复规则见 Manage sessions,Channels 状态见 Channels。
五、Max 用完或失效:走合法后路,不轮换账号
备用线路的目的是恢复服务,不是绕开 Max 的用量或执行措施。
| 情况 | 正确处理 | 不要做 |
|---|---|---|
| Max 到达用量上限 | 等待重置、本人决定是否启用官方 usage credits;需保持回复时由服务商切到已授权 API。 | 让用户进设置页、换另一个消费账号、共享账号池、伪造新设备。 |
| OAuth 将过期 | 看到启动提醒后由本人提前运行 /login;用 /status 复核。 | 让服务商索取 token 或复制 .credentials.json。 |
| 401 / Login expired | 服务商先切 API 保持可回复;账号本人只完成官方重新登录;服务商验收 Channel 后切回。 | 把 Cookie、回调 URL 或二维码贴到运营后台。 |
| 账号被限制 | 立即停止 Max 线路、保留本地聊天、联系 Anthropic Support;需要服务时使用本人合法 API。 | 自动切其他 Max 账号规避限制。 |
| Channels 升级不兼容 | 固定到已验证版本或修复插件;期间使用 API。 | 反复重试造成重复消息或双模型同时回复。 |
Max 的 Claude、Claude Code 等产品面共享用量;可通过 /status 或 /usage 查看。官方处理选项见 Use Claude Code with Pro or Max。
六、降低风控的日常规则
- 一个账号只给本人使用,不向多用户扇出。
- 只使用官方 Claude Code 登录,不抓包 Claude.ai。
- 不设置代理 Base URL,不伪造客户端和设备信息。
- 不用脚本批量创建、切换或养消费账号。
- 服务商不保存密码、Cookie、OAuth token 或登录二维码。
- 每周执行
/status,确认账号与计费方式。 - 每月执行
claude doctor并检查 Channel 日志。 - 收到登录到期提醒后由本人提前续登。
- 长会话用
/compact,不要靠重复重发全部历史耗额度。 - 升级前先保留 API 备用,再验证 Channel 兼容性。
- relay、Claude transcript、媒体分别做加密备份。
- 退款或停用时关闭 relay 门禁,不删除用户应保留的数据。
七、排障顺序
按顺序排,避免同时重启多个组件造成重复回复。
| 现象 | 检查 | 恢复 |
|---|---|---|
| 手机消息发出,无回复 | /relay/healthz、Claude 进程、Channel 日志、plugin_subs | 先保持单线路,再恢复 Claude 会话或临时切 API。 |
| 运营后台显示 Max 未连接 | Claude 是否从固定目录带开发 Channel flag 启动,/mcp 是否连接 | 服务商恢复同名会话,重新确认开发 Channel,等待日志出现 stream connected。 |
| 突然变成 API 计费 | /status 和 env | grep ANTHROPIC | 移除 API 环境变量,重启终端,重新 /login。 |
| 重启后像失忆 | 启动目录、会话名、是否误用了新会话 | 回固定目录执行 claude --resume tidal-companion。 |
| 收到两份回复 | Max Channel 和 API loop 是否同时消费同一消息 | 服务商立即停一个,只保留运营后台当前启用的线路。 |
| 登录失效 | /status 的 Login 行 | 本人运行 /login;服务商不能代办。 |
交付前验收
- Max 账号本人完成登录,服务商从未接触凭据。
/status显示 Max 订阅而非环境变量 API Key。- 手机发一条,只收到一条回复。
- 断网 30 秒再恢复,消息不会丢失或重复。
- 杀掉 Claude 进程后恢复同名会话,聊天继续。
- API 备用可由服务商从私有运营后台切换,且用户端无需操作、聊天历史连续。
官方资料
- Claude Code Legal and compliance:OAuth、个人使用和第三方产品边界。
- Authentication:登录、凭据存储、优先级和到期提醒。
- Channels 与 Channels reference:长期会话与研究预览限制。
- Manage sessions:
--resume、本地 transcript 与上下文续接。 - API key environment variables:为什么 Max 进程要清空 API Key 环境变量。
- Consumer Terms 与 Supported countries:账号共享、自动化、终止和地区要求。