Cloudflare 防火墙规则(现已弃用)是针对 HTTP 请求的更大评估链的一部分,如下面的图表所示。例如,防火墙规则仅评估已通过 IP 访问规则的请求。如果请求在链中的任何阶段被规则阻止,Cloudflare 将不再进一步评估该请求。
默认情况下,Cloudflare 按照列表顺序评估防火墙规则,其中规则按照其在防火墙规则列表中出现的顺序进行评估。在处理少量规则时,列表排序很方便,因为您可以通过将它们拖放到相应位置来管理它们的顺序。但是,随着规则数量的增加,按列表顺序管理规则变得困难。这就是优先级顺序发挥作用的地方。
启用优先级排序后,Cloudflare 将按照其优先级编号(从低到高)评估防火墙规则。如果一个请求匹配了两个具有相同优先级的规则,则使用操作优先级(action precedence)来解决冲突。在这种情况下,只会执行具有最高优先级的规则操作,除非该操作是 记录 (Log) 或 绕过 (Bypass)(有关详细信息,请参阅 防火墙规则操作)。优先级排序使管理大量防火墙规则变得更加容易,并且一旦规则数量超过 200 个,Cloudflare 会要求使用它。
拥有相对较少防火墙规则(不超过 200 个)的用户会发现默认情况下启用了列表排序。启用列表排序后,规则列表允许您将防火墙规则拖放到相应位置,如下所示:
一旦包含非活动规则在内的规则总数超过 200 个,您就必须使用优先级排序来管理评估。当您越过此阈值时,防火墙规则界面会自动切换到优先级排序。
尽管当活动和非活动防火墙规则的数量超过 200 个时会自动启用优先级排序,但您也可以随时从规则列表中手动启用优先级排序。
Cloudflare 防火墙规则不强制规定默认优先级,您也不必为每条规则设置优先级。
要手动启用优先级排序:
- 在规则列表上方,选择 Ordering(排序)。
- 选择 Priority Numbers(优先级编号)。
启用优先级排序后,您可以为每条防火墙规则设置优先级编号。
要设置防火墙规则的优先级编号:
-
在规则列表中找到所需的规则,然后选择 Edit(编辑)(扳手图标)。
-
在 **Edit firewall rule(编辑防火墙规则)**面板中,在 **Priority(优先级)**中输入一个正整数值。

-
选择 Save(保存)。
规则列表中的 **Priority(优先级)**列显示每条规则的优先级值。
Cloudflare 将优先级排序设计为极具弹性。这种弹性对于通过 Cloudflare API 以编程方式管理大型规则集特别有用。使用 Update firewall rules 命令设置 priority 属性。有关详细信息,请参阅 Cloudflare API:防火墙规则。
虽然您的优先级编号方案可以是任意的,但请记住以下几点:
-
评估顺序从最低的优先级编号开始,一直到最高。
-
没有优先级编号的规则最后被评估,并按照其操作优先级(action precedence)顺序执行。例如,执行 记录 (Log) 操作的规则在执行 阻止 (Block) 操作的规则之前被评估。有关操作优先级的更多信息,请参阅 防火墙规则操作。
-
避免使用数字
1作为优先级,以便将来更容易修改规则顺序。 -
考虑将优先级编号范围分组到对您的部署有意义的类别中。以下是一些示例:
- 5000-9999:受信任的 IP 地址
- 10000-19999:针对恶意爬虫的阻止规则
- 20000-29999:针对滥用用户/垃圾邮件的阻止规则