Cloudflare「正在检查您的浏览器」页面会测试 API、浏览器怪癖和工作量证明,并结合 TLS 与 IP 信誉判断。真实用户为何会卡在验证循环里?
你点开一个链接,目标页面没出来,先跳出一个等待页:旧版 Cloudflare 页面写着"Checking your browser before accessing…"(正在检查您的浏览器),新版则是"Verifying you are human"(正在验证您是否是真人)之类的提示,有时还附带一个复选框——也就是很多人口中的"5 秒盾"。你没有输错密码,也没做任何奇怪的操作,只是点了个链接。这是网上最常见的打断之一,而页面本身几乎什么都不解释。下面讲清楚它实际在检查什么、Cloudflare 在检查开始前已经掌握了你哪些信息,以及为什么一个再普通不过的访客也会被困在循环里。
核心要点
- 这个页面是一次 Cloudflare 质询(Challenge):一段短脚本在你的浏览器里跑一组非交互式测试——探测 Web API、查找浏览器引擎特有的"怪癖"、完成小型工作量证明——并在网站加载前把结果交回去。按 Cloudflare 的说法,平均只需约一秒。
- 这只是一半。Cloudflare 早已给你的连接打过分:TLS/HTTP-2 握手签名、IP 信誉,以及 IP 所属的网络(ASN)。你会不会看到验证页,很大程度上取决于这个分数。
- 陷入循环通常是环境问题,而不是你的行为可疑:通行 Cookie 被拦截、系统时间严重不准、扩展篡改了浏览器 API、共用的 VPN/数据中心/CGNAT IP、应用内置浏览器,或者被高度加固的浏览器。
- Cloudflare 已基本淘汰图片验证码:它称自己下发的验证码数量减少了 91%,并在质询页上用 Turnstile 的复选框取代了验证码。
- 质询是一道闸门——对一次请求给出通过/不通过的判决。指纹检测和机器人检测工具则是镜子:只把你的信号照给你看,不做任何判决。
这个页面到底在做什么
当某个网站的 Cloudflare 安全设置判定一个请求在到达源站前需要再看一眼,Cloudflare 就会先返回一个质询插页,而不是你要访问的页面。Cloudflare 对这个流程("托管质询",Managed Challenge)的描述是:先运行"一系列小型的非交互式 JavaScript 质询,收集更多关于访客的信号",这些质询"包括但不限于工作量证明、空间证明、探测 Web API,以及各种检测浏览器怪癖的质询"。只有当这些结果——以及浏览器运行它们时的表现——仍不足以下结论时,才会升级为需要你动手点击的步骤。
Cloudflare 不公开具体的测试清单(公开了就等于给绕过者递路线图),但输入信号可以清楚地分成两类:
- **脚本在你浏览器里收集的信号。**工作量证明和空间证明任务,会让浏览器实打实地花掉一小份可度量的算力和内存。API 探测检查浏览器声称支持的功能是否真的存在、行为是否与该引擎的真实表现一致。怪癖检测则寻找那些真正的 Chrome、Firefox 或 Safari 才有、而伪造 User-Agent 的脚本通常模仿不出的引擎细节。这和本站指纹检测展示的信号属于同一家族,也是无头浏览器检测里讲的那套一致性逻辑:自动化和伪装环境往往会以真实浏览器不会出现的方式自相矛盾。
- **来自连接本身、任何页面脚本都看不到的信号。**浏览器的 TLS 握手和 HTTP/2 设置会形成一个独立于 JavaScript 的签名,具体怎么构成见TLS 指纹识别详解。与之并列的,是你所用 IP 地址的信誉,以及拥有这个 IP 的网络(ASN)。这些在任何质询脚本运行之前就已在 Cloudflare 边缘评估完毕——所以一个历史干净的住宅 IP,和一个曾因爬取数据被举报的数据中心 IP,起点完全不同。
没有哪个信号能单独决定结果。和自动化检测技术里描述的分层检测体系一样,质询是把许多弱信号合成一个判决。
为什么真人访客也会被困在循环里
如果你正盯着那个转圈的加载图标,这一节最有用。下面这些情况都不代表你做错了什么,只是质询会把它们读成"拿不准":
- **Cookie 被拦截或被清除。**通过验证后,Cloudflare 会写入一个通行 Cookie(
cf_clearance),之后的请求就不必再查。如果浏览器设置或扩展拦截了该网站的 Cookie,或每次加载都把它清掉,"已通过"的凭证就留不住,每个请求看起来都是全新的。 - **系统时间严重不准。**通行凭证是有时效的。设备时钟偏差够大时,刚发下来的凭证可能被当成已过期或尚未生效,你就又被送回验证页。
- **篡改浏览器 API 的扩展。**伪造、拦截 API 或给 API 加噪声的反指纹扩展(Canvas 噪声注入器是常见例子)不只是把你藏起来,还可能让浏览器自相矛盾。这和一个只是暴露得少一些的普通浏览器,在检测方看来完全是两回事。
- **共用的 VPN、数据中心或 CGNAT IP。**很多 VPN 出口节点和大部分数据中心网段,都曾在某个时候被某人用来发送滥用流量;运营商级 NAT(CGNAT)则让大量移动或宽带用户共用同一个地址。这份信誉记在 IP 上,而不是记在你身上——这也是 VPN 用户遇到验证远多于平均水平的原因。
- **应用内置浏览器。**在社交或聊天 App 里点开的链接,会在内嵌 WebView 中加载,它暴露的 API 往往比完整的独立浏览器更少、也更不一致。
- **过旧或被高度加固的浏览器。**怪癖和 API 检查默认浏览器应表现得像一个已知的、较新的引擎。版本非常老,或者隐私设置禁用了 API、把指纹压到最低,都可能看起来更像自动化而不是真人——质询很难分辨"加固了浏览器的人"和"伪装成浏览器的脚本"。
卡住时可以试试这些
- 允许该网站使用 Cookie(或关掉会清除 Cookie 的扩展/设置),然后刷新。
- 确认设备的日期、时间和时区都设为自动。
- 对这个网站停用隐私或广告拦截扩展,或换一个干净的浏览器配置文件试试。
- 如果链接是在某个 App 里打开的,改用常用浏览器打开。
- 切换网络——移动数据和 Wi-Fi 互换,或换一个 VPN 节点——换一个信誉不同的 IP。
- 仍然不行,就联系网站方,并附上验证页底部显示的 Ray ID。安全级别由每个网站自行设置,Ray ID 能帮运营者定位到你的那次请求。
从验证码到隐形检查
传统验证码要你主动证明点什么——辨认扭曲的文字、从图里挑出红绿灯——而且会打断每一个看到它的访客,真人也不例外。Cloudflare 在官方博客文章《The end of the road for Cloudflare CAPTCHAs》中解释了为什么放弃这种模式:托管质询会把"是否出示图片谜题"的决定推迟到浏览器提供更多信息之后。Cloudflare 表示,这让它主动下发的验证码减少了 91%,访客花在质询上的时间也"从平均 32 秒降到平均仅 1 秒"。
同样的思路后来演变成了 Turnstile。Cloudflare 的描述是:它会运行"一系列浏览器内测试,检查浏览器特征和原生浏览器 API,并要求浏览器通过轻量级测试(例如工作量证明、空间证明测试)"。在《Cloudflare is free of CAPTCHAs; Turnstile is free for everyone》一文中,Cloudflare 表示已"用我们自己的复选框方案取代了验证码质询"。所以你偶尔看到的那个复选框并不是谜题,而是后台测试没能下结论时最后一个轻量步骤。"证明你是人类"不再意味着"帮我们解道题",而是"让我们观察你的浏览器一秒钟"。
一道闸门,不是一面镜子
Cloudflare 质询是一道闸门:它对一次具体请求给出通过/不通过的判决,而且这个判决有实际后果——要么放行,要么拦下。
CreepJS、BrowserLeaks,以及指纹检测工具为何对你各执一词里比较过的各种匿名度评分,则是镜子。它们照出你自己的信号——大致就是质询关心的那几类——但没有判决,也没有后果。用它们测一遍浏览器,并不能告诉你某个网站的质询会不会放你过去,因为结果还取决于该网站的设置,以及这些工具看不到的连接层数据。它们能告诉你的,是质询可能注意到什么。
接下来可以做什么
想看看你的浏览器会暴露哪些与自动化相关的信号,可以用 BrowserInsight 的机器人检测工具逐项检查——navigator.webdriver、无头浏览器标志,以及 Selenium/Puppeteer/Playwright 痕迹——而不是压缩成一个笼统结论。如果日常使用的浏览器在那里有项目被标出,它很可能就是质询在意的地方。
如果怀疑问题出在 IP 上,IP 检测可以显示你当前地址的 ASN 和黑名单状态,VPN/代理检测则显示它看起来是否像 VPN、代理或数据中心。如果你根本没开 VPN 却仍被当成 VPN 用户,明明没用 VPN,为什么还被判定为 VPN?解释了 CGNAT、过时的 IP 数据和 ASN 误分类是怎么造成这种误判的。
常见问题
"正在检查您的浏览器"和验证码是一回事吗?
不是。验证码要你主动解题;"正在检查您的浏览器"页面运行的是自动的、无需交互的测试,并把结果交回去。在 Cloudflare 上,只有这些测试无法下结论时,才会让你点一下复选框——即便如此,也没有谜题要解。
为什么每次加载页面都会遇到同一个验证?
几乎总是因为验证记不住你已经通过了——通常是 Cookie 被拦截或清除、在隐私/无痕模式下浏览,或者某个扩展会清空网站数据。没有这份"记忆",每个请求都要从头验证。如果 Cookie 没问题,再检查一下系统时间。
用 VPN 会让这种情况更频繁吗?
会,而且通常跟你本人无关,而是出口 IP 的问题。VPN 和数据中心地址被很多人共用,只要这个地址以前发出过滥用流量,这份信誉就会带进你的会话。换一个服务器节点往往就能缓解。
指纹或匿名度检测工具能告诉我能否通过某个网站的验证吗?
不能直接告诉你。这些工具是镜子——照出质询可能读取的信号,但不下判决。质询是闸门,它会把这些信号与网站自身的安全设置、以及页面层工具看不到的连接层数据(TLS、IP 信誉、ASN)结合起来,所以只有质询本身能给出结果。
加固过的隐私浏览器更容易被验证吗?
有可能——不是因为隐私工具本身可疑,而是因为被大量伪造或屏蔽的信号,看起来可能和一个试图隐藏自动化痕迹的脚本相似。这是两种截然不同的意图碰巧看起来相像,并不说明隐私加固在被专门针对。


