Sandbox 的公网 IP 是什么?如何做 IP 白名单?
Sandbox 网络架构说明:
- 无独立公网 IP:Sandbox 通过 NAT 网关访问公网
- 出口 IP:
124.220.213.124(所有 Sandbox 共享此出口 IP)
IP 白名单配置:
- 在您的服务器安全组中添加入站规则:允许
124.220.213.124
- 如需更严格限制,建议结合 API Key 认证
Sandbox 支持 WebRTC / UDP 协议吗?
当前协议支持情况:
- ✅ 支持:HTTP/HTTPS 协议(标准 Web 服务)
- ❌ 不支持:UDP 协议、WebRTC 原生支持
替代方案:
- WebRTC 可考虑使用 TURN 服务器中转
- 如需 UDP 支持,建议使用 GPU 实例部署自定义环境
配额与计费
暂停的 Sandbox 是否占用配额?
| 状态 | 是否占用配额 | 费用情况 |
|---|
| 运行中 | ✅ 占用 | 正常计费 |
| 暂停 | ❌ 不占用配额 | 仅收取存储费用(如有) |
| 暂停数量 | 无硬性上限 | 存储费用会累积 |
长期不用的 Sandbox 建议释放而非暂停,避免存储费用持续累积。
Sandbox 与 GPU 实例有什么区别?
| 对比项 | Sandbox | GPU 实例 |
|---|
| 适用场景 | Agent 代码执行、代码解释器、CI/CD | 模型训练、推理部署、长时间 GPU 任务 |
| 启动速度 | 秒级(毫秒级冷启动) | 分钟级(需拉取镜像) |
| GPU 支持 | 不含 GPU | 含 GPU |
| 计费方式 | 按使用时长(秒级精度) | 按量或包年包月 |
| 持久化 | 支持 Snapshot 持久化 | 系统盘/本地盘/云存储 |
| 网络隔离 | 共享出口 IP | 支持独享 IP(需申请) |
Sandbox 支持哪些运行时环境?
Sandbox 默认提供以下预装环境:
- Python:3.11(含 pip)
- Node.js:18.x(含 npm)
- 系统工具:curl、wget、git、unzip 等常用工具
如需其他版本或环境,可通过自定义模板构建专属镜像。
如何在 Sandbox 中安装依赖包?
在 Sandbox 内通过终端命令安装依赖,安装完成后可通过 Snapshot 持久化保存:
from ppio_sandbox import Sandbox
with Sandbox() as sandbox:
# 安装 Python 包
sandbox.commands.run("pip install pandas numpy matplotlib")
# 验证安装
result = sandbox.commands.run("python -c 'import pandas; print(pandas.__version__)'")
print(result.stdout)
from ppio_sandbox import Sandbox
with Sandbox() as sandbox:
# 安装 Node.js 包
sandbox.commands.run("npm install axios lodash")
# 验证安装
result = sandbox.commands.run("node -e 'const axios = require(\"axios\"); console.log(\"ok\")'")
print(result.stdout)
每次创建新的 Sandbox 实例时,安装的依赖会重置。如需持久化依赖,建议创建自定义模板将依赖预装到镜像中。
SDK 与 API
SDK 与 E2B 是什么关系?
PPIO Sandbox SDK 兼容 E2B API,您可以将 E2B 的调用代码无缝迁移到 PPIO Sandbox,只需修改 base URL 和 API Key:
# 原 E2B 调用
from e2b_code_interpreter import Sandbox
sandbox = Sandbox(api_key="e2b_xxx")
# 迁移到 PPIO Sandbox
from e2b_code_interpreter import Sandbox
sandbox = Sandbox(
api_key="your_ppio_api_key",
# 指向 PPIO 端点
)
详细迁移说明请参见 E2B 兼容指南。