---
url: https://cubesandbox.com/zh/changelog/v0.7.3.md
---

## 2026.10.12 Release v0.7.3

32 个提交，来自 15 位贡献者。

### ⭐ 亮点

* **端口映射的连接不再随机被重置。** 修复了几个存在已久的端口映射问题：跨机访问沙箱服务时偶发 502、空闲连接 60 秒后被重置、复用端口时新连接被旧会话重置、同一端口上的两个沙箱互相干扰。
* **跨机恢复直接从 S3 读取。** 恢复沙箱时，节点不再先把整块磁盘从 S3 拷到本地；沙箱需要的数据直接从 S3 快照读取，恢复更快，节点也不必预留整块磁盘空间。
* **S3lvol 热升级：I/O 暂停从约 40 秒降到约 8 秒**。
* **修复偶发块 I/O 短读短写导致的数据损坏或卡死。**

### 🎯 核心特性

#### 沙箱支持 MCP

沙箱现在可以像 E2B 一样，在创建时通过 `mcp` 参数启用 MCP（Model Context Protocol）网关：

* 创建沙箱时传入 `mcp`，沙箱启动后 Python / Node / Go SDK 会在其中拉起 `mcp-gateway`，并把 MCP URL 和 token 返回给调用方；网关启动失败会直接销毁沙箱。
* 未显式指定模板时，SDK 查找别名为 `mcp-gateway` 的模板，找不到再用 `CUBE_TEMPLATE_ID`。默认沙箱镜像里没有网关程序，可用 `examples/mcp-gateway` 下的参考实现制作模板，中英文说明详见 [MCP 网关指南](https://cubesandbox.com/zh/guide/mcp-gateway.html)。

### ✨ 功能增强

#### 模板与存储

* S3lvol 热升级：升级期间沙箱 I/O 的暂停时间从约 40 秒缩短到约 8 秒，全程卷保持挂载（#1822）。
* 跨机恢复不再把整块磁盘拷到节点：恢复出的沙箱按需直接读取 S3 快照上的数据，显式 decouple 仍会生成独立副本；删除源快照会等仍在读取它的恢复卷消失后再执行（#1898）。
* 从镜像创建模板时，目标节点离线或不存在会在 0.08 秒内立即报错，不再先花几分钟拉镜像、解包后才失败（#1829）。
* S3 卷可以改用宿主机自身的实例角色认证，不必在每台宿主机上放置长期访问密钥：配置 `CREDENTIALS=instance_role` 并去掉两个密钥即可。该能力适用于手工安装、且存储端点为 AWS 的场景，并要求每台 CubeMaster 与 Cubelet 宿主机上都挂载了对应角色，而不仅是运行沙箱的节点；详见 [S3 卷使用指南](https://cubesandbox.com/zh/guide/s3-volume.html)（#1751）。

#### 生命周期与控制面

* 暂停提速：暂停收尾阶段的 VM 拆除改为后台执行，单次暂停快约 41%（2 GiB 沙箱 150ms → 88ms），并发 50 时快约 20%，恢复不受影响（#1731）。

#### 部署与运行时

* PVM host / guest 内核从 6.6.69 升级到 6.6.117（#1852）。

#### Web UI / CubeOps / 其他

* Web UI 模板卡片现在展示模板别名（#1876）。
* 新增两篇博客：全球招聘，以及面向 OpenClaw / DSH 的企业级安全执行平面（#1884）。

### 🐛 Bug 修复

#### 生命周期与沙箱

* 修复暂停后的沙箱在 Info 查询中丢失元数据（labels、模板、规格、卷挂载）的问题（v0.7.0 引入）；按 label 识别沙箱的上层因此无法恢复沙箱（#1861）。
* 修复快照刚创建后就克隆报 `no more resource` 的问题：节点心跳还没扫到新快照时，调度器会误以为没有节点持有该模板（#1909）。
* 修复集群中模板较多时模板列表请求挂起的问题（#1899）；列表接口与 `cubemastercli tpl ls` 同时支持分页（`limit` / `offset`）。
* 修复沙箱进程可能仍存活时，网络 tap、IP、卷就被提前回收、进而弄断在用沙箱网络的问题；清理反复失败时只告警一次并降频重试，新增 `cubecli diag tap-holders` / `cubecli diag reclaim` 帮助定位并清理卡住的持有者（#1810）。
* 修复块 I/O 偶发短读短写时数据被截断或卡死的问题（#1825）。
* 修复生命周期服务退出时被事件订阅者卡住的问题（#1825）。
* 修复从快照创建沙箱时，客户端重发相同的 volumeMounts 被拒绝（"must have exactly one declaration"）的问题；官方 E2B SDK 每次创建都会重发（#1894）。

#### 网络与安全

* 修复两个沙箱监听同一端口、又访问同一远端时互相覆盖端口映射会话、导致一方网络中断的问题（#1915）。
* 修复过期的端口映射会话偶尔未被清理、会话计数虚增的问题（#1914）。
* 修复端口上残留的旧会话把该端口下一个新连接重置掉的问题；新连接现在直接替换旧会话（#1919）。
* 修复端口映射 TCP 状态机停留在 SYN\_RECV 的问题：空闲的已建立连接 60 秒后被删除，下一个报文收到 TCP RST；状态机现在对双向报文都推进（#1918）。
* 修复 arm64 沙箱 IPv6 一直不可用的问题：内核把 IPv6 编译成了模块，而 guest 内核是不带模块的单镜像。同时开启了 PSI，与 x86\_64 对齐；Android（redroid）沙箱两者都依赖，此修复也消除了偶发的端口绑定失败（#1879）。

#### 部署与升级

* 修复 cgroup v2 宿主机上 Cubelet 每次被抓取指标就为每个沙箱打一条错误日志的问题；无人使用的旧版 containerd cgroup monitor 默认关闭，按沙箱的资源指标不受影响（#1869）。
* 修复 `cubemastercli` 僵尸进程不断堆积的问题（一个 Pod 三周累积 6500+）；存量部署重启一次 Pod 即可清理（#1860）。

#### 其他

* 修复从已删除的快照创建沙箱返回 HTTP 500、SDK 无限重试的问题；现在正确返回 404 并指明缺失的模板 / 快照（#1868）。
* 修复 Go SDK `Watcher` 并发场景下重复关闭响应体的问题（#1405）。
* quickstart 示例将 `e2b` Python SDK 限制在 2.51 以下：该版本调用了 CubeAPI 不提供的接口，会得到 405（#1909）。
* 文档移除 agent 平台 freeze / resume 指南及一条过时的快照耗时说明（#1913）。
