2865 字
14 分钟
学 Cloudflare 第三轮:隧道、登录门、域名邮箱、外部数据库和私有网络

第一轮总结 从 Pages、Workers、KV、D1、R2 写到工具页;第二轮总结 写了 AI 搜索、Workflows、访问统计、AI 网关、分享封面和缩略图。10 月 11 日这一轮,话题从「在 Cloudflare 上干活」转到「怎么安全地接本机、收邮件、连外部数据库」:

  • Tunnel:本机服务不用公网 IP 也能被访问
  • Zero Trust Access:给管理页加「只有我能进」的邮箱登录门
  • Email Routing:blog@dogelover.online 收到的信转到 Gmail
  • Hyperdrive:Worker 连外部 Postgres 的连接池演示
  • Containers:能跑完整 Docker,但免费版用不了,只留了示例
  • Workers VPC / 私有网络:让 Worker 去调你家电脑上的服务(概念 + 材料)

每个功能仍然按同样的顺序写:一句话说它是什么 → 我做了什么 / 现在到哪一步 → 一个关键概念 → 免费额度和费用。

1. Cloudflare Tunnel:本机接到公网#

一句话:在你电脑上跑一个小程序 cloudflared,它主动连到 Cloudflare;别人访问一个公网 HTTPS 地址时,请求再钻回你本机。不用公网 IP,也不用在路由器上开端口。

我做了什么:在学习环境里搭了中文演示页,也申请过临时的 *.trycloudflare.com 地址。那段网络拦了 cloudflared 连边缘节点,所以公网那边没能完整跑通;演示材料和讲解都留着,完整体验需要在自己电脑上开。博客、短链接这些仍然适合 Workers——Tunnel 是给「程序必须跑在我电脑上」的场景用的。

关键概念:主动连出去,而不是被动开门。传统做法是路由器端口转发,等于在防火墙上开一个洞。Tunnel 反过来:本机主动打给 Cloudflare,「有人找我就转给我」。所以家里没公网 IP、运营商禁了入站端口,也能临时把本机网页给朋友看。

免费额度:Quick Tunnel(临时地址)和正式命名隧道本身都不按流量收费。Quick Tunnel 适合测试,关掉就失效;长期用要建命名隧道,并且域名 DNS 要和隧道在同一个 Cloudflare 账号。我的域名在另一个账号,所以这一轮没有绑自定义域名。

2. Zero Trust Access:管理页的邮箱门卫#

一句话:Access 挡在应用前面,先确认「你是谁」,通过了才能进;认的是个人身份(比如邮箱一次性验证码),比共享访问码更能审计、也能单独踢人。

我做了什么:管理面板 dreamer-admin 已经上线,并用 Access 锁上了。打开后会先跳到 Cloudflare 登录页,用我自己的邮箱收一次性验证码才能进。面板只读检查博客相关几个服务是不是活着,还有一个「受保护操作」占位按钮——点了只返回成功信息,不改配置、不发邮件。工具页实验室里也加了入口;没登录的人点进去也看不到面板内容。

中间踩过一个坑:登录成功后 Worker 把正常的用户令牌误判成了服务令牌,页面进得去却提示无权。修好鉴权逻辑后,用无痕窗口重新登录就通了。

关键概念:门卫在外面,业务在里面。Access 拦的是「谁能碰到这个网址」;Worker 里还可以再校验登录令牌,不信任随便传来的邮箱头。它和 Turnstile(防机器人)、访问码(知道口令就能进)、Tunnel(把本机接到公网)解决的是不同问题,也可以叠着用。

免费额度:Zero Trust 免费计划大约 50 个用户,个人管理后台远够用。开通时控制台有时会让填付款方式,选 Free 不会扣款。我没开按用户加量、远程浏览器隔离之类的付费项。

3. Email Routing:域名邮箱转到 Gmail#

一句话:给自己的域名一个真正能收信的地址,比如 blog@dogelover.online,收到的信再转到已经在用的 Gmail(或交给 Worker 处理)。

我做了什么:在管理域名的那个 Cloudflare 账号里,把 Gmail 加成目标邮箱并完成验证,再建自定义地址 blog@dogelover.online,动作选转到 Gmail。我从自己的 grokbot 邮箱发了试信,第二封已经出现在 Gmail 收件箱——整条链路通了。对外可以用更正规的域名邮箱,对内还是用熟悉的 Gmail 收。

关键概念:收信规则跟域名走,不跟 Workers 账号走。我的博客 Workers 在一个账号,域名在另一个账号。A 账号的 Email Routing 选不到 B 账号的 Worker,所以现在最省事的路是「转到 Gmail」,而不是「交给 Worker 自动处理」。以后如果域名迁到同一个账号,才方便让 Worker 直接读邮件。

免费额度:转到已验证的目标邮箱不收费;入站路由本身也在免费计划里。Catch-all(全部接收)要慎开,避免和别的邮箱服务抢信。我这次只建了一个自定义地址,没有改会破坏现有配置的东西。

4. Hyperdrive:连外部 Postgres 的加速层#

一句话:Worker 要连 Neon、Supabase 这类外部数据库时,Hyperdrive 在中间做连接池和查询缓存,少掉每次重新握手的时间。

我做了什么:dreamer-hyper 演示页上线了。打开能看笔记列表;写入要先过访问保护。它连的是一份免费的 Neon Postgres,中间隔着 Hyperdrive。博客上的留言板、限额这些继续用 D1 就够,不需要换成外部库——学它是为了以后真有 Neon / RDS 时会用。

关键概念:D1 和 Hyperdrive 不是二选一的对手。D1 是 Cloudflare 自家的 SQLite,Worker 直接绑就能用;Hyperdrive 是给「已经长在外面的 Postgres / MySQL」加速的。博客工具链优先 D1;只有「数据本来就在外部库」才上 Hyperdrive。

免费额度:Workers 免费计划里就有 Hyperdrive,大约每天 10 万次查询,超额报错不扣钱。连接池和查询缓存不另收费。外部库本身另有各自的免费额度;演示用的临时库会过期,需要的话可以认领到 Neon 免费账号长期用。

5. Containers:完整 Docker,但要付费计划#

一句话:Containers 让 Worker 按需拉起一个完整的 Linux 容器(Docker 镜像),适合跑任意语言、比较吃 CPU、或必须有完整文件系统的程序。

我做了什么:没有部署,也没有开通付费。官方写明只有 Workers Paid(大约每月 5 美元)才能用,免费版是 N/A。按一直不花冤枉钱的原则,我只留了示例代码和讲解,以后真要跑 Docker 再拿出来。

关键概念:Worker 轻,Container 重。普通 Worker 是轻量的 JavaScript / Wasm,启动快、便宜,但跑不了随便一个 Python / Go 原生程序。Containers 补的是这一块:Worker 当门,旁边再开一个真正的 Linux 环境干活,空闲后休眠。

免费额度:没有。免费替代对现在的需求够用——网页和 API 用 Workers,分享封面用已有的 Browser Rendering,缩图用图床,本机服务用 Tunnel。

6. Workers VPC / 私有网络:让 Worker 摸到内网#

一句话:Workers VPC(目前 beta)让边缘上的 Worker,通过 Tunnel 去访问跑在你电脑 / 家里 / 公司内网、公网根本打不到的服务。

我做了什么:把容易混淆的名字分开写进了学习材料,没有在线上强行搭一套完整链路。完整跑通要在自己电脑上开命名隧道,并在 Cloudflare 里配 VPC 绑定;我这边的网络仍可能拦 cloudflared,所以这一项以概念和可跟做的步骤为主。

关键概念:三种「私网」别混。

名字谁访问谁典型场景
公开 Tunnel浏览器 → 本机网页给朋友临时看本机开发页
Workers VPCWorker → 本机 / 内网服务边缘 API 去调家里的数据库或脚本
WARP-to-Tunnel人(装了 WARP)→ 内网 IP人远程进公司内网,不是 Worker

另外,Worker 调 Worker 用的是 Service Bindings,那是 Cloudflare 内部互调,不是连你家局域网。

免费额度:官方写明 VPC 在 beta 期间各档 Workers 套餐都能用、不另收费。Tunnel 本身也不按流量收。个人博客日常继续用 Workers 就够;只有「程序必须跑在家里,又要给边缘的 Worker 调用」才需要 VPC。

小抄:这一轮几个工具怎么选#

工具适合干什么不适合干什么我的现状
Tunnel本机 / 家里服务临时或长期挂到 HTTPS纯静态站、无状态 API(用 Workers / Pages 更好)概念与材料就绪,完整演示要在自己电脑上
Access管理后台、内部工具,「只允许这些人」公开博客、防机器人(那是 Turnstile)dreamer-admin 已上线
Email Routing域名邮箱收信再转到 Gmail随便群发营销信(那是另一套出站能力)blog@dogelover.online 已测通
HyperdriveWorker 访问已有的外部 Postgres / MySQL新项目的小表格数据(优先 D1)dreamer-hyper 演示已上线
Containers必须跑完整 Docker / 任意语言普通网页和轻量 API未部署(要 Workers Paid)
Workers VPC边缘 Worker 调用内网服务只是给人看本机面板(Tunnel + Access 更简单)概念弄清,未强行上线

可以叠着用:例如 Tunnel 把本机服务接到 Cloudflare,前面再加 Access;或者 VPC 让 Worker 调内网,对外仍然只暴露一个 *.workers.dev。

我是怎么把费用保持在 0 的#

这一轮比前两轮更「碰边界」——有的功能要第二个账号、有的要本机常开、有的直接写明付费才能用。我仍然一分钱没花,做法是:

  1. 先查价格页,再动手。Containers 一看免费版 N/A,立刻停,只留示例。
  2. 付费开关一律不开。Zero Trust 选 Free;Hyperdrive、Tunnel、Email Routing、VPC beta 都走免费路径。
  3. 账号拆开也认账。域名和 Workers 不在同一账号时,不强行为了「接 Worker 收邮件」去迁域名或开付费;先用转到 Gmail 这种零成本方案。
  4. 本机演示可停就停。Tunnel / VPC 依赖电脑在线,演示完关掉,不把长期暴露当默认。
  5. 敏感入口用身份,不只用口令。管理面板走 Access 邮箱登录;公开工具继续用 Turnstile、访问码和每日限额(见第二轮)。
  6. 继续盯账单和提醒。异常监控还在跑;12 月 1 日起日志计费规则变化的提醒也还在。

这一轮的收获#

  1. 「代码在哪跑」决定选哪条路:在 Cloudflare 上 → Workers / Pages;必须在自己电脑上 → Tunnel(给人看)或 VPC(给 Worker 调)。
  2. 身份比共享口令更适合管理后台:Access 认人,访问码认口令,Turnstile 认是不是机器人——三个问题别用同一个答案硬套。
  3. 学不等于全上线:Containers 这种明确要付费的,把概念和示例留好就够;个人博客用免费替代也能走很远。

到这里,三轮下来从「把网页挂上网」走到了「AI、统计、安全门、域名邮箱和私有网络」。下一步还没定——可能把 Access 或 Email Routing 拆成更细的笔记,也可能歇一阵先把现有工具用熟。你要是也在跟,可以从 第一轮 和 第二轮 顺着看过来。

学 Cloudflare 第三轮:隧道、登录门、域名邮箱、外部数据库和私有网络
https://blog.dogelover.online/posts/cloudflare-learning-summary-3/
作者
Dreamer
发布于
2026-10-11
许可协议
CC BY-NC-SA 4.0