本示例演示了如何使用 VPC Network 绑定和 Cloudflare Mesh(以前称为 WARP Connector),从 Worker 连接到账户中的任何私有服务 —— 而无需预先注册各个主机或指定 Cloudflare Tunnel UUID。
当使用 network_id: "cf1:network" 绑定到 Cloudflare Mesh 时,您的 Worker 可以访问通过 Cloudflare Tunnel 或 Cloudflare Mesh 发布的任何 Mesh 节点、客户端设备、子网或主机名路由,或者通过 Cloudflare WAN 入口(GRE、IPsec 或 CNI)连接的目标。
- 一个连接到您的私有网络的 Cloudflare Mesh 节点
- 在您的 Mesh 节点后方运行的私有服务(例如内部 API、数据库或 Web 应用程序)
在您的 Wrangler 配置中使用 network_id: "cf1:network" 将您的 Worker 绑定到 Cloudflare Mesh:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "mesh-gateway",
"main": "src/index.js",
// Set this to today's date
"compatibility_date": "2026-08-17",
"vpc_networks": [
{
"binding": "MESH",
"network_id": "cf1:network",
"remote": true
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "mesh-gateway"
main = "src/index.js"
# Set this to today's date
compatibility_date = "2026-08-17"
[[vpc_networks]]
binding = "MESH"
network_id = "cf1:network"
remote = true只需此单个绑定,您的 Worker 即可访问您账户中跨越所有 Cloudflare Tunnel、Mesh 节点和 Cloudflare WAN 入口的任何服务。
使用 VPC Network 绑定按私有 IP 地址访问服务。Cloudflare Mesh 目前仅支持基于 IP 的路由。
// 您可以按 Mesh IP 或节点后方子网路由上的任何私有 IP
// 直接将 Mesh 节点作为目标
const SERVICE_IP = "10.0.1.50";
const SERVICE_PORT = 8080;
export default {
async fetch(request, env, ctx) {
try {
const response = await env.MESH.fetch(
`http://${SERVICE_IP}:${SERVICE_PORT}/api/data`,
);
return response;
} catch (error) {
// 如果 VPC Network 无法连接到目标,fetch() 将抛出异常
return new Response("Service unavailable", { status: 503 });
}
},
};与 VPC Service 不同,传递给 fetch() 的 URL 或传递给 connect() 的地址将决定实际目的地。您可以通过您的 Mesh 网络访问任何可达的 IP 和端口,而无需为每项服务创建单独的绑定。
您还可以使用 connect() 通过同一个绑定向非 HTTP 服务打开原始 TCP 套接字:
// 您可以按 Mesh IP 或节点后方子网路由上的任何私有 IP
// 直接将 Mesh 节点作为目标
const REDIS_IP = "10.0.1.50";
const REDIS_PORT = 6379;
export default {
async fetch(request, env, ctx) {
try {
const socket = await env.MESH.connect(`${REDIS_IP}:${REDIS_PORT}`);
const writer = socket.writable.getWriter();
await writer.write(new TextEncoder().encode("PING\r\n"));
await writer.close();
return new Response(socket.readable);
} catch (error) {
// 如果 VPC Network 无法连接到目标,connect() 将抛出异常
return new Response("Service unavailable", { status: 503 });
}
},
};部署您的 Worker 并验证其是否可以访问您的私有服务:
npx wrangler deploy# 测试访问内部用户 API
curl https://mesh-gateway.workers.dev/api/users
# 测试按私有 IP 访问指标
curl https://mesh-gateway.workers.dev/api/metrics- 详细了解 VPC Network 配置选项
- 参阅 Workers Binding API 参考
- 为您的账户设置 Cloudflare Mesh
- 探索其他示例