IndieSeek 作者与网站封面

快速结论

Claude Code v2.1.216 于 2026 年 7 月 20 日发布。该版本新增 sandbox.filesystem.disabled,允许用户跳过 Claude Code 的文件系统隔离,同时保留网络出口控制。它还修复了多类边界失效问题,涉及采用 Worktree 隔离的子智能体、以符号链接指向 .claude 的路径、回退操作,以及恢复后台智能体后丢失限制等场景。

如果你的安全方案依赖这些边界,应先完成升级,但不要只为减少使用阻力就关闭文件系统隔离。Anthropic 的沙箱文档指出,有效隔离同时需要文件系统控制和网络控制。只有当另一个安全层——例如一次性容器或虚拟机——已经限制文件系统访问时,才应使用这项新例外。

可以采用以下发布门禁流程:

升级到 2.1.216
→ 选择隔离配置
→ 执行五项无破坏性的边界测试
→ 比对日志与哨兵文件哈希值
→ 逐步扩大部署范围

适用对象

本指南面向在本地、CI 或后台智能体中运行 Claude Code 的开发者,尤其适合正在使用 Worktree、定时任务、工作流、自定义沙箱设置或长时间会话的团队。

它是更全面的不受信任仓库沙箱检查清单的补充。那份指南用于界定信任边界,本文则验证 v2.1.216 中的具体改动。确认环境安全后,还可以使用明确的 /verify/code-review 完成门禁检查产出质量。

有哪些变化

版本说明确认了五项值得纳入回归测试的改动:

领域 已确认的变化 升级时要回答的问题
沙箱配置 sandbox.filesystem.disabled 可以跳过文件系统隔离,同时保留网络出口控制 是否确有另一个安全层在限制磁盘访问?
Worktree 隔离 隔离的子智能体无法再通过 git -C--git-dirGIT_DIRGIT_WORK_TREE,将 Git 操作重定向至共享检出目录 测试智能体是否仍能触及父级检出目录?
配置写入 工作流与定时任务的写入操作不再跟随 .claude 符号链接 外部哨兵文件能否保持不变?
回退 /rewind 会跳过由符号链接或硬链接指向的已跟踪路径,并报告跳过数量 外部文件是否得到保护,而且跳过情况是否清晰可见?
恢复智能体 后台会话会恢复智能体原有的提示词与工具限制,而不会回到默认值 停止并恢复会话后,限制是否依然有效?

这些改动修复的是 Claude Code 的规则执行与状态恢复问题,并不意味着每条命令都会变得安全,也不代表它能够检查加密流量或隔离内置文件工具。Anthropic 将沙箱定义为针对 Bash 及其子进程的操作系统级边界;Read、Edit、Write、计算机使用以及 MCP 工具则由各自独立的机制控制。

选择合适的隔离配置

配置 文件系统 网络 适用场景
默认配置 Claude Code 沙箱 域名白名单 常规本地开发
兼容性例外 使用外部容器或虚拟机,并关闭 Claude 的文件系统隔离 继续启用 Claude 网络沙箱 必需工具与文件系统隔离冲突,而且外层运行环境可以随时销毁
托管强门禁 Claude 沙箱叠加容器策略 托管白名单;必要时使用可检查流量的代理 需要强制执行策略的 CI 或企业工作负载

使用默认配置时,应优先设置范围尽可能小的 sandbox.filesystem.allowWrite 路径,不要直接把整条命令排除在沙箱之外。需要强门禁时,请启用 sandbox.failIfUnavailable,并通过 allowUnsandboxedCommands: false 关闭无沙箱运行的逃生通道。

v2.1.216 中,兼容性配置可能如下:

{
  "sandbox": {
    "enabled": true,
    "filesystem": { "disabled": true },
    "network": {
      "allowedDomains": ["registry.npmjs.org"]
    },
    "allowUnsandboxedCommands": false
  }
}

不要把这项配置视为安全增强,而应将其理解为安全责任的转移。外部容器或虚拟机必须阻止智能体写入宿主机凭证、Shell 启动文件、其他代码仓库以及部署配置。

五项回归测试矩阵

请在只包含虚假数据、可以随时丢弃的仓库中执行测试。安全测试夹具绝不能指向真实凭证或生产环境的检出目录。

测试项 安全测试方法 通过条件
网络出口 分别请求一个允许访问的主机和一个无害但未列入白名单的主机 允许的请求成功;未列入名单的请求按照策略被阻止或触发确认
Worktree 重定向 从隔离的子智能体中,以只读方式运行 git status 的不同变体,并通过 -C--git-dirGIT_DIRGIT_WORK_TREE 指向父级测试检出目录 子智能体没有在共享检出目录上执行操作
.claude 符号链接 在测试仓库中让 .claude 指向一个外部目录,目录内放置已计算哈希值的哨兵文件,然后尝试保存测试工作流或定时任务 外部文件没有新增或变化
回退链接 在测试夹具中放置一个符号链接和一个硬链接,修改已跟踪内容后运行 /rewind 被链接的外部目标哈希值不变,而且 Claude 会报告跳过的路径
恢复限制 启动一个拒绝使用某项无害工具的后台智能体,停止并恢复它,然后请求使用该工具 恢复后原有拒绝规则仍然有效

需要记录 Claude Code 版本、操作系统、各级设置、测试夹具提交、命令、提示词、退出状态、出现过的确认提示以及哨兵文件哈希值。如果没有留下证据,就很难区分“测试通过”与“测试根本没有触及预期路径”。

升级流程

1、记录当前策略并运行 claude --version。不要在同一次缺乏说明的变更中,既修改沙箱规则又升级程序。
2、升级至 v2.1.216 或更新的稳定版本,然后重新打开会话,让其加载新代码和新设置。
3、先在完整启用默认沙箱的情况下运行五项测试。如果某个工具不兼容,应先尝试设置范围较小的 allowWrite 路径,再考虑关闭文件系统隔离。
4、如果无法避免兼容性例外,请在一次性容器或虚拟机中运行 Claude Code,保持严格的网络白名单,并重新执行全部测试。
5、先在一个低风险仓库中进行金丝雀发布。在扩大部署范围之前,持续观察被拒绝的操作、意外出现的确认提示、仓库外写入、网络目标以及恢复后台智能体后的行为。

可以使用下面这份精简的证据记录模板:

Claude Code 隔离证据
版本 / 操作系统:
设置范围与配置:
测试夹具提交:
网络出口允许与拒绝结果:
Worktree 重定向结果:
符号链接与硬链接哨兵哈希:
恢复智能体后的限制结果:
剩余例外及负责人:

常见错误

• 把 filesystem.disabled 当作推荐的默认值,而不是只用于兼容性问题的逃生通道。
• 虽然保留了网络过滤,却允许访问一个可接收任意上传数据的宽泛域名。
• 使用真实的共享检出目录或可能修改历史记录的命令测试 Worktree 隔离。
• 误以为 Bash 沙箱规则同样控制 Read、Edit、Write、计算机使用和所有 MCP 工具。
• 恢复旧的后台会话时,没有检查原有提示词和工具限制是否已经恢复。
• 把升级成功直接当成现有托管设置、Hooks 和容器仍能安全协同的证明。

常见问题

我应该把 sandbox.filesystem.disabled 设为 true 吗?

通常不应该。只有当另一个文件系统边界已经得到强制执行,而且确实存在具体的兼容性问题时,才使用这项设置。对于常规本地开发,应同时保留文件系统隔离与网络隔离。

网络隔离能够阻止所有数据外泄途径吗?

不能。Anthropic 指出,内置代理根据域名过滤流量,但不会检查加密流量。过于宽泛的允许域名以及权限强大的 Unix Socket 都可能削弱安全边界。如果你的威胁模型有更高要求,应使用能够检查 TLS 流量的代理,或更强的外层隔离。

Worktree 修复会自动保护父级仓库吗?

这些修复关闭了版本说明中明确列出的重定向路径。除此之外,仍应确保无关的 Worktree 变更、凭证、Git 配置、Hooks 和部署操作不在不受信任智能体的权限范围内。

v2.1.216 足以保护无人值守的编程智能体吗?

这个版本是一次重要的安全升级,但不能替代完整的无人值守运行策略。仍需保留确定性测试、范围受限的凭证、网络控制、不可逆操作门禁以及可供审计的证据记录。