第一轮总结 从 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 VPC | Worker → 本机 / 内网服务 | 边缘 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 已测通 |
| Hyperdrive | Worker 访问已有的外部 Postgres / MySQL | 新项目的小表格数据(优先 D1) | dreamer-hyper 演示已上线 |
| Containers | 必须跑完整 Docker / 任意语言 | 普通网页和轻量 API | 未部署(要 Workers Paid) |
| Workers VPC | 边缘 Worker 调用内网服务 | 只是给人看本机面板(Tunnel + Access 更简单) | 概念弄清,未强行上线 |
可以叠着用:例如 Tunnel 把本机服务接到 Cloudflare,前面再加 Access;或者 VPC 让 Worker 调内网,对外仍然只暴露一个 *.workers.dev。
我是怎么把费用保持在 0 的
这一轮比前两轮更「碰边界」——有的功能要第二个账号、有的要本机常开、有的直接写明付费才能用。我仍然一分钱没花,做法是:
- 先查价格页,再动手。Containers 一看免费版 N/A,立刻停,只留示例。
- 付费开关一律不开。Zero Trust 选 Free;Hyperdrive、Tunnel、Email Routing、VPC beta 都走免费路径。
- 账号拆开也认账。域名和 Workers 不在同一账号时,不强行为了「接 Worker 收邮件」去迁域名或开付费;先用转到 Gmail 这种零成本方案。
- 本机演示可停就停。Tunnel / VPC 依赖电脑在线,演示完关掉,不把长期暴露当默认。
- 敏感入口用身份,不只用口令。管理面板走 Access 邮箱登录;公开工具继续用 Turnstile、访问码和每日限额(见第二轮)。
- 继续盯账单和提醒。异常监控还在跑;12 月 1 日起日志计费规则变化的提醒也还在。
这一轮的收获
- 「代码在哪跑」决定选哪条路:在 Cloudflare 上 → Workers / Pages;必须在自己电脑上 → Tunnel(给人看)或 VPC(给 Worker 调)。
- 身份比共享口令更适合管理后台:Access 认人,访问码认口令,Turnstile 认是不是机器人——三个问题别用同一个答案硬套。
- 学不等于全上线:Containers 这种明确要付费的,把概念和示例留好就够;个人博客用免费替代也能走很远。
到这里,三轮下来从「把网页挂上网」走到了「AI、统计、安全门、域名邮箱和私有网络」。下一步还没定——可能把 Access 或 Email Routing 拆成更细的笔记,也可能歇一阵先把现有工具用熟。你要是也在跟,可以从 第一轮 和 第二轮 顺着看过来。