建了500个站的总结:Cloudflare免费全家桶,一个账号,搞定所有基础设施!

0 阅读9分钟

提到cloudflare,我脑海里就冒出,互联网大善人、赛博菩萨!然而很多人注册 Cloudflare 只是为了套个 CDN,其实它的免费套餐几乎能覆盖个人开发者和小团队的全部基础设施需求。本文带你系统盘点 Cloudflare 免费能用什么,怎么用。

为什么是 Cloudflare?

Cloudflare 是全球最大的 CDN 和网络安全公司之一,覆盖 300+ 个数据中心。它的商业模式是向企业卖高级套餐,所以免费套餐非常慷慨——用来"钓"你升级。对个人开发者来说,这是纯赚。

注册准备:

  • 一个邮箱即可无限制(推荐谷歌邮箱或者直接谷歌账号登录)

  • 无需信用卡(优先选择免费版即可,付费升级套餐需要:信用卡 or Paypal)

Image

1. DNS 解析

用到的服务:Cloudflare DNS

Cloudflare 的 1.1.1.1 是全球解析最快的公共 DNS 之一,托管在 Cloudflare 的域名同样享受这套基础设施。

迁移域名 DNS 到 Cloudflare:

1. 注册 Cloudflare,添加域名
2. Cloudflare 自动扫描现有 DNS 记录
3. 确认记录无误
4. 去域名注册商(GoDaddy/Namecheap/阿里云)
   修改 NS 记录为 Cloudflare 提供的两个 NS 地址
5. 等待 24 小时生效(通常几分钟)

特点:

  • 解析速度全球前三

  • 支持 DNSSEC

  • 支持 DNS over HTTPS / DNS over TLS

  • 免费 Analytics,看域名解析量

实战经验: 通常你可能没有在cloudflare 购买域名,需要从其他域名购买平台加入到cloudflare! 所以你需要连接、传送你域名过来、或者购买一个!考率到付款问题,比如我比较喜欢支付宝支付,cloudflare没有,我基本是连接域名!基本步骤是:

  1. 连接域名Connect your domain、复制dns服务器

  2. 去你的域名商、黏贴黏贴dns服务器

  3. 初次使用选择免费套餐,10分钟左右一半会显示域名添加成功,未成功一般是配置错误

  4. 如果你有大量域名需要解析、比如站群几百站、推荐使用工具来操作解析、clouflare 提供了很好的接口批量操作

Image

2. CDN 全球加速

用到的服务:Cloudflare CDN(核心功能)

把域名 NS 迁移到 Cloudflare 后,开启橙色云朵即自动享受 CDN。

免费套餐包含:

  • 无限带宽(不限流量)

  • DDoS 防护

  • 全球 300+ PoP 节点

  • 东南亚、欧美节点速度极快

  • 国内有部分优化(非 CN2 专线,但比裸 IP 好)

开启方式:

Dashboard → 选择域名 → DNS
→ 找到你的 A 记录
→ 点击云朵图标,变成橙色(Proxied 状态)

进阶优化:

Speed → Optimization
→ 开启 Auto Minify(压缩 JS/CSS/HTML)
→ 开启 Brotli 压缩
→ 开启 Rocket Loader(异步加载 JS)

实战经验:wordpress 建站CDN优化 可以选用cloudflare,官方自带插件,效果不错

Image

3. 免费 SSL 证书(15 年!支持泛域名)

前提: 域名必须托管在 Cloudflare DNS,且开启橙色云朵(代理模式)。Origin Certificate 只在 Cloudflare 代理链路中有效,不能直接用于裸 IP 访问。

用到的服务:SSL/TLS → Origin Certificates

普通 Let's Encrypt 证书只有 90 天,Cloudflare Origin Certificate 直接给你 15 年,还支持泛域名(*.yourdomain.com)。

申请步骤:

Cloudflare Dashboard
→ 选择你的域名
→ SSL/TLS → Origin Server
→ Create Certificate
→ 选择有效期:15 years
→ 填写域名:yourdomain.com, *.yourdomain.com
→ 下载 .pem 和 .key 文件
→ 部署到你的服务器 Nginx/Apache

Nginx 配置示例:

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate     /etc/ssl/cloudflare/cert.pem;
    ssl_certificate_key /etc/ssl/cloudflare/key.pem;
}

实战经验

以上是用于服务器部署的方式,你也可以90天的Let's Encrypt 自动无限续费、每月定时更新!

如果你的服务器只是部署了前端,比如nextjs、vue、react,那你直接使用flex 灵活ssl 方式就好了,不用动nginx 配置,我前端都是这样部署的! 注意这里很重要,选错会影响你的网站访问!

Image

4. 前端页面部署(Pages)

用到的服务:Cloudflare Pages

对标 Vercel / Netlify,免费无限带宽,支持绑定 GitHub 自动 CI/CD。

特点:

  • 无限带宽(Vercel 免费版有 100GB 限制)

  • 每月 500 次构建

  • 支持自定义域名 + 自动 HTTPS

  • 支持 Next.js、Nuxt、Astro、Hugo 等主流框架

部署步骤:

适合场景: 个人博客、文档站、落地页、工具站。

实战经验: 数据量一大,站点大一点会跑不动,需要买服务器部署! 每次更新了项目源码,需要重新编译部署! 目前 worker & pages 在同一入口 默认worker 账号主页 Build -> Compute -> worker & pages,pages 可以采用Hook 方式更新编译项目

Image

5. 计算层(Workers)

用到的服务:Cloudflare Workers

免费额度:每天 10 万次请求,每次最长 10ms CPU 时间。

Workers 是 Cloudflare 的边缘计算平台,代码跑在离用户最近的节点上。

典型用法:

① API 中转(解决跨域)

export default {
  async fetch(request) {
    const url = new URL(request.url);
    const targetUrl = "https://api.openai.com" + url.pathname + url.search;

    return fetch(targetUrl, {
      method: request.method,
      headers: request.headers,
      body: request.body,
    });
  }
};

② AI 套壳(OpenAI / Claude API 中转)

  • 把 Workers 部署在海外节点

  • 国内用户请求你的域名,Workers 转发到 OpenAI

  • 解决国内无法直连 OpenAI 的问题

③ 当代理节点(见第 1 条)

6. 数据库(D1 SQLite)

用到的服务:D1 Database

免费额度:5GB 存储,每天 500 万次读取,10 万次写入。

D1 是 Cloudflare 的边缘 SQLite 数据库,配合 Workers 使用,零运维。

创建和使用:

# 用 Wrangler CLI 创建数据库
npx wrangler d1 create my-database

# 执行 SQL
npx wrangler d1 execute my-database --command "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)"

在 Worker 中查询:

export default {
  async fetch(request, env) {
    const { results } = await env.DB.prepare(
      "SELECT * FROM users WHERE id = ?"
    ).bind(1).all();

    return Response.json(results);
  }
};

wrangler.toml 绑定:

[[d1_databases]]
binding = "DB"
database_name = "my-database"
database_id = "your-database-id"

Image

7. 图床(R2 对象存储)

用到的服务:Cloudflare R2

免费额度:10GB 存储,每月 100 万次 A 类操作(写),1000 万次 B 类操作(读),出站流量完全免费

对比 AWS S3:S3 出站流量按 GB 收费,R2 出站免费,这是核心优势。

创建 R2 Bucket:

Dashboard → R2 → Create bucket → 填写名称

通过 Workers 提供公开访问:

export default {
  async fetch(request, env) {
    const key = new URL(request.url).pathname.slice(1);
    const object = await env.MY_BUCKET.get(key);

    if (!object) return new Response("Not Found", { status: 404 });

    return new Response(object.body, {
      headers: { "Content-Type": object.httpMetadata.contentType }
    });
  }
};

适合场景: 博客图床、静态资源托管、备份存储。

和aws云服务对比 cloudflare 使用会更简单、更容易配置、效果也不差! 并不是完全免费的使用需要绑定支付方式!

Image

8. 邮箱转发(Email Routing)

用到的服务:Email Routing

免费功能:无限别名,绑定自己的域名,转发到任意邮箱。

配置步骤:

Dashboard → 选择域名 → Email → Email Routing
→ 开启 Email Routing
→ Add address:填写别名(如 hello@yourdomain.com)
→ 转发到你的 Gmail / QQ 邮箱

玩法:

通配符规则:在 Catch-all address 里设置,所有未匹配的邮件统一转发。

Image

9. 短链接(Workers + KV)

用到的服务:Workers + KV Storage

KV 免费额度:每天 10 万次读取,1000 次写入,1GB 存储。

实现思路:

用户访问 go.yourdomain.com/abc
→ Worker 查询 KV:abc → https://long-url.com/very/long/path
→ 302 重定向

核心代码:

export default {
  async fetch(request, env) {
    const slug = new URL(request.url).pathname.slice(1);

    if (!slug) return new Response("Short URL Service");

    const target = await env.LINKS.get(slug);
    if (!target) return new Response("Not Found", { status: 404 });

    return Response.redirect(target, 302);
  }
};

添加短链(通过 Wrangler):

npx wrangler kv:key put --binding=LINKS "abc" "https://your-long-url.com"

适合有营销推广短链接需求的时候使用

Image

10. 内网穿透(Cloudflare Tunnel)

用到的服务:Cloudflare Tunnel(原 Argo Tunnel)

免费功能:把本地服务暴露到公网,走 Cloudflare 的加密隧道,不需要公网 IP,不需要买服务器。

安装 cloudflared:

# macOS
brew install cloudflare/cloudflare/cloudflared

# Linux
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
chmod +x cloudflared-linux-amd64
sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared

快速使用(临时隧道):

# 本地跑着一个 3000 端口的服务
cloudflared tunnel --url http://localhost:3000
# 会生成一个临时的 *.trycloudflare.com 地址

绑定自定义域名(持久隧道):

cloudflared tunnel login
cloudflared tunnel create my-tunnel
cloudflared tunnel route dns my-tunnel demo.yourdomain.com

配置文件 ~/.cloudflared/config.yml:

tunnel: <tunnel-id>
credentials-file: ~/.cloudflared/<tunnel-id>.json
ingress:
  - hostname: demo.yourdomain.com
    service: http://localhost:3000
  - service: http_status:404
cloudflared tunnel run my-tunnel

适合场景: 给客户演示本地 demo、家庭 NAS 远程访问、开发环境 Webhook 调试。

新手可以先使用ngork免费额度,再结合这个cloudflared工具来使用, 免费是真香!shopify app 开发这个工具是不错的助力,目前正在使用!

Image

11. 安全限制特定ip 才能访问

用到的服务:WAF 自定义规则(推荐Free 计划可用)

选择你的域名 进入 Security → WAF → Custom Rules 点击 Create rule,配置如下: 仅限加拿大、美国ip可以访问你的站点

Image

除此之外还可以使用 IP Access Rules(简单封锁/允许)

进入 Security → WAF → Tools 在 IP Access Rules 中: Value 填写国家代码(如 CN)| Action 选 Block 或 Allow |应用范围选 This Website 或 All websites

或者配置防火墙规则表达式(精细控制)

只允许中国大陆 + 香港访问,其余封锁(not ip.geoip.country in {"CN" "HK"}) 允许特定国家 + 特定路径组合 (ip.geoip.country ne "CN" and http.request.uri.path contains "/admin")

总结:免费套餐一览表

Image

Cloudfare API

Cloudfare 有非常丰富功能和应用,以上只是一小部分!如果只是一个站,你可以手动。如果有几十几百个站,可以结合api 设计集成为系统或者做成工具!详情看官方文档!

Image

最后

Cloudflare 的免费套餐对个人开发者来说几乎是无敌的存在。一个账号 + 一个域名(.com 约 $10/年),就能搭起一套完整的基础设施。

域名是唯一的成本,其他全免费! 小伙伴们快点用起来吧!本文首发Thinkwind文档

本文由我和claude共同完成,如果对你有点帮助,欢迎关注我!

有任何问题、欢迎评论区回复,我看到会及时回复!