小黄云是 DNS 记录上的代理开关。开着,域名解析到 Cloudflare 的任播 IP,流量先过 Cloudflare 再回源站;关掉(灰云)就直接解析到源站真实 IP。
在 Cloudflare 的 DNS 记录列表里,每条 A、AAAA、CNAME 记录后面都跟着一个云朵图标。橙色的那个,中文圈习惯叫它「小黄云」——严格说是橙色,但叫顺了口就没人改了;官方文档里它的名字是 Proxied,灰色那个是 DNS only。
不少人接触 Cloudflare 就是冲着它来的:打开就能隐藏源站 IP、能挡 CC、还能白嫖 CDN 加速。这话不算错,但都少说了一半。下面把它真正做了什么、哪些记录必须关、国内环境要额外算哪笔账,一次讲清楚。
拨过去,变的其实是 DNS 应答
这个开关唯一直接改变的东西是:别人查询你的域名时,Cloudflare 给出的是谁的 IP 地址。
关着(灰云)的时候,Cloudflare 只是你的权威 DNS 服务器。有人查 www.example.com,它老老实实返回你填的那个 203.0.113.10,浏览器直接连过去。整个 HTTP 过程 Cloudflare 完全不参与,你在仪表盘上打开的缓存、WAF、页面规则,对这条记录一律无效——它甚至看不到这些请求,所以 HTTP 侧的分析数据也是空的。
开着(小黄云)的时候,同一个查询返回的是 Cloudflare 的 任播 IP——一批全球共用的共享地址,访客的请求会落在离他最近的那个数据中心。请求先在边缘节点上过一遍缓存、WAF 规则、DDoS 防护和证书,再由 Cloudflare 用你填的那个 203.0.113.10 回源。源站的真实地址就此从 DNS 应答里消失。
所以「开了小黄云就隐藏了源站 IP」这句话要加个限定词:隐藏的是这一条记录上的地址。同域名下的其它记录、历史解析、证书透明度日志,都不归这个开关管。
哪些记录能开,哪些天生没这个开关
能开代理的只有三种记录类型:A、AAAA、CNAME。这三种是用来解析地址的,Cloudflare 才有东西可换。MX、TXT、NS、SRV 这些类型的记录旁边根本不会出现云朵图标,它们永远是仅 DNS。
再往下还有几条规则,容易在改记录的时候踩到:
| 情况 | 实际行为 |
|---|---|
| 同名多条 A 记录,一橙一灰 | 只要有一条是橙的,这个主机名下的所有 A / AAAA 记录都按已代理处理。想灰就得全灰 |
| CNAME 链上某一环是橙的 | 整条链的流量都被代理。同账号内的多个域名互相 CNAME 时尤其容易出现这种「隔空生效」 |
| CNAME 指向别人 Cloudflare 账号下的域名 | 被禁止,访客会看到 1014 错误 |
| 已代理的 CNAME 记录 | 默认被展平,因为返回的本来就是任播 IP,不再返回目标主机名 |
| 已代理记录的 TTL | 固定为 Auto(300 秒),不可修改。因为任播 IP 可能变,Cloudflare 不允许解析器缓存超过五分钟 |
| 某些 CNAME 目标 | Cloudflare 直接不让你开。dkim.amazonses.com、acm-validations.aws、*.onmicrosoft.com 这类邮件签名与证书验证用的目标在名单里,开了必坏,所以干脆拦住 |
该开还是该关:按记录用途对照
官方给的原则很简单:凡是承载 HTTP / HTTPS 网页流量的 A、AAAA、CNAME 记录,都应该开;其余的保持灰云。难点在于「其余」具体有哪些。下面这张表按国内常见的服务列一遍。
| 这条记录用来做什么 | 开关 | 为什么 |
|---|---|---|
| 主域、www、博客、API 接口 | 小黄云 | 标准网页流量,缓存、WAF、DDoS 防护全都指望它 |
| 宝塔面板、群晖 DSM 等后台 | 看端口 | 端口落在代理支持范围内才行,宝塔默认的 8888 就不在其中 |
| SSH、FTP、远程桌面、游戏服 | 灰云 | 代理只处理 HTTP / HTTPS,非 HTTP 连接会被直接丢弃 |
| 企业邮箱的 mail 主机记录 | 灰云 | SMTP 走 25 端口,不在代理范围内,开了收不到信 |
| 域名所有权验证的 CNAME | 灰云 | 验证方要比对应答里的目标值,代理后返回的是任播 IP,比对不上 |
| 第三方建站平台(Wix、Squarespace、Webflow 等) | 灰云 | 平台自己也终止 TLS、自己做跳转,两层代理叠加会证书报错或重定向循环 |
| 指向别家 CDN 的 CNAME | 灰云 | 两个代理互相转发,轻则握手失败,重则路由成环 |
| 对方按 IP 白名单校验的接口 / 回调 | 灰云 | 对方看到的是 Cloudflare 的地址,白名单一律校验失败 |
一类例外值得记:部分 SaaS 平台和 Cloudflare 做过对接,它们的记录开小黄云是正常的。哪家可以,官方维护了一份 厂商记录清单,接第三方服务前翻一眼比自己试省事。
端口这道暗门
「开了小黄云但网页打不开」这类问题里,端口占了相当大一部分。代理并不是接管这个主机名的全部流量,它只处理落在固定几个 HTTP / HTTPS 端口上的请求:
| 协议 | 代理覆盖的端口 |
|---|---|
| HTTP | 80、8080、8880、2052、2082、2086、2095 |
| HTTPS | 443、2053、2083、2087、2096、8443 |
两件事要留意。其一,这批端口里除了 80 和 443,其余的在非企业方案上不做缓存——代理照走、防护照有,但别指望它加速。其二,宝塔面板的默认端口 8888 不在名单里,看着和 8880 只差一位,行为上却是天壤之别:请求到了 Cloudflare 却没有对应的处理规则,页面就是打不开。
非标准端口和 TCP / UDP 应用要走 Spectrum,全端口支持是 Enterprise 的能力。个人站点更现实的做法是把后台挪到 8443 这类被支持的端口,或者让这个主机名保持灰云。端口清单以 官方文档为准。
开了之后,源站会察觉到的三件事
代理这一跳不是透明的。源站上的程序会实实在在感觉到变化,有些不处理就会出问题。
所有请求都来自 Cloudflare 的 IP
这是最先被发现的一条:访问日志里全是 Cloudflare 的地址,按 IP 做的限流、封禁、地理位置判断统统失灵。真实地址在 CF-Connecting-IP 请求头里,需要在 Web 服务器上配置读取,并且必须先把信任边界限定在 Cloudflare 的 IP 段内,否则这个头谁都能伪造。具体配法见 怎么在源站拿到访客真实 IP。
客户端证书到不了源站
代理开着的时候 TLS 在 Cloudflare 终止,Cloudflare 再和源站另建一条 TLS 连接。这意味着源站在握手阶段永远拿不到访客的客户端证书。依赖 mTLS 做设备认证的系统,要么把校验挪到 Cloudflare 侧,要么把证书信息通过请求头转发给源站,不能指望原来那套逻辑继续工作。
请求头被增删改,请求体有上限
Cloudflare 会往请求里加一批自己的头(含访客 IP、诊断信息、连接管理),也会改动一些既有的头。按位置而不是按名字解析头部的老程序,可能会因此出错,完整清单在 HTTP 请求头文档里。同时,代理层对请求体大小和源站响应时间都有硬性限制:源站在超时窗口内不给响应就返回 524,请求体超限则直接被拒,各方案的具体数值见 连接限制。这些限制在代理开着时无法绕过。
还有个冷门但会卡死人的点:Windows 集成认证(NTLM、Kerberos)在 TCP 连接层做认证,而 Cloudflare 不保证连续请求复用同一条回源连接,结果就是反复弹认证框。这类系统只能走灰云。
国内环境下,这个开关的账要重新算
前面都是通用行为,这一段是大陆用户特有的权衡,也是多数教程不会提的部分。
免费方案的流量不落在境内节点。Cloudflare 在中国大陆的节点属于 China Network,是与京东云合作、在 Enterprise 方案之外单独订阅的服务。普通用户开了小黄云之后,大陆访客的请求会被路由到香港、日本、新加坡等地的数据中心,再从那里回源。如果源站本来就在国内,这一来一回等于凭空多了两段跨境链路,延迟和抖动都会写在实际体验上。
这笔账怎么算取决于你在乎什么:访客主要在国内又对延迟敏感,开小黄云很可能是净亏;访客分散在全球、或正被扫描和刷流量困扰,多这一跳换来的防护通常是值的。折中做法也常见——展示站点开小黄云,国内高频访问的后台留灰云直连。
境内节点只支持 80 和 443。即便用上了 China Network,前面那批 2052、8443 之类的备用端口在大陆数据中心也不生效,只有标准的两个端口能走。
备案这件事和开关无关。域名的备案义务取决于服务器位置和业务性质,不会因为流量绕了境外 CDN 而消失,也不会因为开了小黄云而产生。反过来,要把域名接进 China Network,Cloudflare 明确要求每一个主域都持有有效的 ICP 备案或许可证。
怎么切,多久生效,以及刚接入时的空窗期
切换本身没什么难度:在 DNS 记录列表里点一下那个云朵图标,或者编辑记录时改代理状态,保存即生效。由于已代理记录的 TTL 固定在 300 秒,反向操作(橙改灰)最多五分钟就会被解析器换掉——不过你本机的 DNS 缓存可能更慢一些,验证时用 dig www.example.com @1.1.1.1 直接问公共解析器更准。
真正要留意的是刚把域名接进 Cloudflare 的那段时间。激活前域名处于 pending 状态,这期间即使记录标成了已代理,也仍按仅 DNS 返回源站真实 IP,最长可能持续 24 小时——你以为藏好的地址其实公开挂了一整天。官方建议很直接:激活之后去主机商那里把源站 IP 换一次。
最后是排查顺序。遇到「开了就坏」,最快的判断是把记录临时改回灰云等五分钟:立刻恢复,问题就在代理这一跳(端口、证书模式、双层代理、请求体超限);照样不通,那是源站自己的事。
常见问题
小黄云和灰云有什么区别?
区别只在一件事上:DNS 应答里返回谁的地址。小黄云(已代理)返回 Cloudflare 的任播 IP,浏览器连到的是边缘节点,缓存、WAF、DDoS 防护、SSL 证书都在那一层生效,源站真实 IP 不出现在应答里。灰云(DNS only)返回源站自己的 IP,Cloudflare 只当权威 DNS 用,HTTP 流量不经过它,也就没有防护和 HTTP 分析数据。
开了小黄云网站打不开是怎么回事?
四种情况最常见:服务跑在代理范围之外的端口上,比如宝塔面板默认的 8888;记录指向第三方建站平台或别家 CDN,两层代理互相打架;证书模式配成了源站不支持的那一档,握手失败或重定向循环;域名刚接入还没激活,记录暂时按仅 DNS 处理。把记录临时改回灰云,如果立刻正常,问题就在代理这一跳上。
MX 记录为什么不能开小黄云?
能开代理的只有 A、AAAA、CNAME 这三种用于地址解析的记录,MX、TXT、NS 压根没有这个开关。因为代理只处理 HTTP 和 HTTPS 流量,而邮件走的是 SMTP。如果 MX 指向的主机名和已开小黄云的网站是同一个,Cloudflare 会在应答里自动加上 _dc-mx 前缀让邮件绕开代理——这也意味着那个前缀会把源站 IP 暴露出去。
开了小黄云还需要备案吗?
备案义务看的是你的服务器和业务本身,不是流量经过了谁。Cloudflare 的免费方案不使用中国大陆境内的数据中心,开小黄云不会在 Cloudflare 这一侧产生备案手续。反过来,要用 Cloudflare 的大陆节点得上 China Network,那是 Enterprise 方案之外单独订阅的服务,并且要求每一个主域都持有有效的 ICP 备案或许可证。
开了小黄云之后国内访问会变慢吗?
有可能,这是国内用户该先算清楚的一笔账。免费方案的请求会被路由到境外数据中心,大陆访客等于多绕一段跨境链路;源站本来就在国内的话,这一绕就是净损失。反过来,访客分散在全球、或更看重挡掉扫描和攻击流量,多这一跳通常划算。