概述
终端连接用于在浏览器中进入 Sandbox Instance 的交互式 Shell,适用于调试、查看日志或直接操作沙箱内文件系统等场景。
只有 Instance 状态为
RUNNING 时,控制台才会显示登录实例入口。mobile、android-world 和 osworld 类型的沙箱当前不支持终端连接。相关对象
对象 | 说明 |
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 跳过令牌申请;其他模式需先获取访问令牌。 |
不支持自动重连 | 连接中断后需重新进入终端页,无法恢复原会话。 |