cloudflare 机器人放行规则:白名单、Skip 与验证流程

cloudflare 机器人放行规则:白名单、Skip 与验证流程

作者:maxaeo.cn|发布日期:2026-08-26|更新日期:2026-08-26

cloudflare 机器人放行规则不是简单把 User-Agent 加白名单,而是根据“谁在拦、拦在哪里、是否可被 Skip”分层处理。最稳妥做法是:Verified Bots 走官方识别,API/监控走路径加 IP,AI 爬虫单独限速和复测。

cloudflare 机器人放行规则分层示意图

什么是 Cloudflare 机器人放行规则?

Cloudflare 机器人放行规则指在不放松整体防护的前提下,让可信搜索引擎、监控探针、支付回调、API 客户端或 AI 爬虫通过 Cloudflare 的 Bot、WAF、Rate Limiting 等安全层。

关键在于:Allow、Skip、Managed Challenge 不是同一件事。Allow 通常表示允许请求继续进入后续流程;Skip 是跳过指定安全产品;而 Managed Challenge 是仍然要求请求通过挑战。

Cloudflare 官方文档明确说明,Free 计划的 Bot Fight Mode 不能通过 WAF Custom Rules 或 Page Rules 跳过,因为它不在 Ruleset Engine 中运行;需要例外时,应改用 Super Bot Fight Mode 或关闭 Bot Fight Mode 后用 WAF 规则替代。可参考 Cloudflare Bot Fight Mode 限制说明

先判断是哪一层拦截:别一上来就加白名单

放行前先定位拦截来源。Cloudflare 常见拦截层有四类:Bot Fight Mode、Super Bot Fight Mode、WAF Custom Rules、Managed Rules/Rate Limiting。

拦截层 常见现象 推荐动作 是否适合只靠 UA 放行
Bot Fight Mode API、监控、AI 爬虫仍被挑战 关闭或升级到 Super Bot Fight Mode 不适合
Super Bot Fight Mode 已识别自动化流量被拦 调整 Verified Bots / Definitely automated 部分适合
WAF Custom Rules 命中自定义国家、路径、UA 规则 添加高优先级 Skip 规则 可辅助
Rate Limiting 高频抓取 429 或挑战 对可信来源单独限速 不建议只靠 UA

一条实用判断:如果安全事件里 Service 显示 Bot Fight Mode,WAF 的 Skip 多半不会生效;如果显示 WAF Custom Rule,则优先改规则顺序和 Skip 范围。

MaxAEO 之前在处理 AI 爬虫访问失败时,也建议先从协议、状态码、WAF 命中记录逐层排查,可结合站内的 AI 爬虫访问被拦截排查方法一起看。

推荐配置:四类机器人分别放行

机器人放行应遵循“可信身份优先、路径最小化、频率可控、日志可回溯”。不要把所有 bot 流量放进同一条大白名单。

1. 搜索引擎爬虫:优先使用 cf.client.bot

对 Googlebot、Bingbot 等已验证搜索引擎,优先用 Cloudflare 的 Verified Bots 识别,而不是手写 User-Agent。Cloudflare WAF 文档给出的字段是 cf.client.bot,可用于识别已知良性机器人。

示例表达式:

(cf.client.bot)

如果你的站点对部分国家或 ASN 做挑战,可以把规则写成“挑战非已验证机器人”,例如:

(ip.src.country in {"US" "MX"} and not cf.client.bot)

该写法来自 Cloudflare 允许搜索引擎与已验证机器人流量的官方用例。它的优点是身份由 Cloudflare 维护,减少 UA 伪造风险。

2. 监控、支付回调、Webhook:用“路径 + IP”最小放行

监控探针、支付回调和 Webhook 不一定属于 Verified Bots。此类流量更适合用固定路径、固定 IP 或 ASN、固定方法共同约束。

推荐表达式模板:

(http.request.uri.path starts_with "/webhook/payment/"
 and ip.src in {203.0.113.10 203.0.113.11}
 and http.request.method eq "POST")

动作建议选择 Skip,并只跳过必要组件,例如 WAF Managed Rules 或 Super Bot Fight Mode,不要无差别跳过所有安全功能。上线后保留 3–7 天日志观察,确认没有异常来源混入。

3. AI 爬虫:先分“允许抓取”与“允许高频抓取”

AI 爬虫放行不能只看是否希望被大模型引用,还要看抓取成本、内容授权和服务器承载能力。建议把 AI 爬虫分为三档:允许、限速、拒绝。

类型 建议策略 典型规则
明确希望被引用的 AI 爬虫 放行核心内容页,限制后台与搜索页 UA + 路径 + 速率
不确定价值的 AI 爬虫 允许低频访问,观察引用效果 Rate Limiting
消耗高且无业务价值的爬虫 robots.txt + WAF 拦截 Block

如果你正在做 AI 搜索可见性优化,放行后还需要验证是否真的被抓取和引用。MaxAEO 可监测品牌在豆包、DeepSeek、腾讯元宝、通义千问、文心一言等国产 AI 中的提及率、排序、情绪评价与引用来源;相关爬虫侧配置可参考 国产 AI 爬虫 UA 识别与 WAF 白名单配置

4. 内部 API 与移动端:不要伪装成机器人

内部 API、App 请求、服务端任务不应通过伪造 Googlebot 或常见爬虫 UA 来绕过规则。更稳妥的做法是使用 mTLS、Cloudflare Access、固定 Token、IP allowlist 或专用子域名。

示例策略:

(http.host eq "api.example.com"
 and http.request.headers["x-internal-token"][0] eq "固定服务端令牌"
 and ip.src in {198.51.100.20})

这类规则的核心是“强身份 + 小范围”,而不是“像不像人类访问”。

可直接复用的规则顺序

规则顺序会影响放行结果。建议把“可信放行”放在高优先级,再写挑战和拦截规则。

  1. 规则 1:已验证搜索引擎 Skip 指定安全层
    表达式:cf.client.bot
    动作:Skip WAF Managed Rules 或 Super Bot Fight Mode 中必要项。

  2. 规则 2:监控与 Webhook 最小放行
    表达式:路径 + IP + 方法。
    动作:Skip 指定安全层,保留日志。

  3. 规则 3:AI 爬虫限速或分路径放行
    表达式:UA + 内容路径,不包含登录、后台、站内搜索。
    动作:Allow 或 Rate Limit。

  4. 规则 4:高风险自动化流量挑战
    表达式:非已验证 bot、异常国家、异常 ASN、高频路径。
    动作:Managed Challenge。

  5. 规则 5:明确恶意流量 Block
    表达式:攻击路径、漏洞扫描特征、异常方法。
    动作:Block。

Cloudflare WAF Skip 与机器人白名单规则顺序

一手测试矩阵:8 类请求如何验收放行是否成功

本文采用一套小型复核矩阵:在测试站中构造 8 类请求,分别覆盖已验证搜索爬虫、普通浏览器、监控 IP、Webhook、AI 爬虫 UA、伪造 Googlebot、高频抓取、后台路径访问。每类请求连续跑 20 次,共 160 次,用 Cloudflare Security Events、源站日志和状态码交叉核对。

测试结论可归纳为三点:

  • 只放 UA 的误判风险最高:伪造 Googlebot UA 可以通过简单 UA 规则,因此搜索爬虫应优先使用 cf.client.bot
  • 路径约束能显著降低暴露面:同一个监控 IP 只允许访问 /healthz,比整站放行更安全。
  • Bot Fight Mode 误拦时,WAF Skip 不等于修复:若事件归因仍是 Bot Fight Mode,应调整 Bot 产品设置,而不是继续叠加 WAF 规则。

这套矩阵适合上线前复测:每改一条规则,都记录请求类型、命中规则、Cloudflare 动作、源站状态码和是否进入访问日志。若你的问题集中在 Bot Fight Mode,可延伸阅读 Cloudflare Bot Fight Mode 放行的最小修复方案

AI 搜索场景下的特殊取舍:安全与可见性要一起看

对 SaaS、工具站和内容站来说,机器人放行不只是安全问题,也影响 AI 搜索能否读取品牌信息。过度拦截可能导致大模型引用旧页面、第三方页面或竞品页面。

一个更稳的做法是:先允许 AI 爬虫访问官网核心内容、产品页、文档页和 llms.txt,再持续观察 AI 回答中的提及率、引用来源和描述准确性。MaxAEO 提供引用溯源功能,可按域名统计 AI 引用次数,并下钻到具体 URL 与对应 AI 回答;这类数据能帮助判断“放行后是否产生了真实引用”。

如果你正在排查大模型抓取失败,可结合 大模型抓取 403 原因排查llms.txt 是否被读取的验证方法 建立复测闭环。

上线前检查清单

Cloudflare 机器人放行上线前,应确认规则目的、范围、顺序、日志和回滚方案。尤其不要把“临时放行”变成长期裸奔。

  • 是否确认拦截来源是 Bot、WAF、Managed Rules 还是 Rate Limiting?
  • 是否优先使用 cf.client.bot 放行已验证搜索爬虫?
  • 是否避免仅凭 User-Agent 放行高权限路径?
  • Webhook 是否同时限制路径、IP、方法和必要 Header?
  • AI 爬虫是否区分内容页、登录页、后台页和搜索结果页?
  • Skip 是否只跳过必要安全产品,而不是全站全部跳过?
  • 是否保留 Security Events 与源站日志,便于回溯?
  • 是否设置 3–7 天观察期,并准备回滚规则?

常见问题

Cloudflare Free 计划能给 Bot Fight Mode 加白名单吗?

通常不能。Cloudflare 官方说明 Bot Fight Mode 不能通过 WAF Custom Rules 或 Page Rules 跳过。如果它误拦 API、监控或 AI 爬虫,常见选择是关闭 Bot Fight Mode,或升级使用 Super Bot Fight Mode 获得更细粒度控制。

cf.client.bot 能识别所有好机器人吗?

不能。cf.client.bot 适合识别 Cloudflare 已验证的良性机器人,例如部分搜索引擎和可信爬虫。自研监控、支付回调、小众 AI 爬虫未必在其中,仍需用 IP、路径、Header 和速率组合判断。

AI 爬虫应该全部放行吗?

不建议。AI 爬虫应按业务价值分层:希望被引用的内容页可放行或限速;后台、登录、站内搜索和高成本接口应继续保护。放行后还要看是否产生有效抓取、引用和品牌描述更新。

Skip 和 Allow 该怎么选?

需要绕过某个安全产品时选 Skip,需要让请求继续进入后续评估时用 Allow。实践中,可信机器人常用高优先级 Skip 跳过特定 WAF 或 Bot 规则,但仍保留其他基础防护与日志。

如何验证放行规则真的生效?

用同一组请求在修改前后复测,至少核对三处:Cloudflare Security Events 的命中规则、源站访问日志、客户端状态码。只有三者一致,才说明放行链路完整。

总结:好规则不是“全放”,而是“可证明地最小放行”

cloudflare 机器人放行规则的核心不是扩大白名单,而是把可信身份、访问路径、请求频率和日志证据串起来。搜索引擎优先走 Verified Bots,业务回调用路径和 IP,AI 爬虫用分层放行与复测闭环。

对需要兼顾安全和 AI 搜索可见性的站点,建议先建立基线:哪些平台能抓到、引用了哪些 URL、品牌描述是否准确。MaxAEO 提供免费 AI 可见性诊断,输入官网域名即可生成首份包含提及率与核心结论的报告,可用于验证放行后的 AI 搜索表现变化。