一、相关对象
| 对象 | 说明 |
| Sandbox Instance | 终端附着的运行中实例。 |
| 终端页 | 控制台前端页面,携带地域和实例标识,用于建立终端连接。 |
| 实例访问令牌 | 默认鉴权模式下,终端页在建立连接前申请的短期访问令牌。 |
| 终端会话 | 终端页为当前实例创建的交互式 Shell 会话。 |
二、终端页 URL
点击登录实例后,控制台跳转到以下路由:
/sandbox/sandbox/terminal-connect?rid=<regionId>&sandboxId=<sandboxId>&instanceId=<instanceId>[&authMode=<authMode>]
参数说明:
| 参数 | 必填 | 说明 |
| rid | 是 | 地域 ID。缺失时页面无法建立终端连接。 |
| sandboxId | 否 | Sandbox ID。控制台通常会携带该参数,用于从终端页返回对应的 Sandbox 详情页。缺失时不影响终端连接,但返回路径可能无法定位到原详情页。 |
| instanceId | 是 | 目标 Instance ID。缺失时页面无法建立终端连接。 |
| authMode | 否 | 鉴权模式。值为 NONE 时跳过令牌申请,直接建立连接。 |
示例:
/sandbox/sandbox/terminal-connect?rid=1&sandboxId=sb-7f3a2c&instanceId=asd-asd-sad-4f1b2d9a&authMode=NONE
三、连接流程
1. 在实例列表或详情页点击登录实例。
2. 控制台确认 Instance 状态为 RUNNING,否则不显示登录入口。
3. 终端页读取 rid、instanceId 和可选的 sandboxId、authMode。
4. authMode=NONE 时跳过令牌申请,直接进入连接阶段;其他情况下先为当前实例申请访问令牌。
5. 连接建立后,页面进入已连接状态,持续显示终端输出。
访问令牌的有效期以服务端实际返回为准,控制台不对 token 有效时长做固定承诺。
四、终端会话行为
终端页会为当前实例创建一个交互式 Shell 会话,具体行为如下:
| 行为 | 说明 |
| 会话类型 | 带终端能力的交互式 Shell。 |
| 窗口自适应 | 创建会话时按当前终端窗口大小初始化。 |
| 输入输出 | 用户输入发送到当前会话,终端输出持续显示在页面中。 |
| 会话隔离 | 每次进入终端页都创建新的终端会话,不复用已有会话。 |
五、终端尺寸调整
终端页加载后会执行一次自适应排版,并在浏览器窗口尺寸变化时重新计算列数和行数,将最新尺寸同步到当前终端会话。
如果尺寸同步连续失败,页面会在终端区域提示异常,但不会销毁当前会话。
六、Shell 正常结束
用户执行 exit 或 Shell 以其他方式正常结束时,页面显示会话结束状态并自动返回 Sandbox 详情页。
七、连接异常结束
终端连接在建立后中断时,页面将状态切换为已断开;创建会话或建立连接时出现错误,页面直接显示连接失败。
当前页面不会自动重连,也不会恢复之前的终端会话。如需继续使用终端,应重新点击登录实例,由控制台创建新的会话。
用户点击返回或直接离开页面时,当前终端会话结束,页面随后清理连接资源。
八、使用限制
| 限制 | 说明 |
| 仅支持运行中实例 | Instance 状态为 RUNNING 以外时,登录入口不可见。 |
| 部分沙箱类型不支持终端 | mobile、android-world、osworld 类型不显示登录入口。 |
| rid 与 instanceId 缺一不可 | 缺少任一参数时页面直接报错,无法建立连接。 |
| 鉴权模式影响前置步骤 | authMode=NONE 跳过令牌申请;其他模式需先获取访问令牌。 |
| 不支持自动重连 | 连接中断后需重新进入终端页,无法恢复原会话。 |