摘要:站点接上 Cloudflare 之后,自定义规则可按国家、URI 路径组合拦截或挑战请求;Bot 评分字段需注意套餐门槛。本文按官方文档整理规则条数、后台创建步骤与国家/路径/Bot 示例表达式,不写套餐价格。查询日期 2026-11-02。

依据:Cloudflare 文档 Custom rules、Create a custom rule in the dashboard、Allow traffic from specific countries only、Challenge bad bots、Bot scores。查询日期:2026-11-02(北京时间)。只放 Cloudflare 官网普通链接(affiliate_later);不写单价与套餐价格。

被扫描打满带宽或登录接口被撞时,先止血见 网站被 CC/DDoS 攻击怎么办;安全组与流量告警见 网站被扫描打满带宽。本文专讲 WAF 自定义规则:怎么在后台按国家、路径、Bot 评分写表达式,以及免费档条数上限。接入橙云与 SSL 见 Cloudflare 免费 CDN 与 SSL。

1. 自定义规则是什么

官方 Overview 写明:自定义规则按表达式匹配进入站点的请求,可执行 Block、Managed Challenge、Skip 等动作。规则按顺序评估;Block 会中止后续规则。账号级自定义规则集需要 Enterprise;站点级各计划都能建。

Cloudflare防火墙自定义规则:按国家、路径与Bot评分拦截-有序
Cloudflare 文档 Custom rules:表达式 + 动作;Block 会停止后续规则评估;站点级全计划可用(box 内截图,2026-11-02)

文档 Availability 表(以页面当前表为准,本文不列价格):

计划自定义规则条数(量级)Regex备注
Free5否动作除 Log 外基本可用
Pro20否同上
Business100是无
Enterprise1,000是另含 Log、账号级规则集等

条数计入 http_request_firewall_custom 阶段。Free 只有 5 条时,优先护登录、后台、投稿接口,别把整站国家封锁和路径细拆占满。

2. 后台怎么创建一条规则

按 Create in the dashboard:

  1. 打开 Cloudflare 控制台 → Security rules。
  2. Create rule → Custom rules(或复制已有规则)。
  3. 填 Rule name。
  4. 在 When incoming requests match 用 Field / Operator / Value 搭条件;可用 And / Or;下方 Expression Preview 会生成表达式。
  5. Then take action 选动作。没有 Log 的计划,可先用 Managed Challenge,在 Security Events 看命中后再改 Block。
  6. 选 Block 时可配自定义响应(文档写明 Pro 及以上才有该项)。
  7. Deploy 上线,或先存草稿。
Cloudflare防火墙自定义规则:按国家、路径与Bot评分拦截-有序
Cloudflare 文档:Security rules → Create rule;Field/Operator/Value 与 Expression Preview;动作可选 Block 等(box 内截图,2026-11-02)

3. 按国家拦截或只放行

用例 Allow traffic from specific countries only 用字段 ip.src.country。示例:只允许美国、墨西哥,其余 Block:

  • 规则构建器:Country → is not in → United States, Mexico → Block
  • 表达式:(not ip.src.country in {"US" "MX"})
Cloudflare防火墙自定义规则:按国家、路径与Bot评分拦截-有序
Cloudflare 用例:用 ip.src.country 只放行指定国家;表达式 not ip.src.country in {"US" "MX"},动作 Block(box 内截图,2026-11-02)

落地注意:

  1. 误伤 CDN 监控、支付回调、海外作者:先 Managed Challenge,确认 Security Events 再 Block。
  2. 中国内地源站若仍对公网裸奔,地理规则挡不住绕过 CDN 直打源 IP;安全组应收紧到回源段,见 安全组最小开放。
  3. 「只服务某国读者」和「全站开放但拦扫描国家」是两种产品目标,表达式要反过来写。

4. 按路径保护登录与接口

自定义规则常用 URI 路径字段(文档示例写作 http.request.uri.path)。典型组合:

场景思路示例表达式方向(需按站点改)
WordPress 登录对 /wp-login.php、/xmlrpc.php 加强挑战或限流路径等于或前缀匹配登录页
管理后台仅允许办公出口国家访问 /wp-admin路径前缀 + ip.src.country
公开 API低 Bot 分流量放行 /api,浏览器入口从严starts_with(..., "/api") 与 Bot 条件组合

Challenge bad bots 文档提醒:自定义规则适合路径差异化(/api/ 与 /login/ 不同策略)、自定义分数阈值、以及内置 Bot 设置没有的动作组合。免费档还有 Rate limiting 条数限制,登录接口可与自定义规则分工,见急救文中的 Rate limiting 表。

5. Bot 评分:能写什么、谁能用字段

Bot scores:分数 1–99,越低越像自动化,越高越像真人浏览器。文档注明:细粒度 cf.bot_management.score 面向已开通 Bot Management 的 Enterprise;其他客户更多通过 bot groupings 或安全设置里的 Bot 流量开关使用。

Pro 及以上常见分组(文档表):

分组分数范围
Not computed0
Automated1
Likely automated2–29
Likely human30–99
Verified bot已知良性爬虫等
Cloudflare防火墙自定义规则:按国家、路径与Bot评分拦截-有序
Cloudflare Bot scores:1–99;细粒度分数需 Enterprise Bot Management;Pro+ 可见分组表(box 内截图,2026-11-02)

Challenge bad bots 建议:先看安全设置里的 Bot 流量内置项(Definitely automated、Likely automated、Verified bots、Block AI bots 等),它们不占自定义规则条数。只有需要路径条件或自定义阈值时,再写自定义规则。示例方向(需 Enterprise Bot Management 字段):

  • Skip 已验证爬虫:(cf.bot_management.verified_bot) → Skip
  • 明确自动化:(cf.bot_management.score eq 1) → Block
  • 疑似自动化:(cf.bot_management.score gt 1 and cf.bot_management.score lt 30) → Managed Challenge
  • 保护浏览器入口但放行 API:低分且非 verified,且路径不以 /api 开头 → Block
Cloudflare防火墙自定义规则:按国家、路径与Bot评分拦截-有序
Cloudflare 用例 Challenge bad bots:先用内置 Bot 设置;自定义规则用于路径与阈值;字段含 score / verified_bot(box 内截图,2026-11-02)

没有 Bot Management 时:用 Super Bot Fight Mode / Bot Fight 一类内置能力 + 国家/路径自定义规则,不要编造控制台里不存在的 cf.bot_management.score 字段。

6. 推荐落地顺序(个人站 / 小团队)

  1. 确认 DNS 已代理(橙云),源站不对全网暴露。
  2. 用掉 1–2 条自定义规则:登录与 XML-RPC 路径 + Managed Challenge。
  3. 若业务只服务少数国家,再加国家白名单或黑名单(先挑战后封锁)。
  4. 有 Bot Management 再叠分数规则;否则打开内置 Bot 设置并观察误伤。
  5. 改规则后看 Security Events 与可用性监控,见 网站可用性监控。
  6. 境内对公众服务仍须依法 ICP 备案;本文不鼓励以违规跨境组网规避监管。

相关阅读

资料来源(查询日期 2026-11-02)

  • https://developers.cloudflare.com/waf/custom-rules/
  • https://developers.cloudflare.com/waf/custom-rules/create-dashboard/
  • https://developers.cloudflare.com/waf/custom-rules/use-cases/allow-traffic-from-specific-countries/
  • https://developers.cloudflare.com/waf/custom-rules/use-cases/challenge-bad-bots/
  • https://developers.cloudflare.com/bots/concepts/bot-score/