把域名接入 Cloudflare:从改 NS 到小橙云,一篇讲清楚

2026-10-18·约 5 分钟读完DNSCloudflare
封面——把域名接入 Cloudflare

很多朋友买了域名、租了服务器,网站也跑起来了,但总有人跟你说「上个 Cloudflare 吧」。上了能干嘛?怎么上?上完网站打不开了怎么办?这篇就把这件事从头到尾讲清楚。

先说结论:接入 Cloudflare 本质上只做了一件事——把域名的「解析权」交给 Cloudflare。之后它既是你的 DNS,又可以站在你服务器前面当「门卫」。整个过程不用改一行网站代码,免费套餐就够个人站用。

下面所有示例都用 example.com 和文档专用 IP 192.0.2.1,换成你自己的就行。

1. 先搞懂原理:Cloudflare 站在了哪儿

接入之前,访客的浏览器查到你服务器的真实 IP,直接连过去。

接入之后,DNS 查询返回的是 Cloudflare 边缘节点的 IP。访客先连到离他近的 Cloudflare 节点,节点再去你的服务器(官方叫「源站」,Origin)拿内容。这就是「反向代理」。

接入前后请求路径对比
接入前后请求路径对比

好处很直接:静态文件可以在边缘缓存,源站压力小;攻击流量先打在 Cloudflare 身上;源站 IP 也不再直接暴露在 DNS 里(当然,如果你以前用过真实 IP 解析,历史记录可能还查得到,这个要心里有数)。

所以记住一句话:它是门卫,不是房子。网站还是跑在你自己的服务器上。

2. 接入流程:四步走完

接入流程四步图
接入流程四步图

第一步,添加域名。 注册并登录 Cloudflare 后台,进入 Domains,选择 Onboard a domain,输入根域名(example.com,不要带 www),然后选 Free 套餐。

第二步,核对 DNS 记录。 Cloudflare 会自动扫描你现有的记录,但官方文档写得很明白:扫描不保证找全。所以一定要拿原来 DNS 服务商的记录列表逐条对一遍,尤其是根域名、www 和邮件相关的记录。漏一条 MX,你的企业邮箱就收不到信了,哈哈,这种坑踩一次就记住了。

第三步,去注册商改 NS。 Cloudflare 会给你分配两个名字类似 xxx.ns.cloudflare.com 的 Nameserver,而且是自动分配、不能自己挑。到你买域名的地方(阿里云、腾讯云、Namecheap 之类)找到「修改 DNS 服务器」,删掉原来的,换成这两个,一个字母都不能抄错。

这里有个容易被忽略的点:如果域名开着 DNSSEC,必须先在注册商那边关掉再改 NS,否则域名可能直接无法解析。等 Cloudflare 显示 Active 之后,再在 Cloudflare 里重新开启。

第四步,等待生效。 官方说法是最长等 24 小时,实际上常常快得多。生效后 Cloudflare 会发邮件,后台状态也会变成 Active。

3. DNS 记录:小橙云和小灰云

这是整个接入最核心的一个开关。A、AAAA、CNAME 记录旁边都有一个云朵图标:

  • 橙色(Proxied):流量经过 Cloudflare,享受缓存、DDoS 防护等功能,DNS 里查到的是 Cloudflare 的 IP;
  • 灰色(DNS only):Cloudflare 只负责解析,返回你的真实 IP,流量不经过它。

一个典型个人站的记录表大概长这样:

text
类型    名称      内容                      代理状态
A       @         192.0.2.1                 橙云 Proxied
CNAME   www       example.com               橙云 Proxied
A       ssh       192.0.2.1                 灰云 DNS only
MX      @         10 mx1.mail-provider.test 无(MX 不能代理)
TXT     @         "v=spf1 include:... ~all" 无
CNAME   verify    xxx.third-party.test      灰云 DNS only

我的判断标准很简单:网页流量开橙云,其他一律灰云。SSH、数据库、邮件服务器这些非网页服务,免费套餐的代理默认只转发 HTTP/HTTPS 常用端口,开了橙云反而连不上;第三方平台用来验证域名所有权的 CNAME,官方也建议用灰云。

不过灰云有个副作用要想清楚:上表里的 ssh 记录指向的就是源站 IP,等于在 DNS 里公开告诉别人「我的服务器在这儿」,前面橙云藏 IP 的效果就打了折扣。比较稳妥的做法是 SSH 直接用 IP 连,不单独建记录,或者以后用 Tunnel 来解决。

4. 验证:别光看后台,用命令说话

后台显示 Active 不代表一切正常,我习惯自己敲几条命令确认一下:

bash
# 1) 看 NS 是否已经换成 Cloudflare(macOS / Linux)
dig ns example.com @1.1.1.1 +short
# 期望输出两行 *.ns.cloudflare.com

# Windows 用 nslookup
nslookup -type=ns example.com 1.1.1.1

# 2) 看橙云记录解析出来的是不是 Cloudflare 的 IP
dig example.com +short

# 3) 看响应头里有没有 Cloudflare 的痕迹
curl -sI https://example.com | grep -iE "server|cf-ray|cf-cache-status"
# server: cloudflare
# cf-ray: 8xxxxxxxxxxxxxxx-HKG
# cf-cache-status: DYNAMIC
终端验证命令示例
终端验证命令示例

看到 server: cloudflare 和 cf-ray,说明请求确实经过了 Cloudflare。cf-ray 末尾那三个字母是处理这次请求的机房代码。如果不想敲命令,也可以用 whatsmydns.net 这类网站看各地的解析结果,不过它们有缓存,可能比实际慢一点。如果 NS 一直没变,大概率是注册商那边没保存成功,或者 DNSSEC 没关。

5. SSL/TLS:最容易翻车的地方

接入后最常见的事故就是浏览器报 ERR_TOO_MANY_REDIRECTS(重定向次数过多)。原因几乎都出在加密模式上。

先理解一点:开了橙云之后有两段连接——访客到 Cloudflare 一段,Cloudflare 到源站一段。前一段 Cloudflare 免费给你签证书;后一段怎么连,就由 SSL/TLS 加密模式决定。

SSL/TLS 加密模式对比
SSL/TLS 加密模式对比
  • Flexible:访客到 Cloudflare 是 HTTPS,Cloudflare 到源站走明文 HTTP;
  • Full:到源站也走 HTTPS,但不校验证书,自签名也行;
  • Full (strict):到源站走 HTTPS,并且校验证书,要求是 Let's Encrypt 这类公共 CA 证书,或者 Cloudflare 的 Origin CA 证书。

经典翻车现场是这样的:你的 Nginx 配了「所有 HTTP 跳转 HTTPS」,Cloudflare 又是 Flexible。于是 Cloudflare 用 HTTP 请求源站 → 源站说去 HTTPS → 访客重新请求,Cloudflare 又用 HTTP 去问源站……无限循环。

解决办法:源站装好证书,把模式改成 Full (strict)。官方也明确推荐尽量用 Full 或 Full (strict)。另外,新账号可能默认是 Automatic SSL/TLS,它会自动探测并只往更安全的方向调整,不放心的话可以在 SSL/TLS 的 Overview 页面手动选 Custom。

顺手再做一件事:在 Edge Certificates 页面打开 Always Use HTTPS,让 Cloudflare 在边缘统一做 HTTP→HTTPS 跳转。官方建议这时候不要再在源站做跳转,免得又绕成圈。

6. 缓存:它默认并不缓存你的网页

很多人以为开了橙云整站都被缓存了,其实不是。Cloudflare 默认只按文件扩展名缓存静态资源,比如 JS、CSS、JPG、PNG、WOFF2 等,HTML 和 JSON 默认不缓存。响应里带 Set-Cookie,或者 Cache-Control 写了 no-store、private,也不会缓存。

判断方法还是看响应头:

bash
curl -sI https://example.com/static/app.js | grep -i cf-cache-status
# 第一次多半是 MISS,再请求一次变成 HIT 就说明缓存生效了
# 访问 HTML 页面通常是 DYNAMIC,表示这类资源默认不进缓存

想缓存更多内容,可以用 Cache Rules 单独配置;更新了文件却看不到变化,就去后台清除缓存(Purge)。调试期间还可以开 Development Mode,它会暂停缓存三小时。

7. 接进来之后,还能免费玩什么

域名一旦挂在 Cloudflare 上,下面这些免费功能基本都能顺手用起来:

  • 免费 SSL 证书:边缘证书自动签发、自动续期,不用自己操心 certbot;
  • CDN 与 DDoS 防护:橙云记录默认就有;
  • Email Routing:把 me@example.com 收到的信转发到你的 Gmail 或 QQ 邮箱,零成本拥有域名收件地址;
  • Pages / Workers:前端项目和轻量后端直接部署在边缘,配合自己的域名用;
  • Tunnel:家里电脑没有公网 IP,也能安全地把服务暴露出去,不用开端口;
  • Turnstile:替代传统验证码的人机验证;
  • Web Analytics:不依赖 Cookie 的访问统计。

后面几个,每一个都够单独写一篇,之后慢慢更。

8. 国内站长要特别注意的几件事

这部分我尽量只说能确认的:

第一,速度不一定变快。 免费套餐的节点都在中国大陆以外,Cloudflare 官方文档自己也说,从境外绕进来会有明显的延迟和稳定性问题。Cloudflare 的中国网络是和京东云合作的,但只对企业版单独开通,并且要求每个根域名都有有效的 ICP 备案。所以主要用户在大陆的话,接入前先实测,别想当然。

第二,备案的事分开看。 服务器在大陆就必须备案,Cloudflare 不能帮你绕过去。另外,只改 NS 和把域名转移到 Cloudflare 注册商是两回事:转移会改变注册商,可能跟备案信息对不上。有的接入商在备案审核期间还会要求域名解析在它家,具体以你的服务商要求为准。

第三,改之前先截图备份原来的解析记录。 真出问题了,把 NS 改回去就能回滚。

小结

如果只让我用一句话概括:

接入 Cloudflare = 改 NS 交出解析权 + 选对橙云灰云 + SSL 用 Full (strict)。

这三件事做对了,网站基本就稳了;剩下的缓存、邮件转发、Tunnel 都是锦上添花,按需开就行。它不是什么高深的技术,但每一个坑都真实存在,尤其是重定向循环和漏记录这两个,提前知道就能少折腾一晚上。

好啦,就写到这里,喜欢的朋友点个赞,谢谢。

本文用到的源码

Cloudflare 域名接入自检工具包:三个 Bash 脚本:查后缀是否在 PSL、用 DoH 确认 NS 已交给 Cloudflare、检查小橙云和缓存命中。

查看源码和下载 →