基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
  • 知识卡片碎片时间过考点
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
    • AI 热点每日 AI 资讯与动向
AI 工作台
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
7.0
热点
AI SCORE
工具产品2026-01-14 15:21

Claude Cowork 技术拆解:用 Apple 虚拟化框架运行 Linux 虚拟机

Hacker News · gist.github.com#Claude Cowork#虚拟化
Editor brief · 编辑速览

深入 Claude Cowork 的技术实现细节,揭示其在 macOS 上高效运行开发环境的方案。对想理解新工具原理的程序员有参考价值。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

环境概述

本报告详细说明了 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 (bwrap) 隔离

容器使用 Bubblewrap 作为其主要沙箱机制。关键隔离特性包括:

  • 网络隔离:--unshare-net 创建独立的网络命名空间
  • 进程隔离:--unshare-pid 提供进程命名空间隔离
  • 随父进程关闭:父进程退出时容器自动终止
  • 新会话:防止终端劫持攻击

Seccomp 过滤

该环境采用严格的 seccomp(安全计算模式)过滤:

  • Seccomp 模式:2(过滤模式)
  • 活跃过滤器:应用了 2 个 seccomp 过滤器
  • NoNewPrivs:启用(防止权限提升)
  • Capabilities:所有权能已删除(CapEff = 0)

位于 /usr/local/lib/node_modules_global/lib/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/arm64/unix-block.bpf 的自定义 BPF(伯克利包过滤)程序强制执行系统调用限制。

网络代理架构

所有网络流量都通过本地隧道代理:

socat 进程通过 Unix socket 将流量转发到主机:

  • HTTP:/tmp/claude-http-*.sock
  • SOCKS:/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 个包。关键开发工具包括:

  • core20(版本 2683、2690)
  • snapd(版本 25585、25939)

注意:此环境中不提供 Go、Rust 和 Docker。

主 Claude 进程使用 claude-opus-4-5-20251101 模型运行,并可访问特定的允许工具:Task、Bash、Glob、Grep、Read、Edit、Write 等。

MCP(模型上下文协议)服务器

配置了两个 MCP 服务器:

  • Claude in Chrome - 浏览器自动化能力
  • b89c1e3a-f5c6-4dec-9d8a-0b3db0a78353 - Cloudflare 集成

用户权限与隔离

用户名:brave-loving-maxwell

主目录:/sessions/brave-loving-maxwell

隔离特性:

  • 用户以零权能运行
  • NoNewPrivs 标志防止权限提升
  • Seccomp 过滤器限制可用的系统调用
  • 网络访问仅通过受控代理
  • 多层隔离:结合了命名空间隔离、seccomp 过滤和权能删除
  • 网络控制:所有流量都经过代理并可监控
  • 短生命周期会话:除工作区文件夹外,文件系统在任务间重置
  • 无 root 访问权:用户没有提升的权限
  • 随父进程关闭:确保会话终止时的清理

隔离架构图

┌─────────────────────────────────────────────────────────┐
│                     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 特别优化的,提供了代码执行、文件创建和网络访问所需的工具,同时保持强大的隔离边界以保护用户的系统和更广泛的基础设施。

Original source

本文由 AI 翻译整理,来源 Hacker News · gist.github.com,原文版权归原作者所有。

阅读原文
上一篇
Webctl:CLI 优先的浏览器自动化,可用于 AI Agent 开发
下一篇
Claude Cowork 初体验:Anthropic 的协作 AI 工作环境评测

资讯速览

Hacker News · gist.github.com · 2026-01-14 15:21

AI 评分 7.0 / 10

相关标签

#Claude Cowork#虚拟化

继续阅读

  • Claude 擅长拼接代码块,创造新架构时容易崩溃
  • Webctl:CLI 优先的浏览器自动化,可用于 AI Agent 开发
  • Claude Cowork 初体验:Anthropic 的协作 AI 工作环境评测
  • 开源 AI Agent 项目:大规模数据索引与搜索实现案例
  • LLM 盲目信仰的危害:对不切实际期待的批评