Cloudflare DNS 经常和“回源”一起出现,但两者不是一回事:DNS 记录描述名称如何解析;代理状态决定 HTTP/HTTPS 流量是否经由 Cloudflare;TLS 加密模式则描述访问者、Cloudflare 和源站之间的连接方式。配置前,先确认你的网站是跑在自己的 VPS 上,还是直接部署在 Cloudflare Pages。

DNS 记录分别做什么

  • A:把名称指向 IPv4 地址。
  • AAAA:把名称指向 IPv6 地址。只有源站和防火墙确实支持 IPv6 时才应配置。
  • CNAME:把名称指向另一个域名。
  • MX、TXT 等其他记录:用于邮件路由、域名验证等目的,不通过 Cloudflare 的 HTTP 代理。

记录中的名称、目标、TTL 和代理状态都应与服务商给出的目标值一致。常见 DNS 记录字段可在 Cloudflare DNS 记录文档中核对。

橙云代理与 DNS only

对可代理的 A、AAAA 和 CNAME 网站记录,开启代理后,HTTP/HTTPS 请求先进入 Cloudflare,再转发到后端;DNS 查询会返回 Cloudflare 的地址。设为 DNS only 后,DNS 会直接返回记录中的目标,访问者会直接连接目标服务器。

CDN 缓存与回源示意

这意味着 DNS only 通常会暴露 VPS 的源站 IP,并绕过 Cloudflare 的 HTTP 缓存和代理功能。Cloudflare 也指出,其他用途的记录(例如邮件或验证记录)应保持 DNS only。代理能力、适用记录和限制见代理状态官方说明。

VPS 网站的 TLS 回源

当请求经过 Cloudflare 时,会有访问者到 Cloudflare、以及 Cloudflare 到 VPS 两段连接。SSL/TLS 模式决定第二段是否加密以及如何校验源站证书。

如果 VPS 已配置有效证书,通常应使用 Full (strict),让 Cloudflare 验证源站证书。如果源站暂时无法提供有效证书,Full 会加密到源站的连接但不校验证书;应把它当作过渡并修复证书配置。Flexible 模式下,Cloudflare 到源站这段不使用 HTTPS,不适合作为安全的长期方案。具体模式定义和要求请看Cloudflare 加密模式说明。

Cloudflare Pages 不按 VPS 回源配置

如果网站托管在 Cloudflare Pages,先到 Cloudflare 控制台的 Workers & Pages → 你的 Pages 项目 → Custom domains → Set up a domain 添加自定义域名。

对于 apex 域名(例如 ygjoon.xyz),官方流程要求该域名作为 Cloudflare zone 并将 nameserver 指向 Cloudflare。对于子域名,可以按官方向导配置 CNAME 指向项目的 *.pages.dev 地址。只手动添加 CNAME、却没有先在 Pages 项目里关联自定义域名,可能导致域名无法正常启用。参见 Cloudflare Pages 自定义域名指南。

因此,部署到 Pages 时不要把 VPS 教程里的公网服务器 IP 填成 A 记录;按 Pages 项目向导完成域名关联。部署到自建 VPS 时,再根据该 VPS 的地址、代理需求和证书配置管理 DNS 与回源。

上线前核对

  1. 目标是 VPS 还是 Pages?确认后再选配置路径。
  2. A/AAAA/CNAME 的目标是否正确,IPv6 是否真实可用?
  3. 网站记录是否按需要启用代理;邮件和验证记录是否保持正确状态?
  4. VPS 源站是否安装证书,TLS 模式是否与证书情况匹配?
  5. Pages 自定义域是否已在 Pages 项目里添加并激活?

域名状态变化可能需要等待 DNS 缓存或平台证书签发。遇到问题时先核对 Cloudflare 面板中的记录和域名状态,不要通过反复修改多个设置来猜测原因。

相关阅读:从零上线一个网站:域名 + 服务器 + SSL 全流程。