Claude Code沙箱怎么开启?sandbox设置、验证与命令失败排查
在支持系统开启命令沙箱,检查依赖和实际隔离状态;区分Shell与文件工具、MCP的边界,按最小范…
文章目录
Claude Code运行命令时,沙箱可由操作系统限制文件和网络访问,但它并不把所有工具一起包住。官方当前支持macOS、Linux和WSL2,原生Windows命令不受这套沙箱保护。本文在练习项目中开启、验证并检查失败原因,不把少弹确认框或一条命令成功当作所有操作已经隔离。

第一步:确认系统和实际保护范围
沙箱默认关闭,覆盖Bash、PowerShell、Monitor命令及其启动的进程;内置Read、Edit、Write、WebFetch等工具依各自权限运行,MCP服务和Hook也在此沙箱外。涉及这些组件时还要单独核对配置,不能用命令沙箱的域名列表限制所有外部连接。
默认多数本机文件可读,环境变量也可能继承秘密;可写主要限于工作目录、专属临时目录和已加入目录。它不是默认隐藏所有凭据的保险箱。先在没有生产秘密的练习环境了解边界,再按组织要求配置额外读限制和环境处理。
第二步:打开sandbox面板
/sandbox
macOS使用系统内置机制;Linux和WSL2需要bubblewrap与socat等依赖,面板会报告缺失项。若只有Dependencies标签,表示沙箱尚不能启动,应先按官方平台说明修复并重启Claude Code,而不是跳过检查后仍称沙箱已启用。
Mode可选auto-allow或regular permissions,前者减少沙箱内命令确认,后者保留常规权限提示。Overrides决定失败后是否允许请求无沙箱重试,Config查看最终生效配置。面板保存通常影响项目本地设置,用户全局与组织强制设置另有作用域。
第三步:用受控请求确认隔离
让Claude执行用于检查的命令,不能自己在!提示中输入就认定测试有效;官方说明该入口通常不受沙箱保护。使用官方的目录外写入探针,在练习环境确认默认边界,预期失败也是验证的一部分,不是需要绕过的问题。
请在沙箱内执行官方写入探针 touch ~/sandbox-probe,用于检查工作目录外写入是否被拒绝。不要无沙箱重试,不放宽目录权限。报告实际命令、错误和当前配置;如果该路径本来就在允许写入范围,先说明此测试不适用。
若默认范围外写入成功,先检查沙箱是否真开启、依赖是否就绪和主目录是否已被允许。若创建了练习文件,确认内容与归属后清理,不把成功当成沙箱已经正常。本文未在你的设备运行探针,仅提供可核对流程。
第四步:排查正常构建被阻止
构建失败时读真实错误,区分写入路径、网络域名和沙箱无法启动。依赖安装可能访问缓存或包仓库,应核对项目确需哪些目标,再做最小配置调整。不要为了让一次构建成功就允许整个主目录写入、所有网络或所有命令绕过。
请只分析刚才的失败:是目录访问、网络连接还是依赖缺失?列出命令实际需要的最小路径或主机及依据,不修改设置、不重试无沙箱、不删除文件。若与沙箱无关,明确说明并给正常排查方向。
网络域名批准与命令权限不是同一个控制。配置改变后重新检查Config并验证原来的失败路径,同时确认不应允许的探针仍被阻止。如果是容器内bubblewrap启动失败,应按官方环境限制排查,不把系统错误误写成模型拒绝工作。
第五步:处理失效策略并记录验收
官方说明不支持平台或依赖检查失败时,默认可能无沙箱运行;需要以沙箱作为启动前提的管理场景,可按组织方案设置failIfUnavailable。是否允许无沙箱重试也应明确,不能仅凭曾经在面板点过启用就忽略后续环境变化。
记录系统、作用域、最终配置、成功构建与被拒绝探针结果。完成标准是正常工作在预期边界内运行,越界操作确实被拒绝,并清楚哪些工具不受保护。它不等于整个Claude Code进程都被容器化,也不代替项目权限、密钥管理与外部服务控制。
官方资料
资料核对日期:2026年11月8日。
本文地址:https://www.163264.com/19859


