Cloudflare 从入门到入土,全教给你
从 DNS 到 Workers,从 Pages 到 Zero Trust——一篇文讲透 Cloudflare 全家桶,附带踩坑血泪史。看完你就知道为什么我说它会上瘾。
本页目录

两年前我第一次用 Cloudflare,就是改个 DNS 而已。心想,嗯,免费的,界面还挺干净。
然后我发现了 Pages。
然后我发现了 Workers。
然后我发现了 R2、KV、D1、Durable Objects、Zero Trust、Turnstile、Email Routing……
现在我整个数字生活——个人网站、公司官网、域名邮箱、API 服务、数据库、图床、文件存储、VPN 替代品——全跑在 Cloudflare 上。
这篇文章,是我从一个”改个 DNS 就走”的新手,到现在把整个基础设施搬上去之后的完整复盘。从入门到入土,全教给你。
第一层:DNS — 一切的起点
90% 的人用 Cloudflare,就是从 DNS 开始的。注册账号,把域名 NS 改到 Cloudflare,完事。
但有几个东西你可能没注意到:
橙色的云朵和灰色的云朵
点一下 DNS 记录旁边那个云朵图标:
- 橙色(Proxied):流量经过 Cloudflare → 你获得 CDN 加速 + DDoS 防护 + SSL + WAF,但 Cloudflare 知道你的源站 IP
- 灰色(DNS Only):Cloudflare 只做 DNS 解析,流量直连你的服务器
绝大多数场景开橙色就对了。但如果你跑的东西不支持反代(比如某些 P2P 节点),就关掉。
DNSSEC 一定要开
在 DNS 设置页面底部,有个 DNSSEC 选项。开了它,别人就无法劫持你的域名解析。设置过程需要去你的域名注册商那边加一条 DS 记录,Cloudflare 会给你具体的值,照着贴就行。
TTL 留 Auto 就行
Cloudflare 的 DNS 是全球 Anycast 的,TTL 默认 Auto(300 秒)。你不需要手动调,除非你有特殊的故障转移需求。
第二层:CDN 与缓存 — 白嫖的开始
一旦你的 DNS 变成橙色,你的网站就已经被 Cloudflare 的 CDN 包裹了。全球 300+ 城市的边缘节点,自动缓存你的静态资源。
但你得知道怎么配。
缓存规则(Cache Rules)
默认情况下,Cloudflare 只缓存 JS/CSS/图片等静态文件。如果你想缓存 HTML 页面、API 响应、或者自定义缓存行为,进 Caching → Cache Rules 自己加规则。
比如:你的博客页面更新频率很低,可以加一条规则:
- 匹配 URL Path:
/blog/* - 缓存时长: 1 小时
- 浏览器缓存: 10 分钟
这样全球访客都能从最近的节点拿到你的页面,不用每次回源。
Polish(图片优化)
免费版没有,Pro 版($25/月)才有。自动 WebP 转换、图片压缩、尺寸适配。如果你的站图片多,这个功能值回票价。
Workers 取代 Page Rules
老玩家可能还记得 Page Rules——那个界面简陋但功能强大的规则系统。Cloudflare 现在把它拆成了 Cache Rules、Redirect Rules、Configuration Rules 等更细的模块。旧 Page Rules 还能用但不推荐了,新功能更灵活。
第三层:安全 — 免费的东西比你想象的多
SSL/TLS — 一键 HTTPS
进 SSL/TLS 设置,把模式从 Flexible 改成 Full (Strict)。
什么意思?
- Flexible:浏览器到 Cloudflare 是加密的,但 Cloudflare 到你的服务器是明文的。半吊子安全,不建议。
- Full:两端都加密,但不验证证书。中间人攻击有理论风险。
- Full (Strict):两端加密 + 证书验证。你需要在源站装一个证书(Cloudflare 的 Origin CA 免费签发,15 年有效期),这是正确答案。
如果你用 Cloudflare Pages,这些自动搞定,不用操心。
WAF(Web Application Firewall)
免费版有基础规则,可以拦截常见的 SQL 注入、XSS 等。进 Security → WAF,开启:
- Managed Rules:Cloudflare 维护的规则集,免费版有 Cloudflare Managed Ruleset
- 自定义规则:比如”如果请求来自某个国家 AND URL 包含 /admin,直接 block”
Bot Fight Mode
免费版功能,能自动拦截已知的恶意爬虫和扫描器。但它偶尔会误杀正常的爬虫(比如 Googlebot)。如果你发现 SEO 排名掉了,先检查这里。
Rate Limiting
免费版可以设置基础速率限制。比如”同一个 IP 对 /login 的请求,每分钟不超过 10 次”。防爆破攻击必备。
DDoS 防护
自动开启的,不需要你配什么。这是 Cloudflare 的看家本领——全球最大的网络层 DDoS 防护,不额外收费。
我曾经被一次小规模 DDoS 打过(应该是竞争对手扫端口),Cloudflare 在我毫不知情的情况下自动吸收了。事后看 Analytics 才发现一夜之间挡掉了 40 万个请求。
第四层:Pages — 你的第一个无服务器网站
到这里,你已经不满足于”只做 DNS 和缓存”了。你想把网站也搬到 Cloudflare 上。
Cloudflare Pages 就是答案。
它是一个静态站托管平台,类似 Vercel / Netlify,但:
- 无限带宽、无限请求量(免费!)
- 全球 CDN 自带
- 自动 HTTPS
- 支持自定义域名
- Git 推送自动部署
怎么用?
- 把你的网站代码推到 GitHub
- 在 Cloudflare Pages 连接你的仓库
- 设置构建命令(比如
npm run build)和输出目录(比如dist) - 每次推送 main 分支,自动构建部署
就这么简单。
Pages Functions
如果你的网站需要后端逻辑,Pages 内置了 Functions 功能——其实就是 Workers,但跟你的静态站部署在同一套流程里。在项目根目录创建一个 functions/ 文件夹,里面放 TypeScript/JavaScript 文件,每个文件就是一个 API 端点:
functions/
api/
webhook.ts → /api/webhook
auth.ts → /api/auth
文件路径就是 URL 路径,零配置。
我用 Pages 部署了两个站——jask.dev 和 uzenlabs.com。Git push 之后大概 30 秒上线,从来不用操心服务器、证书、CDN 配置。
第五层:Workers — 真正的边缘计算
如果说 Pages 是”托管静态网站”,那 Workers 就是”在 Cloudflare 的边缘节点上跑你的代码”。
你的代码不是跑在某一个数据中心,而是部署在全球 300+ 个城市。用户从东京访问,代码在东京执行;用户从纽约访问,代码在纽约执行。延迟极低。
一个 Worker 长什么样?
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const url = new URL(request.url);
if (url.pathname === "/api/time") {
return Response.json({
time: new Date().toISOString(),
region: request.cf?.colo || "unknown",
});
}
return new Response("Hello from the edge!");
},
};
就这么几行。部署之后,全球可用。
能拿来干嘛?
我用 Workers 做过这些东西:
- API 聚合层:把多个第三方 API 的数据聚合后统一返回,前端只需要调一个接口
- 认证中间件:JWT 验证 + 路由权限控制
- Webhook 处理:接收 GitHub/Telegram 的 Webhook,做数据加工后转发
- 短链接服务:一个 KV 查询 + 重定向,50 行代码搞定
- CORS 代理:绕过浏览器的跨域限制
- 定时任务(Cron Triggers):每天定时爬数据、发通知
定价
免费版:每天 10 万次请求,10ms CPU 时间/请求。对个人项目来说完全够用。
付费版($5/月):1000 万次请求,30 秒 CPU 时间/请求。你从免费版升上去的那个瞬间,会感叹之前花的那些 VPS 钱都喂了狗。
开发体验
npm create cloudflare@latest my-worker
cd my-worker
npx wrangler dev # 本地开发
npx wrangler deploy # 部署
wrangler 是 Cloudflare 的 CLI 工具,体验跟 Vercel CLI 差不多,但功能更全。本地开发、热重载、日志查看、secrets 管理,一条命令搞定。
第六层:存储全家桶 — R2 / KV / D1 / Durable Objects
一旦你开始在 Workers 上写后端逻辑,你就需要存储。Cloudflare 准备了一整套:
R2 — 对象存储(S3 兼容)
跟 AWS S3 一样的 API,但没有出口流量费。这个是杀手锏。
你在 S3 上存了 100GB 的文件,下载一次花你 $9 的出口流量费。在 R2 上,下载一万次也是 $0 出口费。
定价: 存储 $0.015/GB/月,写操作 $4.5/百万次,读操作 $0.36/百万次,出口免费。
免费额度:10GB 存储 + 100 万次 A 类操作 + 1000 万次 B 类操作/月。
用法:
// Worker 中操作 R2
const bucket = env.MY_BUCKET;
await bucket.put("file.txt", "Hello R2!");
const obj = await bucket.get("file.txt");
const text = await obj.text();
也可以直接通过 wrangler 命令行操作:
npx wrangler r2 object put my-bucket/avatar.png --file=./avatar.png
R2 还支持自定义域名和公开访问,可以当图床用。
KV — 键值存储
极快的读取(全球边缘缓存),适合存储不常变动的数据。最终一致性,不适合需要强一致的场景。
用法场景: 配置项、短链接映射、用户 session、缓存层。
await env.MY_KV.put("user:123", JSON.stringify({ name: "Jask" }));
const user = await env.MY_KV.get("user:123", "json");
定价: 免费版 1GB 存储 + 10 万次读/天。付费的话读 $0.50/百万次,很便宜。
D1 — SQLite 数据库
Cloudflare 的 SQLite 数据库,跑在边缘。完整的 SQL 支持,JOIN、事务、外键全都有。
如果你需要关系型数据、复杂查询,就用 D1。
const { results } = await env.DB.prepare(
"SELECT * FROM posts WHERE author = ? ORDER BY created_at DESC LIMIT 10"
).bind("jask").all();
定价: 免费版 5GB 存储 + 500 万行读/天。对中小型应用来说绰绰有余。
Durable Objects — 有状态的边缘计算
最硬核的一个。Workers 默认是无状态的,但 Durable Objects 给你一个有状态的、单线程的、强一致的运行时。适合做:实时协作、聊天室、WebSocket 长连接、限流计数器。
这个比较进阶,新手可以跳过,等你真的需要”全局唯一的有状态实例”时再来。
第七层:Zero Trust — 你的私人 VPN 替代品
这个功能很多人不知道,但一旦用了就回不去。
Cloudflare Zero Trust(免费 50 用户名额) 可以让你:
1. 安全访问你的内部服务
你有台家里的 NAS、或者一个 admin 面板不想暴露到公网?以前你得搭 VPN。现在:
- 装 Cloudflare WARP 客户端
- 在 Zero Trust 面板配置 Access Policy(比如”只有我的邮箱才能访问 nas.example.com”)
- 访问 nas.example.com 时,Cloudflare 会弹一个登录页,验证通过后才能进
不需要开放任何端口,不需要 VPN 服务器。
2. WARP 客户端 — 比商业 VPN 更安全
WARP 不是传统意义上的 VPN,它的设计目标不同:
- 它不隐藏你的 IP(如果你需要翻墙它不管用)
- 它加密你的 DNS 查询和流量(防止运营商劫持/窃听)
- 它可以配合 Gateway 做 DNS 过滤(拦截恶意域名、广告等)
日常使用开了 WARP 之后,运营商就看不到你访问什么网站了。
3. Tunnel — 反向代理的终极形态
cloudflared tunnel 让你不需要开放任何入站端口,就能把本地服务暴露到公网。
# 安装 cloudflared
brew install cloudflared
# 创建隧道
cloudflared tunnel create my-tunnel
# 把本地的 8080 端口暴露到 dashboard.example.com
cloudflared tunnel route dns my-tunnel dashboard.example.com
# 运行
cloudflared tunnel run --url http://localhost:8080 my-tunnel
你的服务器没有开放任何端口,Cloudflare 主动连过来拉取流量。比 ngrok 安全得多,而且免费。
第八层:那些你可能没注意到的宝藏功能
Email Routing
Cloudflare 可以免费给你的域名做邮件转发。hi@yourdomain.com 自动转发到你的 Gmail。不用买邮箱服务,不用配 MX 记录,几秒钟搞定。
Turnstile
reCAPTCHA 的替代品。不需要用户点红绿灯选消防车,后台静默验证,用户体验好得多。免费无限次使用。
Images
图床服务。$5/月起,包含 100GB 存储和无限流量。自动适配尺寸、格式转换。比 Cloudinary 便宜。
Stream
视频托管 + 转码 + 播放器。按量付费,没有 YouTube 的广告和推荐。适合付费课程、产品演示。
WARP + Gateway
DNS 级别的广告拦截和恶意网站防护。在 Gateway 里配置策略,WARP 客户端上自动生效。整个设备的所有 App 都受保护,不只是浏览器。
Zaraz
第三方脚本管理器。替代 Google Tag Manager,但在 Cloudflare 边缘执行,比 GTM 快得多。
Browser Rendering
在 Workers 里跑无头浏览器。爬虫、截图、PDF 生成。比自己搭 Puppeteer 集群省太多了。
第九层:AI 与 MCP — 未来已经在边缘了
如果你觉得前面的内容已经够多了,先别走。Cloudflare 在 AI 这条线上也布局得非常深,而且上手成本极低。
Workers AI — 在边缘跑大模型
你不需要买 GPU、不需要调 PyTorch、不需要部署推理服务器。直接在 Worker 里写一行代码就能调用大模型:
const response = await env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
messages: [{ role: "user", content: "用一句话解释什么是 CDN" }],
});
模型跑在 Cloudflare 的 GPU 节点上,请求自动路由到最近的节点。支持 Llama、Mistral、Qwen 等开源模型,还有文本生成图片、语音识别、翻译等小模型。
免费额度:每天 10,000 次神经元推理。 个人项目随便用。
Remote MCP Server — 行业首创
MCP(Model Context Protocol)是 Anthropic 提出的开放协议,让 AI 助手能连接外部工具和数据。以前 MCP Server 只能本地跑,Cloudflare 是业界第一个支持远程 MCP Server 的平台。
这意味着什么?你的 AI 客户端(Claude、ChatGPT 等)可以直接通过 URL 连到你部署在 Workers 上的 MCP Server,不需要本地安装任何东西。
部署一个 MCP Server 只需要:
npx create-cloudflare@latest my-mcp-server
# 选择 "Remote MCP Server" 模板
cd my-mcp-server
npx wrangler deploy
30 秒,你的 MCP Server 就上线了,带认证、带全球边缘加速。
拿到 URL 后,直接粘贴到 Claude Desktop / Cursor / AI Playground 就能用。比传统本地 MCP 省太多了——不用配环境、不用担心端口、不用手动启动进程。
Code Mode — 一个 MCP 暴露整个 Cloudflare API
这是最酷的。Cloudflare 发布了一个 MCP Server,用两个工具(search() 和 execute())就暴露了整个 Cloudflare API——从 DNS 到 Workers 到 R2 到 Zero Trust。
AI 助手可以直接帮你管理你的 Cloudflare 资源。比如你对 Claude 说”帮我给 jask.dev 加一条 CNAME 记录”,它就真的能做。整个 MCP 只消耗约 1000 tokens 的上下文,效率极高。
上手资源
如果你想快速体验,这些链接收藏好:
- Remote MCP Server 文档 — 部署自己的 MCP Server 完整指南
- Code Mode 博客 — 了解
search()+execute()的设计思路 - Workers AI 文档 — 支持的模型列表和 API 用法
- AI Playground — 在线试用,不用写代码
- Cloudflare Agents SDK — 构建 AI Agent 的完整框架,MCP + Durable Objects + Workflows
说真的,我在 AI Agent 这块试过不少平台,Cloudflare 的开发体验是目前最好的之一。文档清晰、模板齐全、免费额度慷慨,从零到跑通一个 AI 工具,可能就半小时的事。
“入土”:当 Cloudflare 变成你的基础设施
到这里你可能会问:全搬到 Cloudflare 上,会不会有供应商锁定(Vendor Lock-in)的风险?
说实话,会。
R2 虽然兼容 S3 API,但 Workers 的运行时、KV 的数据模型、D1 的 SQL 方言——这些都是 Cloudflare 特有的。一旦你把整个系统架构在上面,迁移成本会很高。
但我还是选择了全押。原因很简单:
它真的太好用了。
- 免费额度对个人开发者来说几乎用不完
- 全球边缘网络让你的服务天生就是低延迟的
- 一个账号管理 DNS + CDN + 安全 + 计算 + 存储 + 邮件,省了至少 5 个平台的月费
- 文档质量高,API 设计一致,开发体验统一
- 功能迭代速度快,几乎每个月都有新东西
但也有几个坑你要知道:
-
Workers 的 CPU 时间是”执行时间”不是”墙钟时间”——如果你
await fetch()等了 2 秒,那 2 秒不算 CPU 时间。但如果你的代码做了密集计算,免费版的 10ms 限制会卡住你。 -
KV 是最终一致性的——写入一个 key 后,全球传播可能需要几十秒到几分钟。不要拿 KV 做需要强一致的场景(比如扣款)。
-
D1 目前还是 Beta——性能和稳定性在持续改善,但不要拿它跑生产环境的核心交易系统。
-
国内访问速度不稳定——Cloudflare 在中国大陆没有节点(除非你买 Enterprise + ICP 备案)。如果你的用户主要在国内,延迟可能比阿里云/腾讯云的 CDN 高。
-
不要把所有鸡蛋放一个篮子里——Cloudflare 本身也有过全球宕机的事故。关键业务做好备份和降级方案。
最后
我从 2024 年开始用 Cloudflare,从改个 DNS 到现在 Workers + R2 + KV + D1 + Pages + Zero Trust + Tunnel 全套,中间踩了不少坑,但也省了大量的服务器费用和运维时间。
这篇文章不能替代官方文档——Cloudflare 的文档写得很好,遇到具体问题还是去查。但它可以给你一张地图,让你知道这个平台能做什么,哪些功能值得花时间学,哪些可以先跳过。
从 DNS 开始,一路走到边缘计算,这就是 Cloudflare 的全部魅力。
如果你也在用 Cloudflare,或者准备开始用,欢迎来聊聊你的用法。这个平台的深度远超大多数人的想象。
顺便说一句,Cloudflare Tunnel 配合 Shlink 自托管短链也是一个极佳的组合,具体做法我写了另一篇:最安全的方式自托管短链。
至少对我来说,“入土”不是贬义——是因为你一旦用了,就再也爬不出来了。
延伸阅读:我把所有模型的 API Key 收进了 Cloudflare AI Gateway,统一端点 + 密钥托管,key 再也不散落在各项目里。