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

实测 Cloudflare:从 DNS、CDN 到 Tunnel 的配置体验与常用命令整理

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

Cloudflare 测评报告|附完整命令

Cloudflare 是当前全球使用最广泛的网络基础设施服务商之一,核心产品覆盖 DNS 解析、CDN 加速、DDoS 防护、WAF Web 应用防火墙、Zero Trust、Cloudflare Tunnel、Workers 边缘计算、R2 对象存储 等多个方向。对于个人站长、中小型企业、跨境业务、SaaS 服务以及开发者而言,Cloudflare 往往是一个“低成本快速提升网站可用性、安全性和访问体验”的解决方案。

本文将从实际使用角度,对 Cloudflare 的主要功能、配置流程、性能表现、安全能力、适用场景和注意事项进行系统测评,并附上常用检测与部署命令,方便读者直接复现测试过程。


一、测评环境说明

为了尽量保证测评结果具有参考价值,本文假设的测试环境如下:

项目 说明
域名 已接入 Cloudflare 托管 DNS
源站服务器 Linux VPS,Ubuntu 22.04
Web 服务 Nginx
测试协议 HTTP / HTTPS
测试地区 中国大陆、香港、新加坡、美国、欧洲等节点
Cloudflare 套餐 Free / Pro 功能均有涉及,重点以 Free 可用功能为主
测试工具 curl、dig、ping、traceroute、mtr、openssl、ab、wrk、cloudflared

需要说明的是,Cloudflare 的实际访问效果会受到多方面因素影响,例如:访问者所在网络运营商、源站线路质量、DNS 解析策略、Cloudflare 边缘节点负载、网站缓存配置、是否开启 WAF 等。因此本文更偏向于“配置方法与测试思路”,而不是给出一个绝对固定的性能结论。


二、Cloudflare 核心能力概览

Cloudflare 的优势不只是 CDN,而是一个完整的边缘网络平台。常见能力包括:

  1. DNS 托管

    • 解析速度快;
    • 支持 DNSSEC;
    • 支持 CNAME Flattening;
    • 可通过 API 自动化管理解析记录。
  2. CDN 加速

    • 静态资源缓存;
    • 全球边缘节点分发;
    • 支持 Cache Rules 自定义缓存策略;
    • 可减少源站带宽压力。
  3. HTTPS 与证书管理

    • 免费提供边缘 HTTPS;
    • 支持 Full、Full Strict 模式;
    • 可签发 Origin Certificate 用于源站加密。
  4. DDoS 防护

    • 默认具备基础 DDoS 防护能力;
    • 可通过安全级别、挑战模式、规则进行加强。
  5. WAF 防护

    • 可防御常见 Web 攻击;
    • 包括 SQL 注入、XSS、恶意爬虫等;
    • 付费套餐能力更完整。
  6. Cloudflare Tunnel

    • 无需公网 IP 即可暴露内网服务;
    • 适合家庭服务器、内网面板、开发测试环境;
    • 可与 Zero Trust Access 结合进行身份认证。
  7. Workers 边缘计算

    • 在 Cloudflare 边缘节点运行 JavaScript / TypeScript;
    • 可实现请求转发、API 网关、A/B 测试、边缘鉴权等。
  8. R2 对象存储

    • 类似 S3 的对象存储;
    • 免出口流量费用是其重要特点;
    • 可与 Workers、Pages 等服务组合使用。

三、域名接入 Cloudflare 流程

1. 添加站点

进入 Cloudflare 控制台,添加你的域名。Cloudflare 会自动扫描已有 DNS 记录,例如:

  • A 记录;
  • AAAA 记录;
  • CNAME 记录;
  • MX 邮件记录;
  • TXT 验证记录。

添加完成后,需要将域名注册商处的 NS 服务器修改为 Cloudflare 提供的 NS。

2. 检查 NS 是否生效

修改 NS 后,全球 DNS 生效一般需要几分钟到 48 小时不等。可以使用以下命令检测:

dig NS example.com

也可以指定公共 DNS 查询:

dig @8.8.8.8 NS example.com
dig @1.1.1.1 NS example.com
dig @223.5.5.5 NS example.com

如果返回结果中出现 Cloudflare 的 nameserver,例如:

anna.ns.cloudflare.com
ivan.ns.cloudflare.com

说明域名已经正确接入。


四、DNS 解析测评

Cloudflare DNS 的响应速度通常表现不错,尤其是在国际网络环境中。我们可以使用 dig 测试解析延迟。

1. 查询 A 记录

dig example.com A

2. 查询解析耗时

dig example.com A | grep "Query time"

示例输出:

;; Query time: 12 msec

3. 对比不同公共 DNS

dig @1.1.1.1 example.com A | grep "Query time"
dig @8.8.8.8 example.com A | grep "Query time"
dig @223.5.5.5 example.com A | grep "Query time"
dig @114.114.114.114 example.com A | grep "Query time"

4. 查看是否命中 Cloudflare

如果 DNS 记录开启了橙色云朵代理,解析出来的 IP 一般会是 Cloudflare 的边缘 IP,而不是源站真实 IP。

dig example.com A +short

可以继续使用 whois 检查 IP 归属:

whois 104.21.1.1 | grep -i cloudflare

如果结果中包含 Cloudflare,说明当前域名流量已经经过 Cloudflare 代理。


五、HTTPS 配置测评

Cloudflare 提供多种 SSL/TLS 模式:

模式 说明 推荐程度
Off 不启用 HTTPS 不推荐
Flexible 用户到 Cloudflare 是 HTTPS,Cloudflare 到源站是 HTTP 不推荐
Full 用户到 Cloudflare、Cloudflare 到源站均可加密,但不严格校验证书 一般
Full Strict 全链路 HTTPS,且严格校验证书 推荐

实际生产环境建议使用 Full Strict

1. 检查 HTTPS 证书

curl -I https://example.com

查看响应头是否正常返回:

HTTP/2 200

2. 使用 OpenSSL 检查证书链

openssl s_client -connect example.com:443 -servername example.com

如果只想看证书信息,可以执行:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates

3. 检查 HTTP/2 支持

curl -I --http2 https://example.com

4. 检查 HTTP/3 支持

如果本地 curl 支持 HTTP/3,可执行:

curl -I --http3 https://example.com

如果命令报错,说明本地 curl 可能没有编译 HTTP/3 支持,不一定代表 Cloudflare 未开启 HTTP/3。


六、CDN 缓存能力测评

Cloudflare 的缓存能力是其核心优势之一。默认情况下,Cloudflare 主要缓存静态资源,例如:

  • 图片:.jpg.png.webp.gif
  • CSS:.css
  • JavaScript:.js
  • 字体文件:.woff.woff2
  • 视频或压缩包等部分静态资源。

动态 HTML 默认通常不缓存,除非配置 Cache Rules。

1. 查看缓存状态

使用 curl 查看响应头:

curl -I https://example.com/static/logo.png

重点关注:

CF-Cache-Status: HIT

常见状态包括:

状态 含义
HIT 命中缓存
MISS 未命中缓存,从源站拉取
EXPIRED 缓存过期,重新拉取
BYPASS 被规则绕过缓存
DYNAMIC 动态内容,未缓存
REVALIDATED 重新验证缓存

2. 连续请求测试

for i in {1..5}; do
  curl -I https://example.com/static/logo.png | grep -E "CF-Cache-Status|Age|Server"
  echo "-----"
done

如果第一次是 MISS,后续变成 HIT,说明缓存生效。

3. 测试 TTFB

curl -o /dev/null -s -w "DNS解析: %{time_namelookup}s\n连接耗时: %{time_connect}s\nTLS握手: %{time_appconnect}s\n首字节: %{time_starttransfer}s\n总耗时: %{time_total}s\n" https://example.com/

对比开启和关闭 Cloudflare 代理前后的 TTFB,可以观察 Cloudflare 对不同地区访问的影响。

4. 清理缓存

在 Cloudflare 控制台可以点击 Purge Cache。也可以通过 API 清理缓存。

清理全部缓存

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

清理指定 URL

curl -X POST "https://api.cloudflare.com/client/v4/zones/ZONE_ID/purge_cache" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"files":["https://example.com/static/logo.png"]}'

七、源站隐藏与真实 IP 保护

使用 Cloudflare 代理后,访问者看到的是 Cloudflare 边缘节点 IP,而不是源站 IP。这对源站安全很重要,但前提是源站不能被其他方式暴露。

1. 检查域名解析 IP

dig example.com A +short

2. 检查源站是否仍可直连

如果你知道源站 IP,例如 1.2.3.4,可以测试:

curl -I http://1.2.3.4
curl -I https://1.2.3.4

如果源站 IP 可直接访问,攻击者仍可能绕过 Cloudflare 直接攻击源站。因此建议在源站防火墙中只允许 Cloudflare IP 段访问 80/443 端口。

3. 获取 Cloudflare IP 段

curl https://www.cloudflare.com/ips-v4
curl https://www.cloudflare.com/ips-v6

4. 使用 UFW 放行 Cloudflare IP

先默认拒绝外部访问:

sudo ufw default deny incoming
sudo ufw default allow outgoing

放行 SSH,避免失联:

sudo ufw allow 22/tcp

放行 Cloudflare IPv4:

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
  sudo ufw allow from $ip to any port 80 proto tcp
  sudo ufw allow from $ip to any port 443 proto tcp
done

放行 Cloudflare IPv6:

for ip in $(curl -s https://www.cloudflare.com/ips-v6); do
  sudo ufw allow from $ip to any port 80 proto tcp
  sudo ufw allow from $ip to any port 443 proto tcp
done

启用 UFW:

sudo ufw enable
sudo ufw status numbered

注意:如果你的 SSH 端口不是 22,请务必先放行对应端口,否则可能无法远程连接服务器。


八、Nginx 配合 Cloudflare 获取真实访客 IP

默认情况下,Nginx 看到的访问 IP 是 Cloudflare 边缘节点 IP。如果需要记录真实访客 IP,需要配置 real_ip_header

1. 创建 Cloudflare IP 配置文件

sudo nano /etc/nginx/conf.d/cloudflare-real-ip.conf

写入以下内容:

real_ip_header CF-Connecting-IP;

set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;

set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

2. 测试并重载 Nginx

sudo nginx -t
sudo systemctl reload nginx

3. 查看访问日志

tail -f /var/log/nginx/access.log

如果配置正确,日志中应显示真实访客 IP,而不是 Cloudflare 节点 IP。


九、WAF 与安全策略测评

Cloudflare 的安全能力是很多用户接入的重要原因。即使是免费套餐,也可以使用基础防护、Bot Fight Mode、IP 规则、国家/地区限制等功能。

1. 常见安全配置建议

建议开启或配置:

  • SSL/TLS 使用 Full Strict;
  • Always Use HTTPS;
  • Automatic HTTPS Rewrites;
  • HTTP Strict Transport Security,谨慎开启;
  • Bot Fight Mode;
  • Security Level 设置为 Medium;
  • WAF Custom Rules;
  • Rate Limiting,视业务需求开启。

2. 使用 curl 模拟恶意请求

以下命令仅用于测试 WAF 是否有基础拦截效果:

curl -I "https://example.com/?id=1%27%20OR%20%271%27=%271"

模拟 XSS 参数:

curl -I "https://example.com/?q="

如果配置了相关 WAF 规则,可能会返回:

403 Forbidden

或出现 Cloudflare Challenge 页面。

3. 创建简单防护规则思路

例如:拦截包含明显 SQL 注入特征的请求参数,可在 Cloudflare 控制台中配置 Custom Rules:

(http.request.uri.query contains "union select")
or
(http.request.uri.query contains "' or '1'='1")
or
(http.request.uri.query contains "sleep(")

动作选择:

Block

不过需要注意,过于粗暴的规则可能误伤正常用户,建议先使用 LogManaged Challenge 观察效果。


十、性能压测与对比

Cloudflare 对性能的影响不能简单地说“一定变快”或“一定变慢”。对于距离源站较远的用户,Cloudflare 往往能缩短访问链路;对于源站本身就在用户附近、且动态内容较多的站点,Cloudflare 可能带来额外代理开销。

1. 使用 ab 测试

安装 Apache Bench:

sudo apt update
sudo apt install apache2-utils -y

测试并发请求:

ab -n 1000 -c 50 https://example.com/

参数说明:

  • -n 1000:总请求数 1000;
  • -c 50:并发数 50。

重点关注:

Requests per second
Time per request
Transfer rate

2. 使用 wrk 测试

安装 wrk:

sudo apt update
sudo apt install wrk -y

执行测试:

wrk -t4 -c100 -d30s https://example.com/

参数说明:

  • -t4:4 个线程;
  • -c100:100 个连接;
  • -d30s:持续 30 秒。

3. 测试静态资源缓存后的性能

wrk -t4 -c100 -d30s https://example.com/static/logo.png

如果资源已被 Cloudflare 缓存,理论上源站压力会明显降低。

4. 查看源站负载

top

或使用:

htop

如果未安装:

sudo apt install htop -y

同时查看 Nginx 连接:

ss -antp | grep nginx

十一、Cloudflare Tunnel 测评

Cloudflare Tunnel 是非常实用的功能,可以让没有公网 IP 的服务通过 Cloudflare 暴露到公网,同时避免直接开放源站端口。

1. 安装 cloudflared

Ubuntu / Debian 可使用:

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

检查版本:

cloudflared version

2. 登录 Cloudflare

cloudflared tunnel login

执行后会打开一个链接,选择对应域名授权。

3. 创建 Tunnel

cloudflared tunnel create my-tunnel

4. 创建配置文件

sudo mkdir -p /etc/cloudflared
sudo nano /etc/cloudflared/config.yml

示例配置:

tunnel: my-tunnel
credentials-file: /root/.cloudflared/你的隧道ID.json

ingress:
  - hostname: app.example.com
    service: http://localhost:8080
  - service: http_status:404

5. 添加 DNS 路由

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

6. 运行 Tunnel

cloudflared tunnel run my-tunnel

7. 安装为系统服务

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

Cloudflare Tunnel 的优点是部署简单、安全性较好,非常适合内网服务、开发环境、家庭实验室等场景。但如果业务对延迟极其敏感,仍需实测后再决定是否长期使用。


十二、Cloudflare Workers 简单测评

Workers 是 Cloudflare 的边缘计算平台,可在全球边缘节点执行代码。它非常适合做轻量 API、请求重写、边缘缓存、反向代理等。

1. 安装 Wrangler

npm install -g wrangler

检查版本:

wrangler --version

2. 登录 Cloudflare

wrangler login

3. 创建 Worker 项目

npm create cloudflare@latest my-worker

进入目录:

cd my-worker

4. 本地运行

npm run dev

或:

wrangler dev

5. 部署 Worker

wrangler deploy

6. 示例 Worker 代码

export default {
  async fetch(request, env, ctx) {
    return new Response("Hello from Cloudflare Workers!", {
      headers: {
        "content-type": "text/plain;charset=UTF-8",
      },
    });
  },
};

Workers 的优势是部署快、扩展性强、无需维护服务器。但免费额度、CPU 时间、请求数量等限制需要根据实际业务评估。


十三、Cloudflare R2 对象存储测评

R2 是 Cloudflare 推出的对象存储服务,兼容 S3 API,其最大亮点是免出口流量费。对于图床、静态资源分发、备份文件、下载站等场景较有吸引力。

1. 安装 AWS CLI

sudo apt update
sudo apt install awscli -y

2. 配置 R2 凭据

aws configure

依次输入:

AWS Access Key ID
AWS Secret Access Key
Default region name
Default output format

R2 的 region 可以填写:

auto

3. 上传文件到 R2

aws s3 cp ./test.jpg s3://your-bucket/test.jpg \
  --endpoint-url https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com

4. 查看 Bucket 文件

aws s3 ls s3://your-bucket \
  --endpoint-url https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com

5. 下载文件

aws s3 cp s3://your-bucket/test.jpg ./test-download.jpg \
  --endpoint-url https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com

R2 如果绑定自定义域名并配合 Cloudflare CDN,可以获得较好的静态资源分发体验。


十四、优点总结

综合使用体验来看,Cloudflare 的主要优点包括:

  1. 免费套餐可用性高

    • 对个人站长和小型项目非常友好;
    • DNS、CDN、基础防护、SSL 等功能已足够入门使用。
  2. 全球网络覆盖广

    • 对跨境访问、海外用户访问有明显帮助;
    • 静态资源缓存后可减少源站压力。
  3. 安全能力强

    • DDoS 防护、WAF、Bot 防护、访问规则等功能丰富;
    • 可隐藏源站 IP,降低直接攻击风险。
  4. 生态完整

    • Workers、Pages、R2、Tunnel、Zero Trust 可以组成完整云原生平台;
    • 很多场景无需传统服务器即可完成部署。
  5. 自动化能力好

    • API 文档完善;
    • 支持 Terraform、Wrangler、cloudflared 等工具链。

十五、缺点与注意事项

Cloudflare 并非所有场景都完美,也有一些需要注意的地方:

  1. 中国大陆访问不一定稳定

    • 免费套餐在中国大陆访问效果受网络环境影响较大;
    • 某些地区可能出现延迟高、丢包或节点绕路。
  2. 动态网站加速有限

    • 如果页面无法缓存,Cloudflare 只是代理转发;
    • 动态请求仍然依赖源站性能。
  3. 配置不当可能导致问题

    • Flexible SSL 容易引起重定向循环;
    • 缓存规则错误可能缓存用户敏感页面;
    • WAF 规则过严可能误伤正常访问者。
  4. 源站 IP 仍可能泄露

    • 历史 DNS 记录、邮件服务、子域名、证书透明日志等都可能暴露源站;
    • 接入 Cloudflare 后仍需配置源站防火墙。
  5. 部分高级功能需要付费

    • 更完整的 WAF、缓存分析、Argo Smart Routing、Load Balancing 等通常需要付费套餐。

十六、推荐配置方案

对于一般网站,推荐如下配置:

DNS

  • 主站 A / CNAME 开启橙色云朵;
  • 邮件相关记录不要开启代理;
  • 不需要代理的 API 或特殊服务使用灰色云朵。

SSL/TLS

  • 使用 Full Strict;
  • 开启 Always Use HTTPS;
  • 开启 Automatic HTTPS Rewrites;
  • HSTS 谨慎开启,确认全站 HTTPS 无误后再启用。

缓存

  • 静态资源设置较长缓存时间;
  • HTML 页面根据业务决定是否缓存;
  • 后台、登录、支付、用户中心等路径必须绕过缓存。

安全

  • 开启 Bot Fight Mode;
  • 设置合理 WAF 规则;
  • 对后台路径增加访问限制;
  • 源站防火墙仅允许 Cloudflare IP 访问 80/443。

源站

  • 配置真实 IP;
  • 定期更新 Cloudflare IP 段;
  • 使用有效证书;
  • 保持系统和 Web 服务更新。

十七、最终结论

Cloudflare 是一款非常成熟且功能全面的网络基础设施平台。对于个人站长,它可以免费提供 DNS、HTTPS、CDN 和基础安全防护;对于企业用户,它可以进一步提供 WAF、Zero Trust、负载均衡、边缘计算和对象存储等能力。

从测评结果看,Cloudflare 最适合以下场景:

  • 需要隐藏源站 IP;
  • 需要基础 DDoS 和 Web 防护;
  • 静态资源较多的网站;
  • 面向全球用户的网站;
  • 希望降低服务器带宽压力;
  • 需要快速部署内网穿透或边缘函数;
  • 希望通过低成本方式提升网站可靠性。

但如果你的主要用户集中在中国大陆,尤其是对访问延迟和稳定性要求很高的商业项目,建议务必进行多地区、多运营商实测。Cloudflare 免费套餐并不能保证中国大陆访问一定优秀,必要时可结合国内 CDN、海外优质线路服务器或多 CDN 调度方案。

总体来说,Cloudflare 的综合性价比非常高。只要正确配置 SSL、缓存、安全规则和源站防火墙,它可以显著提升网站的安全性、可用性和运维效率,是值得长期使用和深入研究的基础设施平台。

目录结构
全文