进阶 📋 6 个步骤 第 293 / 470 篇

Claude Code 自托管 Runner:企业私有 VPC 里跑云端 Agent,敏感代码不出内网

8-12 起 Anthropic 公测 Claude Code Self-Hosted Runners:云端发起的 Agent 会话直接下发到企业私有 VPC 中常驻 Runner 执行,配合 80 秒优雅停机,源码与凭证彻底留在内网。本教程带你完成部署、路由、安全与运维全流程。

2026.08.19· 15 分钟阅读· 约 1519 字· 🏢 Claude Code Runner

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 + 全量审计日志
← 返回教程中心