作者:王屹
远程开发需要连接 SSH,图形化调试需要访问 VNC,自动化测试可能需要与数据库或 Android 调试服务通信。当 AI Agent 的任务从执行一段代码,扩展到操作完整的开发与测试环境,沙箱也需要支持更多原生工具的接入。
阿里云智能体沙箱 Agent Sandbox 极速版通过四层(L4)网络直连,为沙箱内的 TCP 服务提供 VPC 内可访问的 IP 和端口。开发者可以沿用熟悉的客户端连接沙箱服务,减少额外的协议适配工作;平台则通过复用网络接入资源,让网络准备更好地适应沙箱快速创建与回收的特点。
一、让原生工具接入弹性沙箱
沙箱既可以执行代码,也可以运行持续提供服务的进程。HTTP 和 WebSocket 适合 Web 应用、HTTP API 及浏览器交互,但 SSH、原生 VNC 和数据库客户端通常需要直接建立 TCP 连接。通过额外的代理或协议适配也能接入这类服务,不过开发者需要承担相应组件的部署、连接维护与排障工作。
L4 网络直连将接入方式简化为熟悉的「IP + 端口」:沙箱运行应用并发布服务端口,客户端从网络可达的业务环境发起 TCP 连接,应用继续使用自身协议完成通信。
这里的「直连」指客户端可直接使用原生 TCP 协议访问服务。业务流量仍由平台网络设施转发,开发者无需自行将 SSH、VNC 等协议封装为 HTTP 或 WebSocket。
这一能力补充了沙箱的服务接入方式,让开发调试、交互式桌面和自动化测试可以复用现有工具与工作流程。
二、网络接入如何适应沙箱的弹性
沙箱的生命周期通常由任务决定。一套开发环境可能运行数小时,一批测试环境则可能在短时间内反复创建和销毁。网络接入需要同时满足快速准备、资源利用和准确转发的要求。
首先是网络准备的开销。如果每个沙箱都独立创建和挂载弹性网卡,批量启动时,网络资源操作、接口限流及排队可能延长服务就绪时间。对于短时任务,这部分等待会占据更明显的比例。
其次是部署密度。逐实例配置独立网卡会受到节点可挂载网卡数量等资源限制。即使计算资源仍有余量,网络接入资源也可能先成为扩容约束。
还需要处理实例变化与服务入口的对应关系。沙箱退出或重建后,原有入口不能继续指向已经失效的实例;内部地址被回收复用时,旧映射也必须得到妥善处理,避免流量被送到错误的目标。
这些问题指向同一个设计思路:让网络接入资源与沙箱实例按各自的生命周期管理,并持续维护两者之间的服务映射。
三、以共享接入承载原生 TCP 服务
L4 网络直连采用共享网络接入与服务端口映射相结合的方式。同一网络配置下的多个沙箱可以复用已准备好的接入资源,平台为需要访问的应用端口建立对应关系,将客户端连接转发到目标沙箱服务。
从使用者视角看,访问关系可以概括为:
业务客户端 ⇄ VPC 内访问入口(IP + 端口)⇄ 沙箱应用服务
这是一条逻辑访问关系,平台在其中完成服务定位与双向流量转发。
复用接入资源,减少重复准备
同一网络环境下连续创建沙箱时,实例和应用端口不断变化,而 VPC 等接入条件往往可以复用。平台复用已就绪的网络资源,将更多实例变化交由服务映射管理,减少重复创建、挂载网卡带来的开销。
共享接入也减轻了独立网卡数量对沙箱部署密度的约束,为计算资源的利用提供更大空间。首次使用时仍需完成网络资源准备,实际承载能力也受带宽、连接数和可用端口等容量约束。
分离访问入口与运行位置
沙箱的运行位置可能随创建、回收和重建而变化。平台通过服务映射关联访问入口与目标实例,使网络接入和计算调度可以分别管理。
开发者面向返回的访问地址连接服务,无需管理沙箱所在节点的网络细节。实例位置发生变化时,平台需要重新建立有效的转发关系;这不意味着实例重建后访问地址必然保持不变,也不意味着已有 TCP 连接能够自动延续。
让映射与实例生命周期协同
服务端口发布后,平台维护「访问入口 → 目标沙箱服务」的对应关系。实例退出或服务入口撤销时,需要同步清理失效映射,并处理清理失败与重试,避免旧入口继续指向已回收的资源。
在职责上,网络管理负责接入资源和服务映射的建立、更新与回收,数据转发负责将业务流量送达目标应用。客户端连接建立后,业务数据沿转发路径传输,资源管理链路不参与逐包处理。
这一设计以共享资源容量管理和映射维护的复杂度,换取更少的重复网络操作与更灵活的计算部署。网络转发本身仍有处理开销,需要与带宽、连接规模及可用性要求共同评估。
四、从创建沙箱到建立连接
对开发者而言,接入可以分为四个步骤:
- 配置入口网络。 创建沙箱时指定入向 VPC、交换机和安全组等网络配置,为业务环境访问沙箱服务准备接入条件。
- 启动应用服务。 在沙箱内启动 SSH、VNC 或其他 TCP 服务,并让应用监听沙箱可达的接口与端口。
- 申请访问入口。 指定目标沙箱和应用监听端口,由平台建立端口映射并返回 VPC 内可访问的 IP 和端口。
- 使用原生客户端连接。 从能够访问入口 VPC 的业务环境,使用返回的地址连接目标服务。
例如,应用在沙箱内监听端口 8080。发布该端口后,客户端使用平台返回的入口 IP 和端口访问应用,入口端口以实际分配结果为准,无需与应用监听端口相同。
入口分配成功表示相应转发规则已建立。要完成业务通信,应用仍需正常监听,客户端到入口之间的路由和安全规则也必须允许访问。
五、适用场景
远程开发与调试
在沙箱中启动 SSH 服务后,开发者可以通过 SSH 客户端或支持远程连接的 IDE 进入环境,执行命令、调试程序。任务所需的运行环境由沙箱承载,开发者继续使用已有工具。
交互式桌面
对于需要图形界面的开发和测试任务,可在沙箱中运行图形环境与 VNC 服务,通过原生 VNC 客户端访问桌面应用。这为人工调试、交互检查等环节提供了接入方式。
Android 自动化测试
在具备 Android 环境的沙箱中启用 ADB TCP 服务后,测试工具可通过分配的入口连接环境,进行应用安装、日志采集和自动化测试。连接仍需按运行环境要求完成认证或配对。
临时数据库与协议联调
在沙箱中运行测试数据库或其他 TCP 服务时,业务程序可以沿用对应的原生客户端开展联调,减少为测试环境增加协议适配层的工作。服务的认证、数据保护与生命周期管理仍需按应用要求配置。
六、使用时需要明确的边界
- 网络范围: 入口位于配置的 VPC,客户端需要具备相应的网络可达性,并满足路由和安全组规则。VPC 内访问入口不等同于公网入口。
- 协议范围: 本文介绍 TCP 服务接入。应用需监听沙箱可达的接口,客户端使用平台实际返回的 IP 和端口。
- 应用安全: 四层转发提供网络通路,应用仍负责认证、授权和加密;需要加密通信时,应使用相应的安全协议或配置。
- 连接生命周期: 连接依赖沙箱、应用服务及网络路径正常工作。客户端需要处理超时与断线重连,实例重建或休眠不等同于连接状态自动保留。
- 容量与性能: 共享接入仍受带宽、并发连接和端口等资源约束。接入准备耗时与业务通信性能是不同指标,需要结合实际工作负载评估。
七、面向更连续的交互体验
随着沙箱承载更多交互式任务,网络入口与计算生命周期的协同仍有进一步优化空间。例如,探索休眠恢复后的接入体验、完善批量服务管理,以及增强连接状态与故障诊断能力。
这些方向需要综合考虑入口资源占用、恢复耗时、客户端超时和不同协议的连接行为,属于后续探索,不代表本文所述能力已经提供相应支持。
L4 网络直连将沙箱的弹性计算能力扩展到原生 TCP 服务场景。开发者可以沿用 SSH、VNC、ADB 和数据库客户端等工具,平台则通过复用接入资源和维护服务映射,协调网络接入与实例变化,为开发、调试和测试提供更便于集成的运行环境。