觀點 · 資訊分享
Cloudflare Workers 現在能直連內網的 Redis、MQTT:VPC 綁定新增 TCP connect()
Cloudflare Workers VPC 的網路綁定新增 connect() 介面,除了 HTTP 之外,Workers 也能對私有網路裡的服務開 TCP 連線,例如 Redis、Memcached、MQTT。目前只支援明文 TCP。
- 發布
- 2026-06-16
- 篇幅
- 約 3 分鐘 · 1,409 字
- 結構
- 8 節 + 3 題常見問題
- 標籤

一句話看懂:Cloudflare Workers VPC 新增 TCP connect() 介面,讓 Workers 除了打內網 HTTP 之外,也能直連私有網路裡的 Redis、MQTT 等服務。

先用白話講:這在解決什麼?
想像 Workers 是一位在外面跑腿的業務,你的內網是公司的機房。以前業務只能用「打電話到櫃台」(HTTP)的方式問機房的事。但機房裡有些設備不接電話,只接「專線」(TCP)。
這次更新就是替業務裝上專線功能:Workers 現在能直接對內網裡的服務開 TCP 連線,不必再繞一層 HTTP。
發生什麼事
Cloudflare 在 2026 年 6 月 16 日的更新日誌宣布:Workers VPC 的 VPC Network 綁定現在支援 connect() Socket API,可以對私有目的地建立原始 TCP 連線;原本只能透過 fetch() 走 HTTP。
- 可連的對象:透過已綁定的 Cloudflare Tunnel、Cloudflare Mesh 或 Cloudflare WAN on-ramp 到得了的私有服務
- 官方舉例:Redis、Memcached、MQTT、自訂二進位協定,或任何以 TCP 為基礎的服務
以前與現在
| 以前 | 現在 | |
|---|---|---|
| HTTP(fetch) | 可以 | 可以 |
| 原始 TCP(connect) | 官方變更紀錄未列為支援 | 可以,對私有目的地開 TCP |
| 加密 | - | 目前只支援明文 TCP |
什麼情境用得到?
- Workers 需要讀寫放在內網的 Redis 或 Memcached 快取
- 內網有 MQTT 訊息服務,想用 Workers 接收或轉發訊息
- 公司有自訂的二進位協定服務,不方便再包一層 HTTP
以上都是官方舉例過的服務類型。至於連線建立的延遲、連線數上限等細節,這則更新日誌沒有說明,要實際測試才知道。
給開發者的技術細節
先在設定檔宣告 VPC 網路綁定:
{
"vpc_networks": [
{ "binding": "PRIVATE_NETWORK", "network_id": "cf1:network", "remote": true }
]
}
執行時對綁定呼叫 connect(),例如連一台私有的 Redis 並送出 PING:
const socket = await env.PRIVATE_NETWORK.connect("10.0.1.50:6379");
const writer = socket.writable.getWriter();
await writer.write(new TextEncoder().encode("PING\r\n"));
await writer.close();
return new Response(socket.readable);
- 注意:官方說目前
connect()只支援明文 TCP - 細節請看 VPC Networks 與 Workers Binding API 的文件
我的看法
我自己在家用 NAS 自架服務,常遇到的問題是:想讓外面的程式碰內網的服務,卻不想把連接埠直接開到網際網路。這類「從雲端程式走專用通道回內網」的做法,比開洞安全得多。
不過「只支援明文」這一點要小心:如果走的路徑本來就在受信任的私有網路內,風險相對可控;但若傳輸的資料很敏感,還是要自己確認通道本身的保護。至於它跟 Redis 之類服務的相容細節與效能,官方在這則公告沒有說明,我會先用小流量測過再決定。
名詞小辭典
- Workers:Cloudflare 的無伺服器平台,把程式放在全球節點上執行。
- TCP:網路上最基本的可靠連線方式,很多資料庫與訊息服務都直接用它溝通。
- Cloudflare Tunnel:從你的內網主動連出到 Cloudflare 的加密通道,不必開對外連接埠。
- 明文:沒有加密、內容可被讀取的傳輸方式。