2026 年 9 月 14 日,Claude Code 2.1.271 给 auto mode 且开启沙箱的 Bash、PowerShell 和 Monitor 加上 per-command allowed_domains:一条命令需要访问的主机,会和这条命令一起送审,并且只为这一次调用打开;其他主机一律拒绝。这和会话级 sandbox.network.allowedDomains 不是同一层。

过去在 auto mode 里放行一次 curl 或包管理器,常见结果是“这个主机会话里都能用”。排障方便,横向移动也方便。本文只写新的这一层:命令和域名绑在同一次审批里之后,输入、执行和拒绝分别发生在哪一步。
AI Coding 交流群
如果你也在用 AI 写代码,或者正在研究 Cursor、Claude Code 这些工具,欢迎加入以下交流群。群里平时会聊一些 AI 编程的实际用法、开发工作流,还有各种新工具和新玩法。
发生了什么
Changelog 原文是:auto mode 配合沙箱时,Bash、PowerShell 和 Monitor 增加 per-command allowed_domains;命令需要的主机与命令一起被审查,并且只为该命令打开,其他主机被拒绝。它补的是单次工具调用的网络边界,不是改写整个沙箱开关。
会话级名单仍然在。沙箱文档里的 sandbox.network.allowedDomains 用来预放行,让沙箱命令少弹窗;deniedDomains 即使被通配符命中也要拦;strictAllowlist(v2.1.219+)则把名单外流量直接拒绝而不是询问;allowManagedDomainsOnly 只承认托管设置里的域名。默认没有任何域名被预放行。用户对某个新主机选 Yes,只在本会话记住;选 “Yes, and don't ask again” 才会写成 WebFetch(domain:...) 规则落到本地设置。通配符支持前导 *.example.com、可选端口,IPv6 写成 "[::1]" 或 "[::1]:443"。WebFetch(domain:...) 允许规则也会喂进这张会话级名单。
沙箱本身跑在 macOS、Linux 和 WSL2。原生 Windows 不支持,文档要求在 WSL2 里跑 Claude Code。macOS 用内置 Seatbelt;Linux / WSL2 依赖额外软件包,缺了也能先开 /sandbox 面板看缺什么。沙箱的目标是:先规定命令能碰哪些文件和域名,再由操作系统对每条 Bash 及其子进程强制执行,从而少问每一次命令许可。
一次完整工作场景
你让 auto mode 在沙箱里执行 npm install。模型提出 Bash 调用,并带上这次需要的主机,例如 registry.npmjs.org。分类器同时看命令文本和这张主机列表,而不是先批命令、再在运行中发现它还想连别的地方。
通过之后:
- 只有这一次 Bash/PowerShell/Monitor 调用能访问列出的主机。
- 同一进程里再连未列出的主机,会被拒绝。官方语义是:批准访问
registry.npmjs.org,不会把evil.example.com一并打开。 - 下一条命令若要访问另一组主机,必须重新带上自己的
allowed_domains再审一次。 - 会话级
allowedDomains仍可预放行常用包源,减少重复询问;它不取代按命令打开,两套名单叠在一起。
排障时先看三件事:当前是不是 auto mode、沙箱开没开、这条工具调用有没有带主机列表。三者缺一,你看到的仍是旧的会话级或交互询问路径。Linux 上若 Dependencies 标签提示缺少 seccomp 相关包,先补依赖,再谈按命令打开是否真的被内核强制。

为什么这会改变工作流
被改掉的是 auto mode 的网络授权粒度。以前“这条命令可以上网”很容易滑成“这个会话可以上网”。现在授权对象变成“这条命令 + 这几台主机”,分类器和操作系统边界对准同一次调用。
对日常安装依赖、拉 Git 远程、跑带联网的 Monitor 来说,这意味着:你可以把常用源放进会话级名单,把一次性或不可信的出口留给 per-command 审查。团队策略也可以写得更窄——例如会话级只放行内部镜像,公网源必须每次随命令出现。托管设置可以用 allowManagedDomainsOnly 锁死组织域名,避免个人本地设置把出口放宽。
它没有让 auto mode 变成“不用看网络”。分类器仍要看到主机列表;模型若漏报主机,运行时会被拒,任务失败,而不是悄悄拓宽出口。人要接管的是:失败后是补主机列表重试,还是把该任务踢出 auto mode、改回确认模式。
限制与人接管点
这条能力有明确前置条件。不是 auto mode、没有开沙箱,per-command allowed_domains 不会按 Changelog 描述生效。原生 Windows 没有这套 Bash 沙箱,不要假设桌面版 PowerShell 已经有同样隔离。沙箱文档也写明:要比较 dev container、自定义容器和虚拟机,应去 Sandbox environments 页;要减少 Bash 以外工具的询问,应去 permission modes——那些都不是本层网络名单。
同版本还有相邻改动,不要和本文事件混为一谈。Claude Code on the web 的 Cloud environments 管理编辑器新增 Custom network access,使用与环境对话框相同的允许域名列表——那是云端 VM 的出口策略,不是本地 Bash 的单次调用。云端环境另有 None / Trusted / Full / Custom 四档,GitHub、已启用的 MCP 连接器和 Anthropic API 在部分档位仍可通过专用路径到达。auto mode 下,skill 或 slash command 的行内 ! shell 命令改走 default-mode 权限规则,不再走分类器。子 Agent 交还结果时,改为走分类器会审查的独立 hand-back 调用。Monitor 监视必须带截止时间:最多 30 分钟,-p 单次提示运行里是 10 分钟,到点会通知 Claude 重新武装;以前的无超时 persistent 选项被替换。
2.1.271 还修了一批 Bash 权限检查漏洞,包括 fmt/column、通配符、变量声明标志、以及 cd 接 git 的链式命令;Linux 上沙箱命令失败后留下的陈旧 .git/config.lock 也修了。这些修复让“以为沙箱挡住了”的旧路径更少漏,但它们证明的是权限检查本身仍需人审 Changelog,而不是 per-command 域名已经覆盖所有逃逸。
如何试用
升级到 Claude Code 2.1.271,确认系统是 macOS、Linux 或 WSL2。开 /sandbox,确认沙箱可用并开启;把权限模式切到 auto。跑一条明确需要单一主机的命令,例如只访问包镜像的安装,再故意让模型在同一次调用里访问未列出的主机,确认后者被拒。
若你主要在云端环境里跑,去 Cloud environments 管理编辑器看 Custom network access 是否出现——那是 VM 出口,用来收紧 Trusted/Full/Custom 四档里的 Custom。本地 per-command 名单和云端环境名单不要当成同一份配置来复制。
验证完就停。不要为了“更安全”把会话级名单清空后再开一堆互不相关的联网任务;那只会把分类器变成新的排队点。会话级放行高频包源,按命令收紧一次性出口,才是这次更新实际改掉的工作流。
信息来源
- Claude Code Changelog(2.1.271,2026-09-14)
- GitHub Release v2.1.271
- Claude Code Docs:Configure the sandboxed Bash tool
- Claude Code Docs:Cloud environments
开发必备:API 全流程管理神器 Apifox
介绍完上文的内容,我想额外介绍一个对开发者同样重要的效率工具 —— Apifox。作为一个集 API 文档、调试、设计、测试、Mock、自动化测试于一体的工具,Apifox 是目前提升研发效率的首选。
如果你正在开发项目,不妨试试其极其友好的界面设计,它完全兼容 Postman 和 Swagger 数据格式,导入数据非常方便,,即使是新手也能很快上手,点击这里即可注册使用。

值得一提的是,除了个人和常规团队使用,针对有高安全合规要求、或需要在内网环境协作的企业,Apifox 还提供了深度定制的私有化部署方案。
获取专属报价与部署方案
详细的私有化部署系统架构与安全白皮书
针对您公司规模的专属报价单
免费的 1v1 专属产品演示 (Demo) 机会