深入 Claude Cowork 的技术实现细节,揭示其在 macOS 上高效运行开发环境的方案。对想理解新工具原理的程序员有参考价值。
本报告详细说明了 Claude AI 助手"Cowork 模式"的 Linux 容器环境。该环境是一个轻量级、高度沙箱化的 Ubuntu 22.04 LTS 虚拟机,运行于 ARM64 架构,设计用于在保持与主机系统严格隔离的同时,提供安全的代码执行能力。
发行版:Ubuntu 22.04.5 LTS (Jammy Jellyfish)
内核:Linux 6.8.0-90-generic (PREEMPT_DYNAMIC)
架构:aarch64 (ARM64)
ARM64 处理器包含硬件密码加速(AES、SHA1、SHA2、SHA3、SHA512)、原子操作、指针认证(PACA/PACG)和分支目标识别(BTI)等高级安全功能。
容器使用 Bubblewrap 作为其主要沙箱机制。关键隔离特性包括:
--unshare-net 创建独立的网络命名空间--unshare-pid 提供进程命名空间隔离该环境采用严格的 seccomp(安全计算模式)过滤:
位于 /usr/local/lib/node_modules_global/lib/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/arm64/unix-block.bpf 的自定义 BPF(伯克利包过滤)程序强制执行系统调用限制。
所有网络流量都通过本地隧道代理:
socat 进程通过 Unix socket 将流量转发到主机:
/tmp/claude-http-*.sock/tmp/claude-socks-*.sock/sessions/brave-loving-maxwell/
├── .bash_logout
├── .bashrc
├── .profile
├── mnt/
│ ├── .claude/ # Claude 配置
│ ├── .skills/ # 可用的技能模块
│ │ └── skills/
│ │ ├── algorithmic-art/
│ │ ├── canvas-design/
│ │ ├── docx/
│ │ ├── pdf/
│ │ ├── pptx/
│ │ ├── skill-creator/
│ │ └── xlsx/
│ ├── outputs/ # 用户可访问的输出目录
│ └── uploads/ # 用户文件上传目录
└── tmp/ # 临时文件
多个目录使用 bindfs 映射主机文件系统位置并控制权限:
/sessions/brave-loving-maxwell/mnt/.skills(可用 927G - 主机磁盘)/sessions/brave-loving-maxwell/mnt/outputs(用户工作区文件夹)/sessions/brave-loving-maxwell/mnt/uploads(上传的文件)/sessions/brave-loving-maxwell/mnt/.claude(配置)该环境包含大约 1,201 个包。关键开发工具包括:
注意:此环境中不提供 Go、Rust 和 Docker。
主 Claude 进程使用 claude-opus-4-5-20251101 模型运行,并可访问特定的允许工具:Task、Bash、Glob、Grep、Read、Edit、Write 等。
配置了两个 MCP 服务器:
用户名:brave-loving-maxwell
主目录:/sessions/brave-loving-maxwell
隔离特性:
┌─────────────────────────────────────────────────────────┐
│ Host System │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Bubblewrap Sandbox │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Ubuntu 22.04 VM │ │ │
│ │ │ ┌────────────────────────────────────────┐ │ │ │
│ │ │ │ Claude Code Agent │ │ │ │
│ │ │ │ - Opus 4.5 Model │ │ │ │
│ │ │ │ - Tool Access (Bash, Read, Write...) │ │ │ │
│ │ │ └────────────────────────────────────────┘ │ │ │
│ │ │ │ │ │ │
│ │ │ ┌─────────┐ ┌────┴────┐ ┌───────────┐ │ │ │
│ │ │ │ socat │ │ socat │ │ Session │ │ │ │
│ │ │ │ :3128 │ │ :1080 │ │ Storage │ │ │ │
│ │ │ └────┬────┘ └────┬────┘ └───────────┘ │ │ │
│ │ └───────┼─────────────┼───────────────────────┘ │ │
│ └──────────┼─────────────┼──────────────────────────┘ │
│ │ │ │
│ Unix Socket Unix Socket │
│ │ │ │
│ HTTP Proxy SOCKS Proxy │
└─────────────────────────────────────────────────────────┘
该容器环境代表了为 AI 辅助计算精心设计的沙箱。它在功能(完整的开发工具链、文件操作、网络访问)和安全性(严格隔离、权能删除、流量监控)之间取得了平衡。会话文件系统的短生命周期特性与持久工作区文件夹相结合,为最终用户提供了安全性和实用性。
该环境是为 Claude Code agent 特别优化的,提供了代码执行、文件创建和网络访问所需的工具,同时保持强大的隔离边界以保护用户的系统和更广泛的基础设施。