Cloudflare Mesh:为AI代理提供安全私有网络连接

Cloudflare AI··作者 Thomas Gauvin

关键信息

Mesh通过WARP Connector(现称为Cloudflare Mesh节点)和Cloudflare One客户端在设备和服务之间使用抗量子加密连接。它会自动应用现有的网关策略、访问规则和设备状态检查,无需额外配置即可保护代理流量。

资讯摘要

AI代理越来越多地用于查询数据库、访问API和与家庭网络交互,但传统工具如SSH和VPN无法很好地支持自主代理。Cloudflare Mesh通过提供零信任私有网络直接连接代理到私有基础设施来解决这个问题。

它与Cloudflare One现有的SASE套件集成,用户无需采用新技术,只需使用熟悉的组件如WARP Connector和Cloudflare One客户端。该解决方案提供了对代理行为的可见性,防止内部服务暴露,并能从简单部署逐步扩展到DNS过滤、数据防泄漏(DLP)和云应用安全网关(CASB)等高级功能。

Cloudflare Mesh:为AI代理提供安全私有网络连接

资讯正文

AI代理改变了团队对私有网络访问的思考方式。你的编码代理需要查询一个测试数据库,你的生产代理需要调用一个内部API,而你的个人AI助手则需要访问运行在你家庭网络上的服务。客户端不再仅仅是人类或服务,而是自主运行的代理,它们会发出你并未明确批准的请求,而这些请求针对的是你需要保持安全的基础设施。

这些工作流程都有一个共同的根本问题:代理需要访问私有资源,但现有的工具是为人类设计的,而不是为自主软件设计的。VPN需要交互式登录,SSH隧道需要手动配置,将服务暴露在公网则存在安全风险。而且,这些方法都无法让你了解代理连接后实际在做什么。

今天,我们推出Cloudflare Mesh,用于连接你的私有网络,并为你的代理提供安全访问。我们还将Mesh与Cloudflare开发者平台集成,使Workers、Durable Objects以及使用Agents SDK构建的代理可以直接访问你的私有基础设施。

如果你已经在使用Cloudflare One的SASE和零信任套件,你已经可以访问Mesh。你不需要一种全新的技术范式来保护代理工作负载,你需要的是专为代理时代设计的SASE——这就是Cloudflare One。Cloudflare Mesh是一种新体验,设置更简单,它利用了你已熟悉的接入点:WARP Connector(现在称为Cloudflare Mesh节点)和WARP Client(现在称为Cloudflare One客户端)。这两者共同构建了一个适用于人类、开发者和代理流量的私有网络。Mesh直接集成到你现有的Cloudflare One部署中,你现有的网关策略、访问规则和设备状态检查会自动应用于Mesh流量。

如果你是一位只想为代理、服务和团队提供私有网络的开发者,Mesh就是你的起点。几分钟内即可完成设置,连接你的网络并保护流量。由于Mesh运行在Cloudflare One平台上,你可以随着时间推移逐步扩展到更高级的功能:用于细粒度流量控制的网关网络、DNS和HTTP策略;用于SSH和RDP会话管理的基础设施访问权限;用于安全网页访问的浏览器隔离;用于防止敏感数据外泄的数据防泄露(DLP)功能;以及用于SaaS安全的云应用安全代理(CASB)。你不必从第一天就规划所有这些功能,也无需在需要时进行迁移。

这不是理论。看看生态系统:提供工具访问的MCP(模型上下文协议)服务器激增,需要从私有代码仓库和数据库读取的编码代理,以及运行在家庭硬件上的个人助手。这些模式都假设代理可以访问所需资源。当这些资源位于隔离的私有网络中时,代理就无法触及它们。

这导致了三种目前难以安全实现的工作流:

从移动设备访问个人代理。你在家中的一台Mac mini上运行OpenClaw,希望从手机、咖啡店里的笔记本电脑或工作机器上访问它。但将它暴露在公共互联网上(即使设置了密码)也可能留下安全漏洞。你的代理拥有shell访问权限、文件系统访问权限,以及对家庭网络的网络访问权限。一旦配置错误,任何人都能访问它。

让编码代理访问你的预发布环境。你在笔记本电脑上使用Claude Code、Cursor或Codex,要求它检查部署状态、查询预发布数据库中的分析数据,或读取内部对象存储。但这些服务位于私有云VPC中,因此代理无法访问它们,除非把它们暴露在互联网上,或者将整个笔记本电脑隧道到VPC中。

将已部署的代理连接到私有服务。你正在使用Cloudflare Workers上的Agents SDK构建产品中的代理,这些代理需要调用内部API、查询数据库,并访问不在公共互联网上的服务。它们需要私有访问权限,同时具备权限限制、审计日志,且不泄露凭证。

Cloudflare Mesh:为用户、节点和代理提供统一的私有网络

Cloudflare Mesh是一种面向开发者的友好型私有网络解决方案。一个轻量级连接器、一个二进制文件即可连接所有设备:你的个人设备、远程服务器和用户终端。你无需为每种场景单独安装工具。只需在网络中部署一个连接器,所有访问方式都能正常工作。

连接后,私有网络内的设备可以通过私有IP互相通信,路由通过Cloudflare遍布全球330多个城市的网络,从而获得更高的可靠性并更好地控制网络。

现在,借助Mesh,单一方案即可解决上述所有代理场景:

使用iOS版Cloudflare One Client在手机上,你可以通过Mesh私有网络安全地连接到本地运行OpenClaw的Mac mini。

使用macOS版Cloudflare One Client在笔记本电脑上,你可以将笔记本电脑接入私有网络,使编码代理能够访问预发布数据库或API并进行查询。

在Linux服务器上部署Mesh节点,你可以将外部云中的VPC连接起来,让代理访问外部私有网络中的资源和MCP。

由于Mesh由Cloudflare One Client驱动,每次连接都会继承Cloudflare One平台的安全控制策略。网关策略适用于Mesh流量,设备状态检查验证连接设备,DNS过滤捕获可疑查询。这一切都不需要额外配置:保护人类流量的相同策略也能保护代理流量。

选择 Mesh 还是 Tunnel

随着 Mesh 的推出,你可能会问:什么时候应该使用 Mesh 而不是 Tunnel?两者都能将外部网络私密地连接到 Cloudflare,但它们服务于不同的目的。Cloudflare Tunnel 是单向流量的理想解决方案,它通过 Cloudflare 将边缘流量代理到特定的私有服务(例如 Web 服务器或数据库)。

而 Cloudflare Mesh 提供的是一个完整的双向、多对多网络。Mesh 上的每个设备和节点都可以使用其私有 IP 相互访问。运行在你网络中的应用程序或代理可以发现并访问 Mesh 上的任何其他资源,而无需为每个资源单独配置 Tunnel。

利用 Cloudflare 网络的力量

Cloudflare Mesh 带来了网状网络的优势(弹性、高可扩展性、低延迟和高性能),同时通过 Cloudflare 路由所有流量,解决了网状网络的一个关键挑战:NAT 穿透问题。

互联网的大部分都位于 NAT(网络地址转换)之后。这种机制允许本地网络中的多个设备共享一个公共 IP 地址,通过映射公网头部与私有内部地址之间的流量来实现。当两个设备都位于 NAT 后面时,直接连接可能失败,流量必须回退到中继服务器。如果你的中继基础设施覆盖点有限,相当一部分流量会经过这些中继服务器,从而增加延迟并降低可靠性。虽然自建中继服务器可以作为补偿手段,但这意味着你要承担额外的基础设施管理负担,仅仅为了连接你现有的网络。

Cloudflare Mesh 采用了不同的方法。所有 Mesh 流量都通过 Cloudflare 全球网络传输,也就是为互联网上一些最大网站提供服务的相同基础设施。对于跨区域或多云环境的流量,这种方式始终优于公共互联网路由。因为 Cloudflare 边缘就是路径本身,不存在降级的回退路径。

通过 Cloudflare 路由还意味着每条数据包都会经过 Cloudflare 的安全栈。这是基于 Cloudflare One 平台构建 Mesh 的关键优势:安全性不是后期再附加的独立产品。通过利用相同的全球骨干网,我们可以从第一天起就为每个团队提供以下核心支柱:

50 个节点和 50 个用户免费。你的整个团队和整个测试环境都可以在一个私有网络上,包含在每个 Cloudflare 账户中。

全球边缘路由。覆盖 330 多个城市,优化的骨干路由。无需依赖覆盖点有限的中继服务器,也无需降级的回退路径。

从第一天起就具备安全控制能力。Mesh 运行在 Cloudflare One 上。网关策略、DNS 过滤、数据防泄漏(DLP)、流量检查和设备状态验证等功能均在同一平台上可用。从简单的私有连接开始,需要流量过滤时开启网关策略;需要 SSH 和 RDP 的会话级控制时启用基础设施访问功能;需要防止敏感数据离开网络时添加 DLP。每一项功能只需一键即可启用。

高可用性。创建一个启用了高可用性的 Mesh 节点,并使用相同的令牌以主动-备用模式启动多个连接器。它们会通告相同的 IP 路由,因此当其中一个节点宕机时,流量将自动故障转移。

Mesh 可以连接你分布在外部云上的代理和资源,但你也需要能够从基于 Workers 的代理(使用 Agents SDK 构建)中进行连接。为此,我们扩展了 Workers VPC,使你的整个 Mesh 网络对 Workers 和持久对象(Durable Objects)都可访问。

这意味着你可以从 Workers 连接到 Cloudflare Mesh 网络,通过单个绑定的 fetch() 调用即可访问整个网络。这补充了 Workers VPC 对 Cloudflare Tunnel 的现有支持,让你在保护网络方面有更多选择。现在,你可以在 wrangler.jsonc 文件中指定希望连接的整个网络。要绑定到你的 Mesh 网络,请使用 reserved keyword cf1:network,它会绑定到你账户的 Mesh 网络:

"vpc_networks": [

{ "binding": "MESH", "network_id": "cf1:network", "remote": true },

{ "binding": "AWS_VPC", "tunnel_id": "350fd307-...", "remote": true }

然后,你可以在 Worker 或代理代码中使用它:

export default {

async fetch(request: Request, env: Env, ctx: ExecutionContext) {

// 无需预先注册即可访问 Mesh 中任何内部主机

const apiResponse = await env.MESH.fetch("http://10.0.1.50/api/data");

// 通过隧道的私有 DNS 解析器解析内部主机名

const dbResponse = await env.AWS_VPC.fetch("http://internal-db.corp.local:5432");

return new Response(await apiResponse.text());

},

};

通过将 Developer Platform 与你的 Mesh 网络连接起来,你可以构建拥有安全访问权限的 Workers,从而访问私有数据库、内部 API 和 MCP(多智能体协作平台),帮助你打造跨云的代理和 MCP,为你的应用提供代理能力。同时,这也打开了一个全新的世界:代理可以自主地端到端观察你的整个技术栈,实时交叉比对日志并提出优化建议。

如何协同工作

Cloudflare Mesh、Workers VPC 和 Agents SDK 共同构成了一个统一的私有网络,覆盖 Cloudflare 和你的外部云环境。我们将连接性和计算能力融合在一起,让代理无论身处何地都能安全访问所需资源。

Mesh 节点是你自己的服务器、虚拟机和容器。它们运行 Cloudflare One 客户端的无头版本,并获得一个 Mesh IP 地址。服务之间通过私有 IP 相互通信,双向传输,路由经过 Cloudflare 边缘。

设备是你自己的笔记本电脑和手机。它们运行 Cloudflare One 客户端,直接连接到 Mesh 节点:SSH、数据库查询、API 请求等全部通过私有 IP 进行。你的本地编码代理利用这个连接访问私有资源。

Workers 上的代理通过 Workers VPC 网络绑定访问私有服务。它们获得对整个网络的受限访问权限,由 MCP(多智能体协作平台)进行管理。网络控制代理能访问哪些资源,而 MCP 服务器则控制代理可以执行什么操作。

下一步

为每个人提供安全的私有网络:用户、节点、代理和 Workers —— 推出 Cloudflare Mesh

当前版本的 Mesh 提供了安全统一连接的基础。但随着代理工作流变得越来越复杂,我们正致力于超越简单的连接功能,打造一个更直观易管理、对谁或什么正在与你的服务通信更加精细感知的网络。这是我们今年剩余时间要实现的目标。

主机名路由

今年夏天,我们将把 Cloudflare Tunnel 的主机名路由功能扩展到 Mesh。你的 Mesh 节点将能够接收针对私有主机名(如 wiki.local 或 api.staging.internal)的流量,而无需你手动维护 IP 列表,也不用担心这些主机名在 Cloudflare 边缘如何解析。你可以按名称而非 IP 地址来路由流量。如果你的基础设施使用动态 IP、自动扩缩组或短暂存在的容器,这将彻底消除一类路由难题。

Mesh DNS

目前,你通过 Mesh IP 访问 Mesh 节点,例如 ssh 100.64.0.5。这种方式虽然可行,但并不是你思考基础设施的方式。你通常以名称来考虑:postgres-staging、api-prod、nikitas-openclaw。

今年晚些时候,我们将推出 Mesh DNS,这样加入你 Mesh 的每个节点和设备都会自动获得一个可路由的内部主机名。无需配置 DNS 或手动记录。只需添加一个名为 postgres-staging 的节点,从 Mesh 中任意设备访问 postgres-staging.mesh 都会解析到正确的 Mesh IP。

结合主机名路由,你可以在不关心或管理任何 IP 地址的情况下,直接 ssh postgres-staging.mesh 或 curl http://api-prod.mesh:3000/health。

身份感知路由

目前,Mesh 节点向 Cloudflare 边缘进行身份验证,但在网络层它们共享同一身份。设备通过 Cloudflare One 客户端以用户身份认证,但节点尚未携带可区分且可路由的身份,无法被 Gateway 策略识别。

我们希望改变这一点。目标是实现 Mesh 的身份感知路由,让每个节点、每台设备,最终每个代理都拥有独立的身份,以便策略可以对其进行评估。你不再基于 IP 范围编写规则,而是基于连接者是谁或是什么来编写规则。

这对代理来说尤其重要。目前,当运行在 Workers 上的代理通过 VPC 绑定调用工具时,目标服务看到的是 Worker 发起请求,却不知道是哪个代理在调用、谁授权了它,以及授予了什么权限。在 Mesh 一侧,当你笔记本电脑上的本地编码代理访问一个测试环境服务时,Gateway 只能看到你的设备身份,而不是代理的身份。

我们正在构建一种模型,使代理能将其自身身份贯穿整个网络:

- 主体 / 支持者:授权该操作的人(平台团队的 Nikita)

- 代理:执行该操作的 AI 系统(部署助手,会话 #abc123)

- 权限范围:代理被允许执行的操作(读取部署、触发回滚,其他都不允许)

这样一来,你可以编写类似这样的策略:Nikita 的代理可以读取,但写入必须由 Nikita 本人执行。代理流量可以独立于人类流量过滤。代理的网络访问权限可以被撤销,而不会影响 Nikita 本人的权限。

为每个人提供安全的私有网络:用户、节点、代理和 Workers —— 推出 Cloudflare Mesh

基础设施已经就绪。Mesh 节点通过每个节点的令牌进行配置,设备使用每个用户的身份进行认证,Workers 的 VPC 绑定则限制每个服务的访问权限。缺失的一环是让这些身份对策略层可见,从而使 Gateway 能够基于这些身份做出路由和访问决策。这正是我们正在构建的内容。

容器中的 Mesh

目前,Mesh 节点运行在虚拟机和裸金属 Linux 服务器上。但现代基础设施越来越多地运行在容器中:Kubernetes Pod、Docker Compose 堆栈、临时的 CI/CD 运行器。我们正在开发一个 Mesh Docker 镜像,让你可以在任何容器化环境中添加 Mesh 节点。

这意味着你可以将 Mesh 边车(sidecar)加入你的 Docker Compose 堆栈,并为该堆栈中的每个服务提供私有网络访问权限。例如,你在测试集群中运行的一个微服务可以通过 Mesh 访问生产环境 VPC 中的数据库,而两个服务都不需要暴露公网端点。

这对 CI/CD 流水线也非常有用:流水线可以在构建和测试期间访问私有基础设施。你的 GitHub Actions 运行器拉取 Mesh 容器镜像,加入网络,对测试环境执行集成测试,然后清理退出。整个过程无需管理 VPN 凭据或维护持久隧道——当容器退出时,节点也随之消失。

我们预计 Mesh Docker 镜像将在今年晚些时候发布。

开始使用

尽管我们仍在持续改进这些身份识别和路由功能,但实现安全统一网络的基础现已可用。你只需几分钟就能连接云资源并保护你的代理。

开始使用 Cloudflare Mesh:前往 Cloudflare 控制台中的 Networking > Mesh。最多支持 50 个节点和 50 个用户,免费使用。

使用 Agents SDK 和 Workers VPC 构建代理:安装 Agents SDK(`npm i agents`),按照 Workers VPC 快速入门指南操作,并构建一个具有私有后端访问权限的远程 MCP 服务器。

如果你已经在使用 Cloudflare One?Mesh 可与你现有的设置无缝配合。Gateway 策略、设备状态检查和访问规则会自动应用于 Mesh 流量。查看 Mesh 文档以添加你的第一个节点。

来源与参考

  1. 原始链接
  2. Secure private networking for everyone: users, nodes, agents, Workers — introducing Cloudflare Mesh

收录于 2026-04-15