上一篇 下一篇 分享链接 返回 返回顶部

Cloudflare 近期更新盘点:Workers、R2、D1、Tunnel 常用命令一次整理

发布人:慈云数据-客服中心 发布时间:24小时前 阅读量:4

Cloudflare 最新更新内容汇总|附完整命令

Cloudflare 近年来的产品更新非常密集,从传统的 CDN、DNS、防护能力,逐步扩展到开发者平台、安全访问、边缘计算、AI 网关、对象存储、数据库、零信任网络等多个方向。对于站长、开发者、运维工程师来说,Cloudflare 已经不只是“套一层 CDN”的工具,而是一个覆盖网站性能优化、网络安全、Serverless 应用开发、全球边缘部署和企业访问控制的综合平台。

本文将围绕 Cloudflare 近期较重要的更新方向进行汇总,并附上常用完整命令,方便你快速上手 Workers、Pages、R2、D1、KV、Queues、Tunnel、Zero Trust、WARP 等功能。

说明:Cloudflare 更新频率较高,不同账号、区域和套餐可用功能可能略有差异。实际使用时建议同时参考 Cloudflare 官方文档和控制台提示。


一、Cloudflare 更新重点概览

Cloudflare 的最新更新主要集中在以下几个方向:

  1. Workers 开发者平台增强

    • Wrangler CLI 持续更新;
    • Workers 支持更完善的本地开发、环境变量、Secrets、部署管理;
    • 支持与 KV、D1、R2、Queues、Durable Objects 等服务深度集成。
  2. Pages 与全栈部署能力增强

    • Cloudflare Pages 不再只是静态站点托管;
    • Pages Functions 支持边缘函数;
    • 可与 GitHub、GitLab 连接,实现自动构建和部署。
  3. R2 对象存储持续完善

    • R2 主打无出口流量费;
    • 适合图床、备份、静态资源、音视频资源分发;
    • 支持 S3 兼容 API,方便迁移。
  4. D1 数据库逐渐成熟

    • D1 是 Cloudflare 的 Serverless SQL 数据库;
    • 基于 SQLite,适合轻量应用、博客系统、API 服务;
    • 可与 Workers 快速绑定使用。
  5. Cloudflare Tunnel 更易用

    • 无需公网 IP;
    • 可以把本地服务、安全内网服务暴露到公网;
    • 适合家庭服务器、NAS、内网管理面板、开发测试环境。
  6. Zero Trust 与 WARP 安全能力增强

    • Zero Trust 提供身份验证、访问策略、应用隔离;
    • WARP 可用于安全代理、企业设备接入和网络优化;
    • 适合远程办公、企业内网访问保护。
  7. AI Gateway 和 Workers AI

    • Cloudflare 开始强化 AI 基础设施;
    • AI Gateway 可统一管理 AI API 请求;
    • Workers AI 可在边缘调用模型能力。

二、Wrangler CLI:Cloudflare 开发者必备工具

Wrangler 是 Cloudflare 官方命令行工具,用于创建、开发、测试和部署 Workers、Pages、D1、R2、KV 等项目。

1. 安装 Node.js

建议使用较新的 Node.js LTS 版本。

node -v
npm -v

如果未安装 Node.js,可以前往官网下载:

https://nodejs.org/

也可以使用 nvm 安装:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
node -v
npm -v

2. 安装 Wrangler

npm install -g wrangler

检查版本:

wrangler --version

3. 登录 Cloudflare

wrangler login

执行后会打开浏览器,授权 Wrangler 访问你的 Cloudflare 账号。

查看当前登录用户:

wrangler whoami

三、Cloudflare Workers 更新与常用命令

Cloudflare Workers 是运行在 Cloudflare 全球边缘网络上的 Serverless 计算平台。它适合部署 API、代理服务、鉴权逻辑、边缘缓存逻辑、轻量后端等。

1. 创建 Workers 项目

npm create cloudflare@latest my-worker

进入项目目录:

cd my-worker

启动本地开发:

npm run dev

或者:

wrangler dev

2. 部署 Workers

wrangler deploy

部署成功后,Cloudflare 会返回一个类似下面的地址:

https://my-worker.username.workers.dev

3. 查看项目配置

通常 Workers 项目会有一个 wrangler.tomlwrangler.jsonc 配置文件。

示例:

name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-06-01"

如果你使用 TypeScript,可以在 src/index.ts 中编写:

export default {
  async fetch(request: Request): Promise {
    return new Response("Hello Cloudflare Workers!");
  },
};

4. 设置环境变量

普通变量可以写入配置文件:

[vars]
API_BASE_URL = "https://api.example.com"

在 Workers 中读取:

export interface Env {
  API_BASE_URL: string;
}

export default {
  async fetch(request: Request, env: Env): Promise {
    return new Response(env.API_BASE_URL);
  },
};

5. 设置 Secrets

敏感信息不要写入配置文件,应使用 Secret。

wrangler secret put API_TOKEN

查看 Secret 列表:

wrangler secret list

删除 Secret:

wrangler secret delete API_TOKEN

四、Cloudflare Pages:静态站点与全栈应用部署

Cloudflare Pages 适合部署博客、文档站、前端应用,也支持 Pages Functions 实现服务端逻辑。

常见框架包括:

  • Vue / Vite
  • React / Next.js
  • Astro
  • Nuxt
  • Hugo
  • Hexo
  • Docusaurus

1. 创建 Vite 项目

npm create vite@latest my-pages-app
cd my-pages-app
npm install
npm run dev

2. 构建项目

npm run build

一般构建目录是:

dist

3. 使用 Wrangler 部署 Pages

wrangler pages project create my-pages-app

部署:

wrangler pages deploy dist --project-name=my-pages-app

4. 连接 Git 仓库自动部署

如果你想通过 GitHub 或 GitLab 自动部署,可以在 Cloudflare 控制台操作:

Cloudflare Dashboard
→ Workers & Pages
→ Create application
→ Pages
→ Connect to Git
→ 选择仓库
→ 设置构建命令和输出目录

常见构建配置:

Build command: npm run build
Build output directory: dist

Next.js、Nuxt、Astro 等框架可能需要根据官方适配器进行调整。


五、R2 对象存储:无出口流量费的存储方案

Cloudflare R2 是对象存储服务,最大特点是取消传统对象存储中常见的出口流量费用,非常适合存储图片、附件、静态资源和备份文件。

1. 创建 R2 Bucket

wrangler r2 bucket create my-bucket

查看 Bucket 列表:

wrangler r2 bucket list

删除 Bucket:

wrangler r2 bucket delete my-bucket

2. 上传文件到 R2

wrangler r2 object put my-bucket/test.txt --file ./test.txt

查看对象:

wrangler r2 object get my-bucket/test.txt

删除对象:

wrangler r2 object delete my-bucket/test.txt

3. Workers 绑定 R2

wrangler.toml 中添加:

[[r2_buckets]]
binding = "MY_BUCKET"
bucket_name = "my-bucket"

Workers 示例代码:

export interface Env {
  MY_BUCKET: R2Bucket;
}

export default {
  async fetch(request: Request, env: Env): Promise {
    const url = new URL(request.url);
    const key = url.pathname.slice(1);

    if (!key) {
      return new Response("Missing object key", { status: 400 });
    }

    const object = await env.MY_BUCKET.get(key);

    if (!object) {
      return new Response("Object not found", { status: 404 });
    }

    return new Response(object.body, {
      headers: {
        "Content-Type": object.httpMetadata?.contentType || "application/octet-stream",
      },
    });
  },
};

部署:

wrangler deploy

六、D1 数据库:Cloudflare Serverless SQL

D1 是 Cloudflare 提供的 Serverless SQL 数据库,适合轻量级应用、用户系统、配置系统、评论系统、博客后台等场景。

1. 创建 D1 数据库

wrangler d1 create my-database

创建后会输出类似配置:

[[d1_databases]]
binding = "DB"
database_name = "my-database"
database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

将其添加到 wrangler.toml

2. 创建数据表

新建 SQL 文件:

mkdir migrations
touch migrations/0001_create_users.sql

写入 SQL:

CREATE TABLE users (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL,
  email TEXT NOT NULL UNIQUE,
  created_at TEXT DEFAULT CURRENT_TIMESTAMP
);

执行本地数据库迁移:

wrangler d1 execute my-database --local --file=./migrations/0001_create_users.sql

执行远程数据库迁移:

wrangler d1 execute my-database --remote --file=./migrations/0001_create_users.sql

3. 插入数据

wrangler d1 execute my-database --remote --command="INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');"

查询数据:

wrangler d1 execute my-database --remote --command="SELECT * FROM users;"

4. Workers 绑定 D1

[[d1_databases]]
binding = "DB"
database_name = "my-database"
database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

示例代码:

export interface Env {
  DB: D1Database;
}

export default {
  async fetch(request: Request, env: Env): Promise {
    const result = await env.DB.prepare("SELECT * FROM users").all();

    return new Response(JSON.stringify(result), {
      headers: {
        "Content-Type": "application/json",
      },
    });
  },
};

七、KV:适合配置和缓存的键值存储

Cloudflare KV 是全球分布式键值存储,适合保存配置、缓存数据、短文本、开关状态等。

1. 创建 KV Namespace

wrangler kv namespace create MY_KV

创建预览环境 KV:

wrangler kv namespace create MY_KV --preview

配置示例:

[[kv_namespaces]]
binding = "MY_KV"
id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
preview_id = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"

2. 写入 KV

wrangler kv key put --binding=MY_KV site_name "My Cloudflare Site"

读取 KV:

wrangler kv key get --binding=MY_KV site_name

删除 KV:

wrangler kv key delete --binding=MY_KV site_name

列出 Key:

wrangler kv key list --binding=MY_KV

3. Workers 中读取 KV

export interface Env {
  MY_KV: KVNamespace;
}

export default {
  async fetch(request: Request, env: Env): Promise {
    const siteName = await env.MY_KV.get("site_name");

    return new Response(siteName || "No value found");
  },
};

八、Queues:异步任务队列

Cloudflare Queues 适合处理异步任务,例如发送邮件、日志处理、订单处理、图片处理、Webhook 重试等。

1. 创建队列

wrangler queues create my-queue

查看队列:

wrangler queues list

删除队列:

wrangler queues delete my-queue

2. 配置生产者和消费者

wrangler.toml 示例:

[[queues.producers]]
binding = "MY_QUEUE"
queue = "my-queue"

[[queues.consumers]]
queue = "my-queue"

3. Workers 示例

export interface Env {
  MY_QUEUE: Queue;
}

export default {
  async fetch(request: Request, env: Env): Promise {
    await env.MY_QUEUE.send({
      type: "email",
      to: "user@example.com",
      subject: "Welcome",
    });

    return new Response("Message sent to queue");
  },

  async queue(batch: MessageBatch, env: Env): Promise {
    for (const message of batch.messages) {
      console.log("Processing message:", message.body);
      message.ack();
    }
  },
};

部署:

wrangler deploy

九、Cloudflare Tunnel:无公网 IP 暴露本地服务

Cloudflare Tunnel 是很多个人站长和企业内网用户非常喜欢的功能。它可以让你在没有公网 IP、不开放防火墙端口的情况下,把本地服务安全地暴露到公网。

1. 安装 cloudflared

macOS:

brew install cloudflare/cloudflare/cloudflared

Debian / Ubuntu:

curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

CentOS / RHEL:

curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm -o cloudflared.rpm
sudo rpm -i cloudflared.rpm

检查版本:

cloudflared --version

2. 登录 Cloudflare

cloudflared tunnel login

3. 创建 Tunnel

cloudflared tunnel create my-tunnel

查看 Tunnel:

cloudflared tunnel list

4. 配置 Tunnel

创建配置目录:

mkdir -p ~/.cloudflared

编辑配置文件:

nano ~/.cloudflared/config.yml

示例配置:

tunnel: my-tunnel
credentials-file: /root/.cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json

ingress:
  - hostname: app.example.com
    service: http://localhost:3000
  - hostname: ssh.example.com
    service: ssh://localhost:22
  - service: http_status:404

5. 绑定 DNS

cloudflared tunnel route dns my-tunnel app.example.com

如果还要绑定 SSH:

cloudflared tunnel route dns my-tunnel ssh.example.com

6. 启动 Tunnel

cloudflared tunnel run my-tunnel

7. 安装为系统服务

Linux:

sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared

查看日志:

journalctl -u cloudflared -f

十、Zero Trust:保护内网应用和远程访问

Cloudflare Zero Trust 可以为你的内部服务增加身份认证和访问策略。例如,你可以让 admin.example.com 只有指定邮箱、指定组织成员或通过 SSO 的用户才能访问。

1. 基本使用流程

Cloudflare Dashboard
→ Zero Trust
→ Access
→ Applications
→ Add an application
→ Self-hosted
→ 填写应用域名
→ 设置访问策略

2. 常见策略

可以配置:

  • 指定邮箱访问;
  • 指定邮箱域名访问;
  • Google Workspace 登录;
  • GitHub 组织登录;
  • Okta / Azure AD / SAML 登录;
  • 指定国家或地区;
  • 指定设备状态;
  • 多因素认证。

示例策略:

Allow
Emails ending in: example.com
Require MFA: enabled

这类配置很适合保护:

  • 后台管理系统;
  • NAS 管理页面;
  • 内部 Git 服务;
  • 内部监控面板;
  • 数据库管理工具;
  • 临时测试环境。

十一、WARP:客户端安全接入

Cloudflare WARP 是一个客户端网络工具,可以用于个人网络加速、隐私保护,也可以结合 Zero Trust 做企业设备接入。

1. Linux 安装 WARP

Ubuntu / Debian 示例:

curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list

sudo apt update
sudo apt install cloudflare-warp

2. 注册并连接

warp-cli registration new
warp-cli connect

查看状态:

warp-cli status

断开连接:

warp-cli disconnect

设置模式:

warp-cli mode warp

或使用代理模式:

warp-cli mode proxy

查看设置:

warp-cli settings

十二、缓存与安全规则更新

Cloudflare 的缓存和安全规则也一直在优化。新控制台中,越来越多配置被整合到 Rules 体系中,例如:

  • Cache Rules;
  • Configuration Rules;
  • Transform Rules;
  • Redirect Rules;
  • Origin Rules;
  • WAF Custom Rules。

这些规则比旧版 Page Rules 更灵活,适合按路径、主机名、请求头、国家地区、Cookie 等条件精细化控制。

1. 常见缓存策略

例如,对于静态资源:

条件:
URI Path ends with .js
或 .css
或 .png
或 .jpg
或 .webp

动作:
Cache eligibility: Eligible for cache
Edge TTL: 1 month
Browser TTL: 1 month

对于 API:

条件:
URI Path starts with /api

动作:
Bypass cache

2. 常见安全策略

例如阻止特定国家访问后台:

条件:
URI Path starts with /admin
AND Country is not your allowed country

动作:
Block

限制异常 User-Agent:

条件:
User-Agent contains suspicious-bot

动作:
Managed Challenge

十三、常用 Cloudflare API 命令

如果你希望通过命令行调用 Cloudflare API,可以使用 curl

1. 设置变量

export CF_API_TOKEN="你的Cloudflare API Token"
export CF_ZONE_ID="你的Zone ID"
export CF_ACCOUNT_ID="你的Account ID"

2. 查询域名 Zone 信息

curl -X GET "https://api.cloudflare.com/client/v4/zones" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json"

3. 清理全部缓存

curl -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/purge_cache" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"purge_everything":true}'

4. 清理指定 URL 缓存

curl -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/purge_cache" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"files":["https://example.com/style.css","https://example.com/app.js"]}'

5. 查询 DNS 记录

curl -X GET "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json"

6. 添加 A 记录

curl -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "type": "A",
    "name": "www",
    "content": "1.2.3.4",
    "ttl": 1,
    "proxied": true
  }'

7. 添加 CNAME 记录

curl -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "type": "CNAME",
    "name": "app",
    "content": "example.pages.dev",
    "ttl": 1,
    "proxied": true
  }'

十四、实用部署组合推荐

1. 个人博客方案

推荐组合:

Cloudflare Pages + 自定义域名 + Cache Rules + Web Analytics

适合:

  • Hexo;
  • Hugo;
  • Astro;
  • VitePress;
  • Docusaurus。

常用命令:

npm run build
wrangler pages deploy dist --project-name=my-blog

2. 图床与静态资源方案

推荐组合:

R2 + Workers + 自定义域名 + Cache Rules

适合:

  • 图片托管;
  • 文件下载;
  • 静态资源分发;
  • 备份资源公开访问。

3. 轻量后端 API 方案

推荐组合:

Workers + D1 + KV + Queues

适合:

  • 用户系统;
  • 表单提交;
  • 评论系统;
  • Webhook;
  • 轻量 CMS。

部署命令:

wrangler deploy

4. 内网穿透方案

推荐组合:

Cloudflare Tunnel + Zero Trust Access

适合:

  • 家庭 NAS;
  • 内网服务;
  • 公司后台;
  • 测试环境;
  • 远程 SSH。

启动命令:

cloudflared tunnel run my-tunnel

十五、使用 Cloudflare 的注意事项

虽然 Cloudflare 功能强大,但实际使用时仍需要注意以下几点:

  1. 不要把敏感密钥写进代码仓库
    应使用 wrangler secret put 或 Cloudflare 控制台中的环境变量功能。

  2. 缓存规则要谨慎配置
    API、后台页面、用户隐私页面不应随意缓存,否则可能导致数据泄露或用户看到错误内容。

  3. R2 公开访问需要做好权限控制
    如果使用 Workers 代理 R2 文件,应判断哪些文件允许公开访问。

  4. Tunnel 不等于绝对安全
    Tunnel 只是安全暴露服务的一部分,建议配合 Zero Trust Access、MFA、访问策略使用。

  5. Workers 有运行限制
    不同套餐在 CPU 时间、请求量、子请求数、内存等方面可能不同,大型后端服务需要提前评估。

  6. API Token 权限要最小化
    创建 API Token 时只授予必要权限,避免使用全局 API Key。


十六、总结

Cloudflare 的最新更新方向非常明确:它正在从 CDN 和安全防护平台,逐步演进为一个完整的边缘云平台。对于普通站长,它可以提供 DNS、CDN、防 DDoS、缓存优化和 Pages 托管;对于开发者,它提供 Workers、D1、KV、R2、Queues 等 Serverless 能力;对于企业,它提供 Zero Trust、WARP、Access、Gateway、Tunnel 等安全访问方案。

如果你只是部署一个静态站点,可以从 Cloudflare Pages 开始;如果你需要对象存储,可以使用 R2;如果你要开发轻量 API,可以选择 Workers + D1;如果你想把内网服务安全暴露到公网,可以使用 Cloudflare Tunnel + Zero Trust。

总体来看,Cloudflare 的优势在于:

  • 全球边缘网络覆盖广;
  • 入门成本低;
  • 开发者工具完善;
  • 与 DNS、CDN、安全能力天然集成;
  • Serverless 生态越来越完整。

对于希望降低服务器维护成本、提升访问速度、增强安全能力的个人和团队来说,Cloudflare 已经是一个非常值得长期关注和使用的平台。上文列出的命令基本覆盖了日常使用中的核心场景,你可以根据自己的业务需求组合使用,逐步搭建属于自己的边缘应用架构。

目录结构
全文