SuperAPI AI 工具集

tailscale

部署与运维

查看项目

更新于 10-22 20:09

技能介绍

Tailscale worker 用于在 Console 主机上驱动已安装的 tailscale CLI,将其功能暴露为类型化函数,并提供 Console 页面。每个函数返回结构化数据,并剥离密钥、机密和能力映射;所有会改变网络可达性或节点行为的命令都需要审批。

用途:

  • 查询 Tailscale 连接状态、本机 Tailscale IP 或 MagicDNS 名称、对等节点列表,以及诊断对等节点速度慢的原因(DERP 中继还是直连)。
  • 生成链接或二维码,以便在其他设备上打开 Console、本地端口、服务或目录。
  • 管理出口节点、子网路由、主机名、Shields Up、SSH、DNS、自动更新等偏好。
  • 通过 Taildrop 发送文件或从收件箱收集文件,为本节点获取 HTTPS 证书,切换账户,检查 tailnet lock,或更新客户端。

主要能力(函数分组):

  • 节点与会话:status、configuration、connect、disconnect、login、logout、version、ip、netcheck、ping、whois、dns::status、dns::query。
  • 对等节点与偏好:peers::list、exit-node::list、exit-node::suggest、exit-node::set、prefs::get、prefs::set。
  • 发布:share、share::stop、serve::list、serve::add、serve::remove、serve::reset。
  • 文件与证书:file::targets、file::send、file::receive、cert、drive::list、drive::share、drive::unshare。
  • 管理:lock::status、accounts::list、accounts::switch、update、bugreport、metrics。

使用方式: 要求主机已安装 Tailscale;多数函数还需要节点已登录并连接。读取函数(status、peers::list、netcheck、ping、whois、dns::*、prefs::get、serve::list、exit-node::list 等)默认允许。其他会改变节点或网络的函数需审批,每个操作单独询问,不要替用户连续批准。发布有两种可见性:Serve 仅 tailnet 内可访问,请求携带 Tailscale 身份头;Funnel 公开,任何拥有链接的人均可访问,不携带身份头,仅支持 443/8443/10000 端口,且需要在 worker 配置中启用 allow_funnel 并在请求中确认 confirm_public。停止 Funnel 路由会移除公开访问但保留 tailnet 路由;停止 Serve 路由则完全移除。除非以 confirm=true 调用 serve::reset,worker 不会运行 serve reset 或 funnel reset。

适用场景:

  • 检查 Tailscale 是否连接、查看 tailnet 设备、获取本机 IP 或 MagicDNS 名称、诊断对等节点连接质量。
  • 生成链接或二维码以在其他设备访问 Console 或本地服务。
  • 配置出口节点、子网路由、主机名、Shields Up、SSH、DNS、自动更新。
  • 使用 Taildrop 传输文件、获取 HTTPS 证书、切换账户、检查 tailnet lock、更新客户端。

限制:

  • 没有用户明确同意时,不得以 funnel 模式公开任何内容,并需说明任何拥有链接的人均可打开。
  • Funnel 需要一次性 tailnet 管理员批准;在完成前,share/serve::add 返回 stage: authorization_required 及批准 URL。
  • 当存在非默认偏好时 tailscale up 会拒绝标志,因此 connect 以裸命令运行;更改偏好应使用 prefs::set,不要通过重连更改。
  • macOS GUI 应用会拒绝 Taildrive 命令(它自行管理 Taildrive 设置),在那里会报错。
  • serve::add 目标必须是本地端口、回环 URL 或绝对路径;file::send 路径和证书输出路径必须是绝对路径。
  • worker 不运行 tailscale ssh、nc 或 web,也不编辑 tailnet 策略文件。