[ PROMPT_NODE_24470 ]
Workers VPC 说明文档
[ SKILL_DOCUMENTATION ]
# Workers VPC 连接性
使用 TCP 套接字将 Cloudflare Workers 连接到私有网络和内部基础设施。
## 概述
Workers VPC 连接性支持从 Workers 到 AWS、Azure、GCP、本地数据中心或任何私有网络中私有资源的的出站 TCP 连接。这是通过 **TCP Sockets API** (`cloudflare:sockets`) 实现的,它为自定义协议和服务提供了底层网络访问。
**关键功能:**
- 到私有 IP 和主机名的直接 TCP 连接
- 支持用于加密连接的 TLS/StartTLS
- 与 Cloudflare Tunnel 集成以实现安全的私有网络访问
- 对线路协议(数据库协议、SSH、MQTT、自定义 TCP)的完全控制
**注意:** 本参考文档记录的是 TCP Sockets API。关于较新的 Workers VPC Services 产品(具有内置 SSRF 保护的仅 HTTP 服务绑定),请在可用时参考单独的文档。VPC Services 目前处于测试阶段 (2025+)。
## 快速决策:使用哪种技术?
需要从 Workers 连接到私有网络?
| 需求 | 使用 | 原因 |
|------------|-----|-----|
| 私有网络中的 HTTP/HTTPS API | VPC Services (测试版,单独文档) | SSRF 安全,声明式绑定 |
| PostgreSQL/MySQL 数据库 | [Hyperdrive](../hyperdrive/) | 连接池,缓存,优化 |
| 自定义 TCP 协议 (SSH, MQTT, 专有协议) | **TCP Sockets (本文档)** | 完全协议控制 |
| 低延迟的简单 HTTP | TCP Sockets + [Smart Placement](../smart-placement/) | 手动优化 |
| 将本地环境暴露到互联网 (入站) | [Cloudflare Tunnel](../tunnel/) | 非 Worker 专用 |
## 何时使用 TCP Sockets
**在以下情况使用 TCP Sockets:**
- ✅ 需要直接控制线路协议(例如 Postgres 线路协议、SSH、Redis RESP)
- ✅ 非 HTTP 协议(MQTT、SMTP、自定义二进制协议)
- ✅ 需要 StartTLS 或自定义 TLS 协商
- ✅ 通过 TCP 流式传输二进制数据
**在以下情况不要使用 TCP Sockets:**
- ❌ 仅需 HTTP/HTTPS(使用 `fetch()` 或 VPC Services)
- ❌ 需要 PostgreSQL/MySQL(使用 Hyperdrive 进行连接池管理)
- ❌ 需要 WebSocket(使用原生的 Workers WebSocket)
## 快速入门
typescript
import { connect } from 'cloudflare:sockets';
export default {
async fetch(req: Request): Promise {
// 连接到私有服务
const socket = connect(
{ hostname: "db.internal.company.net", port: 5432 },
{ secureTransport: "on" }
);
try {
await socket.opened; // 等待连接