8 月 12 日起,Anthropic 面向 Team 与 Enterprise 客户公测 Claude Code Self-Hosted Runners(自托管运行节点):云端发起的 Agent 会话可以直接下发到企业私有 VPC(AWS EC2、K8s Pod 或 Docker 容器)中的常驻 Runner 进程执行。Runner 自动拉取队列任务并运行 Claude Code,配合 80 秒优雅停机机制,让敏感源码与凭证彻底留在企业内网。
🧩 本教程适合:有合规要求的企业团队、想控数据主权又想要云端 Agent 能力的开发者。你将完成 Runner 的部署、会话路由、安全加固与运维监控,建立「云端大脑 + 内网手脚」的混合架构。
先搞懂:为什么要自托管 Runner
默认的 Claude Code 是「云上跑任务」:代码、配置、凭证都要经过云端处理。对金融、医疗、政企等场景,这可能是硬伤。Self-Hosted Runner 的思路是:决策在云端,执行在本地——你的敏感资产不出内网,同时保留云端会话编排、多设备接入的便利。
| 对比项 | 云端默认执行 | 自托管 Runner |
|---|---|---|
| 代码与凭证位置 | 云端环境 | 企业私有 VPC 内 |
| 谁执行任务 | Anthropic 托管环境 | 你控制的常驻进程 |
| 适用场景 | 个人 / 非敏感项目 | 合规敏感 / 监管要求 |
| 部署成本 | 零 | 自备算力与运维 |
自托管 ≠ 完全离线:Runner 仍需与云端控制面通信拉取任务,只是任务执行环境在你内网。若要求完全离线,可参考本中心《OpenWorker 本地优先桌面 Agent》路线。
Step 1:确认前置条件与开通权限
1 先检查你的席位与网络
1. 订阅:需要 Team 或 Enterprise 方案
2. 版本:Claude Code v2.1.224+ 支持 Self-Hosted Runners
3. 网络:Runner 机器需能访问 Anthropic 控制面(HTTPS 出站)
4. 算力:按并发任务数预留 CPU/内存(先小后大)
5. 开通:在 Claude Code 控制台申请开启 Runner 公测功能
💡 建议先在 1 台开发机跑通「云端会话 → 本地执行」全链路,验证可行后再上生产。
Step 2:在企业 VPC 部署常驻 Runner
2 三种落点,按你的基础设施选
方案 A:AWS EC2
→ 起一台专用实例,装好 Claude Code 与 Runner 服务
方案 B:Kubernetes Pod
→ 用 Deployment + HPA 弹性伸缩,适合已有 K8s 集群
方案 C:Docker 容器
→ 单机快速起,docker run 一行命令挂常驻进程
部署要点:
1. Runner 常驻:以 systemd / supervisor / k8s 守护,崩溃自拉起
2. 拉取队列:Runner 启动后自动从云端队列拉任务
3. 子进程运行:任务以 Claude Code 子进程方式执行
4. 日志落盘:任务日志统一采集,便于审计
别把 Runner 放在共享开发机上:它运行 Agent 任务可能产生任意文件操作,最好用专用实例 + 快照备份,出问题可秒级回滚。
Step 3:把云端会话路由到私有 Runner
3 让「云端发起」指向「内网执行」
1. 在 Claude Code 中配置 Runner 目标(组织级 / 项目级均可)
2. 指定仓库或项目绑定到你的 Runner 组
3. 从任意端发起会话:网页 / 手机 / 桌面端都行
4. 验证路由:任务日志中应显示 Runner 主机名而非云端环境
5. 切回云端:不需要时可一键恢复默认执行路径
小技巧:给不同团队建不同 Runner 组,
研发组 / 安全组 / 数据组各用各的内网资源
🚀 结合本中心《Claude Code 自动模式》:Runner + 自动模式 = 内网里的「自主工程师」,记得配好权限边界再放开。
Step 4:用好 80 秒优雅停机
4 任务生命周期管理
1. 优雅停机:容器 / 实例收到停止信号后,给 80 秒收尾
2. 收尾动作:提交中间产物、写检查点、保存日志
3. 未完成任务:进入重试队列,由其他 Runner 接管
4. 定期滚动:发版 / 换配置时用优雅停机滚动更新
示例:kubectl rollout restart 时,Pod 优雅退出
不丢任务,是生产可用的关键
别用 kill -9 硬杀 Runner:会丢失任务状态与中间产物。所有下线操作走优雅停机通道。
Step 5:安全与权限加固
5 内网不等于安全,四件套安排上
1. 最小权限 IAM:Runner 实例只给任务需要的云权限
2. 网络隔离:Runner 在私有子网,仅放行必要出站
3. 凭证管理:用 Vault / 云 KMS 注入密钥,不写死进镜像
4. 审计日志:任务操作全量留痕,与 SIEM 对接
纵深防御:云端有安全扫描,本地也要有——
Runner 机器本身定期补丁 + 镜像扫描
🔑 凭证安全思路可交叉参考《Claude Code 沙箱凭证脱敏》:云端 + 本地的凭证防护形成闭环。
Step 6:成本与运维监控
6 让 Runner 长期稳定跑下去
1. 指标监控:CPU / 内存 / 任务队列深度 / 成功率
2. 告警:Runner 失联、队列堆积、失败率超阈值即报警
3. 成本核算:按 Runner 组分摊算力成本,纳入 Agent 账单
4. 容量规划:任务增长时扩容 Runner,闲时缩容
5. 灰度发布:新策略先在低风险仓库试点再全量
落地参考:把 Runner 的资源消耗计入
《Agent 经济学》的单位成本核算里
🎉 至此你拥有了一套「数据不出门、Agent 随便跑」的企业级底座。想系统评估风险,可结合《Anthropic CISO 四问法》做一次体检。
常见问题速查
| 你遇到的现象 | 大概率原因 & 解决 |
|---|---|
| 会话仍在云端执行 | 路由未绑定:检查项目是否绑定到你的 Runner 组 |
| Runner 拉不到任务 | 出站网络被拦:确认可访问 Anthropic 控制面 |
| 任务中途丢失 | 硬杀进程:改用优雅停机通道,任务会自动重试 |
| 担心凭证泄露 | Vault/KMS 注入 + 最小 IAM + 全量审计日志 |