Claude Code 网络权限收紧:依赖安装结束即关闭访问

Claude Code 2.1.271 为沙箱自动模式加入按命令限定的网络权限。本文拆解 allowed_domains 与持久白名单的区别,并用 npm ci 展示如何只在依赖安装期间开放软件源、让后续测试重新回到无网络状态,同时说明托管策略、域名过滤与非沙箱回退仍会如何影响真实边界。

Tuesday, September 15, 2026Omid Saffari
Claude Code 网络权限收紧:依赖安装结束即关闭访问

一次依赖安装,不必再把整个 Claude Code 任务的网络边界一并放宽。2026 年 9 月 14 日,Claude Code 2.1.271 为沙箱自动模式加入了按命令限定的网络访问。Claude Code 网络权限由此可以只为安装命令临时放行:该命令结束后,获准连接的软件源主机随即重新关闭。

Claude Code 网络权限究竟改了什么

这里涉及 Claude Code 两层不同的安全机制;只有拆开来看,才能理解这次更新。

自动模式决定某次工具调用能否执行。 独立的分类器会根据你的请求审查该操作。此前的 Claude Code 自动模式指南 详细介绍了这套通用权限模型。

沙箱决定正在运行的 shell 命令可以接触什么。 它限制文件写入,并通过代理转发网络流量,由代理核验目标主机。

2.1.271 版让这两层机制结合得更紧密。在沙箱自动模式下,Bash、PowerShell 或 Monitor 调用现在可以携带 allowed_domains 列表。Claude Code 会同时审查命令及其需要访问的主机;这些主机仅对当前命令开放,其他主机仍会被沙箱拒绝。更新日志明确说明了这一作用范围。

这个蛇形命名字段与 sandbox.network.allowedDomains 并不是一回事;后者位于 settings.json 中。

控制项有效期对后续命令的影响
每条命令的 allowed_domains一次经过审查的 Bash、PowerShell 或 Monitor 调用权限不会继承;后续命令需要单独提交主机供审查。
sandbox.network.allowedDomains该设置生效期间的每一条沙箱命令指定主机已经开放,后续命令同样可以访问。
已保存的 WebFetch(domain:...) 允许规则以后所有加载该规则的会话主机会成为常驻配置,而不是仅限单次任务的例外。
sandbox.network.deniedDomains每一条匹配的沙箱连接拒绝规则仍优先,包括命中范围更大的允许通配符时。

在这个版本之前,批准一个新的沙箱主机可能顺带产生范围更大的授权。手动批准会持续到当前会话结束,保存后的批准还可能延续至后续会话。自动模式也可能缓存对某个主机和端口的判定。新字段改变的是运行时可达范围:即使分类器复用了判定结果,网络开口也只属于当前命令。

它只影响更新日志点名的组合:自动模式、沙箱,以及 Bash、PowerShell 或 Monitor。手动会话、非沙箱命令、内置文件工具,以及完全不访问网络的任务,都不会因此获得这项边界控制。

这笔账算的是授权范围,不是套餐降价

Claude Code 的席位价格没有因此改变。Anthropic 也没有为按命令限定域名单独公布费用、SKU 或性能数据。

真正值得计算的是需要为之负责的授权范围:

standing grant = approved host × every later command that can reuse it

command-scoped grant = approved host × the reviewed command

以需要访问 registry.npmjs.org 的依赖安装为例。过去,运维层面常面临两难:要么让无人值守任务停下来等待网络授权,要么预先放行软件源,并接受之后每一条沙箱命令都能访问它。如今,自动模式可以把该主机和安装命令一并审批,并在构建、测试、打包和审查继续之前将其关闭。

订阅账单虽然没变,但两项成本会随之变化。平台团队需要设计和清理的常驻例外更少;安全审查人员也可以评估“命令—主机”这一具体组合,不必默认该主机在任务剩余阶段始终可用。

审查流程仍有计算成本。对于 Anthropic 权限模式文档 提到的 Enterprise 和按用量计费的提供商账户,分类器检查会计入 token 用量,并增加一次往返。此次发布没有给出耗时基准,本文也没有做计时测试,因此不能凭空宣称能节省多少秒。

一座临时桥让安装命令连接软件源,并在测试命令开始前升起的建筑教学模型
通往软件源的桥只属于安装命令;后续测试步骤开始时,不会继承任何网络通路。

哪些人明天就能用上

独立创业者:让长时间构建任务继续跑

独立创业者可以让 Claude Code 为 SaaS 代码仓库恢复锁定的依赖,然后继续执行测试和代码审查,而无需把公共软件源持续开放给后面的步骤。这样既能让任务不中断,也不会因为一次必要下载,就为整个会话留下常驻的出站通道。

技术服务公司负责人:在客户代码库之间切换

技术服务公司可以把客户的软件包主机仅绑定到需要它的安装步骤,不必再保存一条项目级例外。这样既减少了权限清理,也降低了下一阶段命令把客户代码发往某个主机的可能性——毕竟该主机原本只为依赖工作开放。

平台或安全负责人:治理无人值守 Agent

平台团队可以继续执行组织级拒绝规则和托管域名限制,同时允许日常命令在该策略内申请更窄的访问范围。审查记录也更容易解释:这条命令为了这个操作需要访问这个主机;它并不能证明该主机对 Agent 后续执行的所有操作都安全。

构建工程师:把安装阶段与测试阶段分开

构建工程师可以把软件包恢复设为联网阶段,把测试套件设为离线阶段。如果受入侵的测试或意外脚本在安装结束后尝试连接软件源,它不会继承上一条命令打开的通路,除非已有其他常驻规则允许访问该主机。

如何为依赖安装限定网络边界

最容易看清这项变化的场景,是一个提交了 package-lock.json、且依赖都通过一个已知软件源解析的代码仓库。npm 文档将 npm ci 定义为适用于自动化环境的全新安装:它要求存在锁文件;锁文件与清单不一致时会失败;会移除已有的 node_modules;并且不会修改清单和锁文件。--ignore-scripts 选项则会在安装期间禁用软件包生命周期脚本。npm 文档列出了这些行为。

  1. 确认 Claude Code 版本

    按照更新日志运行版本检查:

    Bash
    claude --version

    请使用 2.1.271,或包含该功能的更高版本。

  2. 在失败即关闭的沙箱中启动自动模式

    针对一次会话,将自动模式与必须成功启动、且无法在边界外重试受阻命令的沙箱组合使用:

    Bash
    claude --permission-mode auto --settings '{"sandbox":{"enabled":true,"failIfUnavailable":true,"allowUnsandboxedCommands":false}}'

    这里使用的是文档所述的 --permission-mode、--settings、failIfUnavailable 和 allowUnsandboxedCommands 控制项。macOS 内置沙箱;Linux 和 WSL2 需要 bubblewrap 与 socat;原生 Windows 不受内置沙箱支持。沙箱指南介绍了设置方法与平台限制。

  3. 为安装步骤写清最小任务范围

    把下面这段话作为任务发送;如果锁文件使用私有软件源,请替换其中的主机:

    严格按照 package-lock.json 中锁定的依赖执行 npm ci --ignore-scripts。这条命令只能访问 registry.npmjs.org。不要把该主机保存到项目或用户设置中。安装完成后,以单独的命令运行测试套件,且不得访问网络。如果安装还需要任何其他主机,请立即停止。

    你无需亲自填写 allowed_domains 字段。Claude Code 会构造 shell 工具调用,再由自动模式连同所请求的主机一起审查。

  4. 确认下一步从关闭状态开始

    打开 /sandbox,查看解析后的 Config 标签页,并确认 registry.npmjs.org 尚未出现在常驻 allowedDomains 或已保存的 WebFetch 规则中。然后再运行单独的测试命令。如果后续命令尝试联网,它应当需要自己经过审查的域名集合,否则就会被现有策略拒绝。

最容易出错的细节其实是锁文件。软件包锁可能指向私有软件源、Git 主机或直接的 tarball URL。只写出 registry.npmjs.org,并不会让这些依赖自动出现在该主机上。应检查实际解析出的主机,保持列表精确;一旦锁文件请求意外主机,就让命令停止。

按命令开放网络仍解决不了什么

按命令限定的网络访问缩短了主机可达的时间,却不能证明主机可信、检查每一条加密请求,或确保下载的代码安全。

Anthropic 的内置代理按主机名过滤,默认不会检查 TLS 内容。在获准执行的命令内,进程可以访问该主机上的任何允许路径。命令生成的子进程共享同一沙箱边界,所以 npm ci --ignore-scripts 是一个合适的教学示例:它会从安装步骤中排除软件包生命周期脚本,但不会审计下载的软件包。

托管策略仍位于这项功能之上。strictAllowlist 可以拒绝配置列表之外的任何内容,allowManagedDomainsOnly 可以把允许访问的主机限定为托管设置中的条目。显式拒绝规则也会继续拦截;按命令域名无法穿透这些控制。

非沙箱重试是另一个必须正视的边界条件。Claude Code 通常为沙箱无法运行的命令保留了一条逃生通道。把 allowUnsandboxedCommands 设为 false 很重要,因为它能阻止失败的安装在不知不觉间把问题从“这条命令可以访问哪个主机?”变成“这条命令能否在沙箱外运行?”

本周一该怎么行动

如果你正在自动模式下使用 Claude Code 执行依赖更新、夜间维护或无人值守构建任务,并且目前把软件包源放在宽泛的沙箱允许列表中,那么本周就值得行动。借助这项功能,可以着手验证这些常驻条目能否移除。

如果组织通过托管网络策略,有意为每条命令预先批准软件源;或者外层容器或 CI 运行器已经实施了更严格的进程级出站限制,可以先观望。新字段或许仍能提供纵深防御,但它不会取代现有边界。

如果没有同时使用自动模式和沙箱,或者工作根本不会通过 Bash、PowerShell 或 Monitor 访问网络,这项变化与你无关。

周一要做的事情很小:确认 Claude Code 为 2.1.271 或更高版本,选择一次锁定依赖的安装任务,在失败即关闭的沙箱中以自动模式启动,只指定预期的软件源主机,然后证明紧随其后的测试命令无法复用该网络通路。只有这项检查在自己的环境中通过后,才移除常驻的软件源例外。

如果你希望下一项平台更新也能直接转化为可执行的工作流,欢迎订阅邮件通讯。

最近更新
2026年9月15日
分类
Explained

在 Google 中优先显示本站

将 omidsaffari.com 添加为 Google 搜索的优先来源

把 omidsaffari.com 设为优先来源,Google 会在 Top Stories、AI Overviews 和 AI Mode 中为您优先展示。

Grok 语音转文字升级 2.0:价格不变,默认模型已切换

Grok 语音转文字升级 2.0:价格不变,默认模型已切换

Grok Voice Transcribe 2.0 的批处理仍为每音频小时 $0.10,流式处理仍为 $0.20,但省略 model 参数时默认模型已经切换。本文拆解价格、适用场景和迁移风险,并给出用真实音频对比 1.0 与 2.0、核对人工校正时间和下游结果,再显式锁定生产模型的操作清单。2026年9月20日Explained
Cloudflare Browser Run 加强浏览器自动化调试:失败任务先查再重跑

Cloudflare Browser Run 加强浏览器自动化调试:失败任务先查再重跑

Cloudflare 为已完成的 Browser Run 录制加入 Inspect 面板,可集中查看控制台日志、网络请求、HAR 和最终 DOM。本文讲清如何启用 Session Recording、按 target 获取网络轨迹,并判断哪些失败应先查现有证据,哪些仍需截图与应用日志,减少浏览器重跑和人工复现时间。2026年9月19日Explained
v0 接入 npm 私有包:让原型直接复用团队组件库

v0 接入 npm 私有包:让原型直接复用团队组件库

v0 现已支持通过共享环境变量安装 npm 私有包,让原型直接复用团队现有组件库。本文拆解 NPM_TOKEN 与 NPM_RC 的适用场景、最小权限配置、真实仓库交接检查,以及上线前仍需补齐的文档、安全与工程验证,帮助团队判断这项能力能否减少组件替换返工,并厘清凭证如何留在模型与沙箱文件系统之外。2026年9月19日Explained
Claude Code 自动模式不再单收分类器费用,但有前提

Claude Code 自动模式不再单收分类器费用,但有前提

Claude Code 2.1.278 可在符合条件的 API 与 Enterprise 会话中取消自动模式分类器的单独费用,但网关、区域或凭证仍可能触发计费回退。本文说明如何通过 /status 确认服务端路径、排查 safeguards 等透传字段,并在调整智能体预算前验证真实生产链路。2026年9月19日Explained
Vercel 构建费用新机制:Turbo 可按单次部署启用

Vercel 构建费用新机制:Turbo 可按单次部署启用

Vercel 现在允许 Pro 和 Enterprise 项目仅为一次部署启用 Turbo,无需修改项目默认构建机器。本文拆解 GitHub、CLI 与 API 三种用法,并用同一组计费数据说明何时值得为紧急发布支付更高的 Vercel 构建费用,以及如何验证下一次部署已恢复原配置。2026年9月18日Explained
ChatGPT for Word 上线:写文档不再来回复制

ChatGPT for Word 上线:写文档不再来回复制

ChatGPT for Word 将起草、摘要、选中文本修改和基础排版直接带进 Word 侧边栏。本文详解插件的安装条件、Microsoft 与 ChatGPT 双重管理权限、共享用量和 token 费率、数据边界,以及一套可执行的文档编辑流程,帮助团队判断是否值得启用,并用真实文档衡量省下的搬运时间与新增的审核成本。2026年9月18日Explained
Antigravity 迁移指南:10 月 5 日前升级本地任务

Antigravity 迁移指南:10 月 5 日前升级本地任务

Google 将于 2026 年 10 月 5 日停用 5 月版 Antigravity 智能体。本指南拆解 Antigravity 迁移路径:仅消费最终输出的远程任务只需更换智能体 ID;使用本地工具或解析 function_call 的集成,还必须更新工具适配器、参数校验与测试流程,避免定时任务在截止日后悄然中断。2026年9月18日Explained
Cloudflare Workers RPC 链路追踪:慢请求卡在哪一跳,一眼看清

Cloudflare Workers RPC 链路追踪:慢请求卡在哪一跳,一眼看清

Cloudflare Workers 现已支持跨 JavaScript RPC 边界追踪请求,把调用方、下游 Worker、Durable Object、嵌套调用与回调串进同一条时间线。本文详解慢请求定位、span 读取、采样设置和按 span 计费逻辑,帮助团队在全面启用前测清事件量、保留期与配额影响。2026年9月17日Explained
订阅通讯

每周日,一封信。写运转中的系统,不写热评。

每周一期。无垃圾邮件。随时退订。