文档索引
在此获取完整文档索引:https://code.claude.com/docs/llms.txt 使用此文件发现所有可用页面,然后再进一步探索。
选择沙箱环境
比较 Claude Code 沙箱选项:内置的沙箱化 Bash 工具、沙箱运行时、dev container、Docker 和 VM。为你的威胁模型选择合适的隔离方案。
隔离 Claude Code 可以限制会话在网络上读取、写和访问的内容。当你让 Claude 以更少的权限提示工作、无人值守运行或指向你不完全信任的代码时,这一点最为重要。
Claude Code 可以在多种隔离环境中运行,从轻量级的按命令沙箱到完全独立的虚拟机。本页面介绍如何:
比较沙箱方法
下表中的前两种方法在主机操作系统上运行,不使用容器。其余方法将 Claude Code 放置在容器或虚拟机中。
| 方法 | 隔离内容 | 需要 Docker | 设置工作量 |
|---|---|---|---|
| 沙箱化 Bash 工具 | Bash 命令及其子进程 | 否 | macOS 最低;Linux 和 WSL2 较低 |
| 沙箱运行时 | 整个 Claude Code 进程,包括文件工具、MCP 服务器和钩子 | 否 | 低 |
| Dev container | 完整开发环境 | 是 | 中等 |
| 自定义容器 | 完整开发环境 | 是 | 中等到高 |
| 虚拟机 | 完整操作系统 | 否 | 高 |
| Web 上的 Claude Code | 完整操作系统,由 Anthropic 托管 | 否 | 无;需要 Claude 订阅和 GitHub |
沙箱化 Bash 工具内置于 Claude Code 中,仅限制 Bash 命令。内置文件工具、MCP 服务器和钩子仍然直接在你的主机上运行。表中的其他方法都将整个 Claude Code 进程放在隔离边界内,因此文件工具、MCP 服务器和钩子也会受到限制。
选择方法
将你的目标与下面的行匹配,然后阅读后续的详细部分。
| 你想要 | 从这里开始 |
|---|---|
| 在日常工作中减少你机器上的权限提示 | 沙箱化 Bash 工具,使用 /sandbox 启用 |
让 Claude 使用 --dangerously-skip-permissions 或自动模式无人值守工作 | 预配置的 dev container、任何容器或 VM,或沙箱运行时 |
| 隔离 MCP 服务器和钩子以及 Bash,无需 Docker | 沙箱运行时 |
| 处理不受信任的仓库 | 专用虚拟机,或如果你有 Claude 订阅和已连接的 GitHub 账户则使用 Web 上的 Claude Code |
| 跨团队标准化沙箱化环境 | 预配置的 dev container,复制到你的仓库中 |
| 从没有本地设置的设备使用 Claude Code | Web 上的 Claude Code,需要 Claude 订阅和已连接的 GitHub 账户 |
| 要求组织中每位开发者都使用隔离 | 跨组织强制隔离 |
| 在原生 Windows 主机上工作 | 容器或 VM,或在 WSL2 内运行 Bash 沙箱 |
隔离与权限模式的关系
权限模式决定工具调用是否运行以及是否先提示你。隔离限制命令运行后可以访问的内容。两者协同工作:当权限模式允许操作无需询问你即可运行时,隔离边界限制这些操作可以触及的范围。
--dangerously-skip-permissions 完全移除了逐操作审查,因此隔离边界是限制 Claude 行为的唯一因素。始终在容器、VM 或沙箱运行时内运行它,这样文件工具、MCP 服务器和钩子也在边界内。
自动模式用分类器替换提示,该分类器审查操作并阻止那些升级超出请求、目标未识别基础设施或看起来由 Claude 读取的敌意内容驱动的操作。分类器是逐操作控制,不是隔离边界,因此隔离边界仍然为无人值守运行增加纵深防御,而不像 --dangerously-skip-permissions 那样是必需的。
沙箱化 Bash 工具本身仅约束 Bash,因此对于两种模式的完全无人值守运行都不够。你可以叠加方法:在容器或 VM 内运行沙箱化 Bash 工具,在外部环境边界之上给你操作系统级的命令限制。有关 Bash 沙箱本身如何与权限规则和模式交互,请参阅沙箱化与权限和权限模式的关系。
沙箱化 Bash 工具
此选项不支持原生 Windows。在 Windows 主机上,请使用 WSL2 或以下容器或 VM 方法之一。
沙箱化 Bash 工具内置于 Claude Code 中。它使用操作系统原语来限制 Claude 运行的每个 Bash 命令的文件系统和网络访问:macOS 上的 Seatbelt(内置 macOS 沙箱)以及 Linux 和 WSL2 上的 bubblewrap。默认情况下,它允许写入工作目录,并在命令首次需要新网络域时提示。
使用 /sandbox 命令启用它。沙箱化指南涵盖批准模式、默认边界以及如何扩大或缩小它。
按命令沙箱不覆盖会话中运行的所有内容:
- 其他内置工具(如 Read、Edit 和 WebFetch)在 Claude Code 进程内运行,不会生成任意代码。权限规则通过路径或域来控制它们。
- MCP 服务器和钩子是在主机上不受约束运行的独立进程。
要将内置工具、MCP 服务器和钩子全部放在一个操作系统边界后面,请在沙箱运行时、dev container或自定义容器内运行整个 Claude Code 进程。
沙箱运行时
@anthropic-ai/sandbox-runtime 包将整个进程包装在与内置 Bash 沙箱相同的 Seatbelt 或 bubblewrap 隔离中。通过它运行 Claude Code 可以约束会话中的每个工具、钩子和 MCP 服务器,而不仅仅是 Bash。该运行时是测试版研究预览,其配置格式可能随包的演进而变化。
该运行时默认拒绝所有写入和网络访问,因此在通过它启动 Claude Code 之前需要配置。在 ~/.srt-settings.json 中,或你通过 --settings 传递的文件中,至少允许对你的项目目录和 Claude Code 的配置路径 ~/.claude 和 ~/.claude.json 的写入访问。允许你的会话需要的网络域,包括 api.anthropic.com 或你配置的提供商端点。有关完整配置架构,请参阅包的 README。
设置文件就位后,使用 npx 启动 Claude Code 并将 claude 作为要包装的命令传递:
npx @anthropic-ai/sandbox-runtime claude
Claude Code 在沙箱中启动,带有你配置的文件系统和网络边界。同样的命令也适用于沙箱化独立的 MCP 服务器或其他辅助进程。
Dev container
Dev container 在 VS Code 或兼容编辑器管理的 Docker 容器中运行 Claude Code,你的项目被挂载在其中。你可以在仓库中使用 .devcontainer/ 目录定义自己的。
claude-code 仓库发布了一个示例 dev container,带有默认拒绝的 iptables 防火墙作为起点。将其复制到你的仓库中,并调整防火墙允许列表、基础镜像和固定的 Claude Code 版本以适应你的环境。因为防火墙阻止未批准的出口,这样的配置支持使用 --dangerously-skip-permissions 进行无人值守工作。
自定义容器
你可以在任何 Docker 或 OCI 容器镜像中运行 Claude Code,使用你自己的网络策略、挂载卷和 seccomp 配置文件。这是拥有现有容器基础设施或 CI 运行器的组织最常见的路径。
几个托管沙箱和远程执行服务可以为你托管容器。与你操作的任何容器相同的检查清单适用:审查哪些内容以可写方式挂载、哪些凭据和令牌在容器内可访问,以及网络出口策略允许什么。
你可以在容器内叠加内置 Bash 沙箱以实现按命令限制。非特权容器需要沙箱化故障排除中描述的嵌套沙箱设置。
虚拟机
专用虚拟机提供最强的隔离,拥有自己的内核,在云或微 VM 部署中拥有自己的虚拟化硬件。选项包括云实例、本地虚拟机管理程序和 Firecracker 等微 VM。
当你评估不受信任的代码时、当你的安全策略要求智能体和主机之间有内核级隔离时,或当没有主机级方法满足你的合规要求时,请使用此方法。Docker Desktop 的沙箱功能提供一个拥有自己的 Docker 守护进程和工作区同步的微 VM,可以在已有 Docker Desktop 的主机上运行 Claude Code。
Web 上的 Claude Code
Web 上的 Claude Code 在 Anthropic 管理的隔离虚拟机中运行每个会话。网络代理强制执行默认允许列表,单独的代理在沙箱外持有你的 GitHub 令牌,同时在沙箱内发放用于仓库访问的范围凭据。
当你想要完全 VM 隔离而无需自己配置基础设施时,或当你从没有本地开发环境的设备委派任务时,请使用此方法。它需要 Claude 订阅和已连接的 GitHub 账户,会话从 GitHub 克隆你的仓库。有关计划可用性和 GitHub 认证选项,请参阅 Web 上的 Claude Code。
跨组织强制隔离
个人开发者可以选择上述任何方法。组织可以强制执行什么以及使用哪些工具,取决于该方法:
- 内置 Bash 沙箱:Claude Code 自身强制执行的唯一方法。通过托管设置交付
sandbox设置键,可以是 MDM 管理的文件,也可以通过 Claude.ai 上的服务器托管设置。有关要部署的键以及如何防止开发者扩大策略,请参阅使用托管设置强制沙箱化。 - Dev container:将示例 dev container 提交到你的仓库以跨团队标准化环境。这是一种约定而非强制边界,因为 Claude Code 不要求容器。如果开发者不应在其外部运行 Claude Code,请使用组织的设备管理或软件允许列表工具强制执行。
- 自定义容器和 VM:通过批准的镜像分发 Claude Code,并使用组织的设备管理或软件允许列表工具防止在其外部安装。
另请参阅
这些页面涵盖上述方法的配置和策略详情。
- 沙箱化:配置内置的沙箱化 Bash 工具
- Dev container:预配置的 Docker 开发容器
- 安全:完整的 Claude Code 安全模型
- 安全部署:Agent SDK 应用的隔离指导
- 设置:所有沙箱配置键,包括托管设置交付