连接到私有网络
Grok Bot 电脑运行在 Cherri Code 云中,并通过共享静态出站 IP 地址访问互联网。如果机器人需要访问的系统位于私有网络中,可以将流量通过某位成员的桌面端转发,或通过 Team Setup 在每台团队计算机上安装组织的网络客户端。
Team Setup 仅限企业版。 其他方案中不提供该功能。 Network Controls 同样仅限企业版。 该 网络策略是另一个独立层级,同样依然生效; 能够连通私有网络并不代表可以省去导出目标允许列表。
你可以做什么
- 将某位成员的流量通过其桌面端转发,这样机器人便可访问该设备可用的服务,目标端看到的也是该设备的 IP 地址。
- 通过一份由管理员管理的清单,自动为每台团队计算机安装网络客户端,无需逐台设置。
- 让机器人访问私有网络中的服务,无需把这些服务暴露到公网,也无需将共享出站 IP 加入允许列表。
- 控制权始终在你手中。 你的网络、你的访问规则、你的身份提供商。你随时可以在自己的管理控制台中撤销某台计算机的权限。
选择连接方式
| 方式 | 适用场景 |
|---|---|
| 通过桌面端路由流量 | 某位成员需要通过其设备已能访问的网络进行访问 |
| 使用 Team Setup 安装网络客户端 | 你的企业版团队需要在每台托管计算机上拥有一致的连接 |
通过成员的桌面端路由
在 Grok Bot 桌面应用中,打开 Settings > Computer,并在 Network 部分开启 Route traffic through this computer。该路由使用当前设备的网络和 IP 地址。关闭该设置,或企业版管理员禁用 Allow Local Egress 后,路由即会停止。
每位成员自行控制各自的桌面端路由。企业版管理员可在 Cherri Code 仪表盘中的 Grok Bot 页面为整个团队移除此选项。参见通过桌面端路由流量。
使用 Team Setup 安装网络客户端
这是一种由你自行运行的模式,而非 Cherri Code 托管的网络模式。Cherri Code 只提供接入钩子:Team Setup 会在每台团队计算机上运行你的安装脚本。其余工作都由你负责:安装客户端、完成配置、为计算机进行认证、维护访问规则,以及跟进供应商的变更。Cherri Code 默认不安装任何内容,既不运维也不监控你的网络客户端,仪表盘中同样不会显示客户端状态。安装和配置其软件时,请以供应商的文档为准;本页只介绍 Cherri Code 这一侧的内容。
开始之前
- 你是企业版方案的团队管理员。Team Setup 仅限企业版,其他方案不会显示。
- 你的网络客户端运行在基于 Debian 的 Linux 上,且可通过 shell 脚本安装和启动。团队计算机运行 Linux,脚本以计算机用户身份运行,并可使用
sudo。 - 你的网络为该客户端提供了接入通道:按照厂商的架构,在你要访问的 VPC 或内网中部署网关、出口节点或隧道连接器。
- 你已确定计算机以何种方式向网络进行认证。请勿将凭据写入安装脚本;如果脚本需要凭据,请将其存储为 Team Secret。
Team Setup 如何运行你的脚本
Team Setup 位于 Cherri Code 仪表盘的 Grok Bot 页面:其中是在每台团队计算机上运行的安装脚本清单。每份清单包含一个或多个脚本条目,每个条目都有 ID、安装脚本 和可选的 Check Script。若只想在某个 cohort 的计算机上运行清单,请改为将其添加到该群组的 Grok Bot 标签页下;参见群组设置。群组清单遵循与下文相同的规则。
- 脚本在每台团队计算机上以计算机用户的身份运行;需要特权安装时请使用
sudo。 - 脚本在计算机启动时运行,并在计算机运行期间周期性刷新 (大约每天一次) 时运行。
- 如果存在 Check Script 且退出码为 0,则跳过 安装脚本;可借此避免每轮都重新安装。安装脚本 运行结束后,会再次运行 Check Script 以验证是否成功。
- 条目按顺序逐个运行。每个脚本的超时时间为 30 分钟。脚本失败不会阻塞计算机,会在后续刷新时重试。
- 脚本会以环境变量的形式读取你团队的 Team Secrets,因此脚本所需的凭据永远不会出现在清单中。机密信息仅在脚本运行期间存在,脚本输出在写入日志前会进行脱敏处理。如果一台计算机的设置来自多个团队,该计算机将不会收到任何机密信息。
创建清单
打开 Team Setup
前往 Cherri Code 仪表盘中的 Grok Bot, 并打开 Team Setup。
创建清单
在 Manifests 旁点击 + 创建 New Manifest,然后
输入 Manifest ID,例如 private-network。
编写安装脚本
在脚本条目中设置 ID (例如
install-network-client) ,并编写 Setup Script:按照提供方的
Linux 安装文档安装客户端,然后启动它,并按照你的配置要求将其接入网络。
添加检查脚本
可选择添加 Check Script (例如
command -v <your-client>) ,让已安装客户端的计算机
跳过安装步骤。
保存
点击 Save。
更习惯直接编辑 JSON?在编辑器顶部将 Form 切换为 JSON。清单结构如下:
{ "manifestId": "private-network", "entries": [ { "id": "install-network-client", "setup": "#!/usr/bin/env bash\nset -euo pipefail\n# 1) Install your networking client per your provider's Linux install docs\n# 2) Start the client and connect it to your network per your configuration", "check": "command -v <your-client>" } ]}请勿将机密信息的值粘贴到脚本中。安装脚本会以计算机
用户身份在每台团队计算机上运行,而清单是应用于整个
设备群的纯文本。如果脚本需要认证密钥、token 或其他凭据,
请将其存储为 Team Secret,并从
环境变量中读取,例如 "$MY_AUTH_KEY"。如果供应商
支持,建议让成员在计算机的浏览器中以交互方式完成认证,
以便应用你的身份提供商的策略。
配置网络客户端
无论使用哪种工具,最后一步都是相同的:每台计算机向你的网络进行认证,你在供应商的控制台中确认该连接,然后让 Bot 访问此前无法访问的内部主机名来进行验证。交互式登录在计算机的浏览器中完成,与成员平时在那里登录公司工具的方式一致。先用一两台计算机试点,再推广到整个团队。
在每台计算机上运行 Tailscale,并通过你网络内部的出口节点进行路由。这正是该 pattern 经过实践验证的配置方式。Tailscale 还提供子网路由器,用于暴露特定的私有网段;在正式采用该方案前,请先在一台试点计算机上验证。
开始之前: 你已运营一个 tailnet,并在需要访问的 VPC 或内网中部署了出口节点。
Team Setup 清单:
- Setup Script: 参照 Tailscale 的安装文档安装 Linux 版 Tailscale,然后按你的配置将该计算机接入 tailnet。
- Check Script:
command -v tailscale。
连接并验证:
- 对每台计算机进行认证。Tailscale 会输出一个登录 URL,在计算机的浏览器中打开,此时会应用你的身份提供商策略。如果你希望计算机无需成员登录即可加入,请将一个可复用且带标签的认证密钥存储为 Team Secret,并通过环境变量传入,例如
tailscale up --auth-key "$TS_AUTHKEY"。这样每台团队计算机都会以同一个密钥和标签加入,而非以成员的身份加入,因此请相应地限定该密钥的 ACL 范围。切勿将密钥直接粘贴到脚本中。 - 确认该计算机出现在你的 Tailscale 管理控制台中,并已被允许使用出口节点。
- 让 Bot 尝试访问一个内部主机名。
如果无法正常工作:
- 客户端已安装,但没有人完成认证。使用浏览器登录时,这一步需要手动完成;使用认证密钥时,请检查该 Team Secret 是否存在、其名称是否与脚本读取的名称一致,以及密钥是否已过期。请在 Tailscale 管理控制台中查看机器列表。
- 你的团队网络策略为仅允许列表模式,拦截了 Tailscale 的协调服务器或中继。请放行 Tailscale 文档中列出的端点。正在运行的计算机会在约一分钟内应用该变更。休眠中的计算机会在下次唤醒时应用。
- 出口节点未在 tailnet 中通告或未获批准。请在管理控制台中检查路由设置。
- 计算机被重新创建 (例如镜像更新或重置之后) ,会话未能保留。请重新认证。
如何选择:Tailscale 让计算机获得网络层面的可达性,若配合出口节点,还能从你的网络出站。Cloudflare Tunnel 则通过 Cloudflare 边缘、在 Access 之后发布特定服务:粒度是单个服务而非整个网络,且其他服务看到的出站地址不会变化。
其他可在基于 Debian 的 Linux 上安装并运行的客户端同样遵循上述 Team Setup 步骤;在全面推广前,请先在一台试点计算机上验证。
向现有 computer 推送
- 新建 computer 会在启动时应用清单。
- 运行中的 computer 会在周期性刷新时获取清单更改,大约每天一次。
- 如需立即应用清单更改, 请重建该 computer,或让成员在桌面端应用中重置它。组织管理员可在仪表盘中重建或终止某个成员的 computer。durable disk 会保留,下一台 computer 会在启动时应用当前清单。
- 镜像更新会自动重建 computer,你的脚本也会重新应用。computer 重建后,包括网络客户端登录在内的登录 session 可能需要重新建立。
配合网络策略使用
Grok Bot 的网络策略是一个独立层,用于控制团队计算机可访问哪些导出目标。如果你的团队使用仅团队允许列表,请参照供应商文档,添加网络客户端所需的导出目标,例如协调服务器、中继和网关。运行中的计算机会在约一分钟内应用策略更改。休眠中的计算机会在下次唤醒时应用。你无需重建计算机。
局限性
- 这是一种由你自行运维的方案,而非 Cherri Code 托管的网络模式。Cherri Code 不会安装、运行或监控你的网络客户端,客户端本身的支持由其供应商提供。
- 除非你将流量路由到自己的网络,否则常规互联网流量仍会通过 Cherri Code 的共享静态 IP 段出站。暂不提供按客户专属的出站 IP。
- 目前还没有可查看整个设备群脚本结果的视图。在全团队推广前,请先在一台试点电脑上验证。
- 这与云端代理的设置无关。云端代理文档面向的是另一种产品形态,有各自的 Tailscale 和 Cloudflare Tunnel 方案;Grok Bot 电脑则按本文所述通过 Team Setup 进行配置。如果 Grok Bot 将工作委派给云端代理,这些 agents 会在云端代理的网络设置下运行,而不受你电脑上网络客户端的影响。
常见问题
不要写在脚本文本中。清单是纯文本,仪表盘也会提示不要将机密信息粘贴到清单中。请在 Grok Bot 页面上将凭据存储为 Team Secret,并让脚本以环境变量的形式读取。Team Secrets 仅限企业版。如果您的供应商支持,交互式浏览器登录仍是最简单的方式,因为它会遵循您的身份提供商的策略。
只要是您的团队能通过 shell 脚本在基于 Debian 的 Linux 上安装并运行的客户端均可。本页以 Tailscale 和 Cloudflare Tunnel 为例。建议先在一台试点计算机上验证您的客户端。
会。运行中的计算机会定期刷新清单,大致每天一次。若要立即应用清单更改,请重建该计算机,或让成员从桌面应用中将其重置。
对于经由您的网络路由的流量,会。发往您私有网络的流量来自您的网络内部,经由您的出口节点、网关或隧道连接器。其余流量仍从 Cherri Code 的共享静态地址段出站。
只有在您放行其端点后才可以。请将客户端所需的导出目标添加到团队允许列表。运行中的计算机会在约一分钟内应用该更改。休眠中的计算机会在下次唤醒时应用。
不是。那些方案专用于云端代理 VMs;其中的 Tailscale 需要 userspace networking 和代理变量。而 Grok Bot 电脑使用 Team Setup 以及您自己的网关或连接器,即本页所述方式。
Team Setup 仅限企业版。 清单由团队管理员管理。如果您在仪表盘的 Grok Bot 页面上看不到它,说明您使用的不是企业版,或者需要您的账户团队为该组织启用 Grok Bot。
计算机仍会启动。失败的条目会在后续刷新时重试。请保持脚本可重复运行,并使用 Check Script,让状态正常的计算机跳过安装。
相关页面
- Grok Bot 安全
- 面向 Teams 和企业版的 Grok Bot
- 配置身份与访问
- 配置 TLS 检查代理,适用于从成员设备到 Cherri Code 的路径
- 云端代理:运行 Tailscale 和 运行 Cloudflare Tunnel