mcpField
T
tailscale-setup

tailscale-setup

github.com/cursor云与 DevOps15.0k43 次安装1 天前更新
代码仓库

关于 tailscale-setup

为 Grok Bot 配置 Tailscale 连接的操作指南,面向需要让 Bot 访问 tailnet 内 MCP 服务的成员和管理员。内容涵盖公司与个人 tailnet 的接入、访问策略、服务器添加及故障排查。

主要功能

  1. 01连接公司或个人 tailnet
  2. 02配置设备姿态与访问策略
  3. 03按 tailnet 添加 MCP 服务
  4. 04管理默认 tailnet 与连接
  5. 05排查认证和网络访问问题

适用场景

  1. 01让 Grok Bot 访问 tailnet 内 MCP 服务
  2. 02限制公司设备可访问的服务器
  3. 03切换个人 tailnet 并排查连接

MCP 相关

指导通过 Tailscale 连接并访问 tailnet 中的 MCP 服务,说明如何按主机名和端口设置访问策略。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cursor/plugins --skill tailscale-setup

安装后在 Claude Code 中输入/tailscale-setup确认已加载。

详细介绍

Grok Bot 的 Tailscale 设置

Grok Bot 桌面版只有一个 Tailscale 栏目:Connect apps → Your plugins → Tailscale。每个 tailnet 对应一个槽位,标签先显示 tailnet 名称,然后显示 Personal 或团队名称,最后显示 .ts.net 地址。

成员可以同时连接多个公司 tailnet,每次只能连接一个个人 tailnet。他们可以添加更多个人 tailnet,但只能有一个处于启用状态;要切换时,将另一个设为默认即可,当前 tailnet 会暂停。使用 tailnet 的 .ts.net 名称访问的地址会连接到该 tailnet。短名称或 100.x 地址会连接到成员的默认 tailnet。成员可以向 Grok Bot 提出请求来更改默认 tailnet。

Grok Bot 在移除设备、添加 tailnet 或更改默认 tailnet 前,会显示 Allow/Deny 卡片。请等待并点击 Allow。

通过此栏目访问 tailnet MCP 服务。更换运行机器时,该机器上安装的 Tailscale 客户端会被清除。

每个 tailnet 使用一条连接路径。

公司 tailnet

团队管理员在 cursor.com 的 Integrations → Tailscale 中一次性启用此功能。在 Enable Tailscale 对话框中,输入 tailnet 名称或点击 Sign in to Tailscale,勾选 Members' Grok Bot devices may join this tailnet,然后点击 Enable。该 tailnet 需要 Tailscale Premium 或 Enterprise。

每位成员都会获得自己的 Grok Bot 设备,该设备带有 custom:grokbot 属性。使用 posture 限制该设备。如果没有设置 posture,该设备将拥有成员本人的访问权限。

将以下键合并到现有策略文件中。如果策略中已有默认 postures,请在每个 posture 中添加 "custom:grokbot NOT SET",并保持 defaultSrcPosture 不变。

{
  "postures": {
    "posture:grokbot": ["custom:grokbot == true"],
    "posture:human": ["custom:grokbot NOT SET"],
  },
  "defaultSrcPosture": ["posture:human"],
  "grants": [
    {
      "src": ["group:[email protected]"],
      "srcPosture": ["posture:grokbot"],
      "dst": ["tag:mcp-servers"],
      "ip": ["tcp:443"],
    },
  ],
  "tests": [
    {
      "src": "[email protected]",
      "srcPostureAttrs": {"custom:grokbot": true},
      "accept": ["tag:mcp-servers:443"],
    },
  ],
}

请使用真实的组名,以及 MCP 服务所在设备的标签或主机名和监听端口。测试中的 src 必须是该组的成员。

成员打开该 tailnet 的槽位并点击 Authenticate。如果 tailnet 要求设备审批,管理员需在 Machines 页面批准 grokbot- 设备。

个人 tailnet

如果成员尝试登录其团队列为公司 tailnet 的 tailnet,系统会拒绝。请为该 tailnet 使用公司槽位。

如果成员拥有或管理该 tailnet,并且支持一键连接,点击 Authenticate 后会进入 Tailscale 的授权页面,设备随即即可使用。该设备未加标签,并拥有所有者的访问权限。若要仅授予对特定 MCP 服务的访问权限,请改用标签路径。

否则,请定义 tag:grokbot,仅授予其访问 MCP 服务的权限,然后使用该标签登录。合并到策略文件中:

{
  "tagOwners": {
    "tag:grokbot": ["autogroup:admin"],
  },
  "grants": [
    {
      "src": ["tag:grokbot"],
      "dst": ["mcp-server.tail1234.ts.net"],
      "ip": ["tcp:443"],
    },
  ],
}

tagOwners 必须包含要登录的用户,或 autogroup:admin。请使用真实的主机名和端口。如果策略仍保留默认的全允许规则,tag:grokbot 就能访问所有设备;请说明这一点并收紧授权范围。

使用者

在个人 tailnet 上,只有机器人所有者的消息、已关联的队友,以及所有者安排的例行任务可以使用。在公司 tailnet 上,只有该成员自己的 Grok Bot 对话、Slack 私信和该成员安排的例行任务可以使用。Slack Connect 频道绝不会使用 tailnet。将成员从团队中移除会使设备退出登录。

添加 MCP 服务

使用 tailnet 上的 http:// 或 https:// 地址添加服务,也可以在用户提出请求时添加。如果服务应使用该 tailnet,请填写完整的 name.tailnet.ts.net 主机名。短名称或 100.x 地址会使用默认 tailnet。拆分 DNS 名称和子网路由地址使用端口 443 上的 HTTPS。

故障排除

  • 账号或 tailnet 错误:请重新登录。
  • 链接或设备已过期:请重新进行身份验证。公司设备遵循 tailnet 的密钥过期设置。
  • **“Your tailnet hasn't allowed Grok Bot's Tailscale app”:**tailnet 管理员允许该应用,然后成员重新连接。
  • “Tailscale refused the sign-in key for your company tailnet”:公司登录需要使用支持自定义节点属性的套餐(Tailscale Premium 或 Enterprise)。将 tailnet 升级到其中一个套餐,然后重新进行身份验证。
  • **无法连接到服务:**检查完整的 .ts.net 名称是否与默认 tailnet 一致、针对该主机和端口的策略授权、拆分 DNS 和子网路由(请联系用户的 Cursor 联系人启用),以及证书。不会跟随指向 Tailscale 地址的公共 DNS 名称;请使用 MagicDNS 名称或拆分 DNS。
  • **从另一个 tailnet 共享过来的设备:**无法通过名称访问;请使用其 100.x 地址,并将接收方 tailnet 设为默认值。
  • 使用内部证书的服务:团队管理员在集成 → Tailscale中添加 CA(请联系用户的 Cursor 联系人启用)。

评论

支持 Markdown