Skip to content
FunCoding

Search

Search docs, Skills and MCP

启用本地沙箱

开启 experimental 与本地隔离,检查实际状态并理解单会话覆盖和绕过。

This page has not been translated into English yet. The original Chinese version is shown below.

Copilot CLI 的本地沙箱目前为 experimental / public preview,默认关闭。它使用操作系统进程隔离限制智能体执行的命令,不是单独的虚拟机或容器。CLI 与 Copilot app 的本地沙箱配置相互独立,在一个入口启用不会自动改变另一个入口。

启用流程

先启用实验功能:

copilot --experimental

也可在已有会话输入 /experimental on。随后在会话中执行:

/sandbox enable
/sandbox status
/sandbox policy

第一条开启沙箱,第二条核对本会话是否实际启用,第三条查看当前目录最终的可读、可写、拒绝路径与网络策略。不要只看配置文件中的 enabled 值就判断隔离已生效。

启用选择保存为个人 settings.json 中的 sandbox.enabled,适用于后续交互和非交互会话。已经打开的其他会话不会立刻切换,需要在相应会话执行 /sandbox enable,或关闭后恢复。

单次运行

已经启用 experimental 时,可用 --sandbox 仅给本次运行开启沙箱;例如:

copilot --experimental --sandbox -p "PROMPT"

--no-sandbox 用于仅关闭本次运行的沙箱,但不能覆盖企业要求开启的管理策略。正常非托管情况下,交互 /sandbox disable 会改变当前和后续新会话的保存偏好。

默认不是断网环境

沙箱默认允许当前工作目录与临时目录写入,工具和部分系统位置读取;默认允许外网,并把 Git / gh 认证提供给沙箱内进程。本地网络默认值存在来源差异:CLI 使用与配置专题写允许,应用路径下新版配置专题的 CLI 部分写默认关闭,应查看当前 /sandbox policy 确认。因此 Git 推送、创建 PR 等联网操作仍可能成功,仍需配合工具权限。

默认边界和自动授权见文件系统策略,关闭网络、凭据与绕过的方法见沙箱设置。

请求在沙箱外运行

默认允许请求 bypass。某个命令需要更大访问范围时,CLI 会展示该命令,用户可批准这次运行、保留沙箱限制,或在策略允许时为本会话关闭沙箱。

若管理员设置 sandbox.allowBypass=false,不能批准单次逃逸,也不能关闭本会话沙箱。若管理策略强制启用但仍允许 bypass,当前使用教程允许从批准提示或 /sandbox disable 对当前会话退出隔离,不改变保存的管理策略。本批重新读取的沙箱概览也明确这一当前会话例外;是否允许仍以有效管理策略为准。

平台不支持时

普通 CLI 会话在主机不支持沙箱时可能显示通知、为本会话停用沙箱,然后让命令无沙箱运行,保存的 sandbox.enabled 仍保持不变。企业强制沙箱时则阻止命令执行。平台前提与代理限制见平台支持。

这也是每次排查都应先查看 /sandbox status 的原因。状态行默认显示 sandbox enabled;若隐藏了,可在 /statusline 中重新启用 sandbox 项。

桌面应用采用不同的会话开关和不支持平台时的处理,见应用本地沙箱。