> ## Documentation Index
> Fetch the complete documentation index at: https://ppio.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 常见问题

> Agent 沙箱服务使用过程中的常见问题解答，涵盖网络、配额计费、SDK 使用等方面。

<Tip>
  在使用过程中遇到任何问题，欢迎随时[联系我们](https://ppio.com/contact)。
</Tip>

## 网络

### Sandbox 的公网 IP 是什么？如何做 IP 白名单？

Sandbox 网络架构说明：

* **无独立公网 IP**：Sandbox 通过 NAT 网关访问公网
* **出口 IP**：`124.220.213.124`（所有 Sandbox 共享此出口 IP）

<Warning>
  该 IP 可能变化，如有变化客服会提前通知。
</Warning>

IP 白名单配置：

* 在您的服务器安全组中添加入站规则：允许 `124.220.213.124`
* 如需更严格限制，建议结合 API Key 认证

### Sandbox 支持 WebRTC / UDP 协议吗？

当前协议支持情况：

* ✅ **支持**：HTTP/HTTPS 协议（标准 Web 服务）
* ❌ **不支持**：UDP 协议、WebRTC 原生支持

替代方案：

* WebRTC 可考虑使用 TURN 服务器中转
* 如需 UDP 支持，建议使用 GPU 实例部署自定义环境

## 配额与计费

### 暂停的 Sandbox 是否占用配额？

| 状态   | 是否占用配额  | 费用情况        |
| ---- | ------- | ----------- |
| 运行中  | ✅ 占用    | 正常计费        |
| 暂停   | ❌ 不占用配额 | 仅收取存储费用（如有） |
| 暂停数量 | 无硬性上限   | 存储费用会累积     |

<Tip>
  长期不用的 Sandbox 建议释放而非暂停，避免存储费用持续累积。
</Tip>

### 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-template)构建专属镜像。

### 如何在 Sandbox 中安装依赖包？

在 Sandbox 内通过终端命令安装依赖，安装完成后可通过 Snapshot 持久化保存：

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    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)
    ```
  </Tab>

  <Tab title="Node.js">
    ```python theme={null}
    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)
    ```
  </Tab>
</Tabs>

<Note>
  每次创建新的 Sandbox 实例时，安装的依赖会重置。如需持久化依赖，建议[创建自定义模板](/sandbox/sandbox-template)将依赖预装到镜像中。
</Note>

## SDK 与 API

### SDK 与 E2B 是什么关系？

PPIO Sandbox SDK 兼容 E2B API，您可以将 E2B 的调用代码无缝迁移到 PPIO Sandbox，只需修改 base URL 和 API Key：

```python theme={null}
# 原 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 兼容指南](/sandbox/e2b-compatible)。
