Skip to main content
Tailscale 可以将 PPIO Sandbox 接入你的私有 tailnet,使 Sandbox 能够安全地访问网络中的其他设备,也能被其他设备访问。请使用 tailscale 模板创建 Sandbox,该模板已预装 Tailscale,开箱即用。 本指南介绍三种将 Sandbox 接入 tailnet 的方式:
  • 浏览器登录——运行 tailscale up,在浏览器中打开输出的登录 URL 以授权该 Sandbox,即可加入你的 tailnet。适合交互式的一次性配置。
  • Tailscale auth key——使用预先生成的 auth key 非交互式接入。适合自动化脚本、CI/CD 流水线或任何无法手动操作浏览器的场景。
  • 手动安装——当你从 tailscale 之外的模板(如 base)启动时,需要自行安装 Tailscale 并应用所需的 workaround。

前置条件

  • pip install ppio-sandbox(或 npm i ppio-sandbox
  • export PPIO_API_KEY=...
  • 一个用于授权登录的 Tailscale 账号

浏览器登录

在前台运行 tailscale up 且不设超时。命令会阻塞并打印一个登录 URL;在浏览器中打开该 URL 完成授权,sandbox 连接成功后命令返回。随后读取分配到的 Tailscale IP。

Tailscale auth key

使用 auth key 可以以非交互方式将 PPIO sandbox 接入 Tailscale,适合自动化脚本、CI/CD 流水线或任何无法手动操作浏览器的场景。
  1. 进入你的 Tailscale 管理控制台
  2. 点击 Add device 并选择 Linux server
  3. 应用配置并点击 Generate install script
这会生成一段脚本,用于安装 Tailscale 并接入 Tailscale 网络:
通过 SDK 在 sandbox 内运行该命令。由于 auth key 以非交互方式登录,无需浏览器步骤。

手动安装

tailscale 模板已包含 Tailscale 及下文所述的 workaround,因此浏览器登录开箱即用。如果你从其他模板(如 base)启动,则需要自行安装 Tailscale 并应用该 workaround,tailscale up 才能正常工作。
**为什么需要这些额外步骤?**sandbox 的 eth0 使用链路本地地址(169.254.x.x)。Tailscale 的 isUsableV4 检查会将链路本地地址视为”不可用于访问互联网”——但在 AWS Lambda / Azure App Service 环境中除外。因此 tailscaled 会报告 network is down,tailscale up 一直挂起且不会打印登录 URL。解决办法是注入四个 AWS_LAMBDA_* 环境变量,让 tailscaled 以为自己运行在 AWS Lambda 中,从而使 isUsableV4 接受链路本地地址。
最后修改于 2026年9月7日