Cloudflare 发出以下 Edge Pathing Status(边缘路径状态):
- EdgePathingSrc(pathing source):做出路由决策的阶段。
- EdgePathingOp(pathing operation):采取的具体 action 或操作。
- EdgePathingStatus(pathing status):补充 EdgePathingOp 的附加信息。
EdgePathingSrc 指在发生错误或请求被传递到 cache server 之前最后处理请求的系统。通常这将是 macro/reputation list。可能的 pathing source 包括:
errsslv(SSL verification checker)bic(browser integrity check)hot(hotlink protection)macro(the reputation list)skip(Always Online or cdnjs resources)user(user firewall rule)
例如:
jq -r .EdgePathingSrc logs.json | sort -n | uniq -c | sort -n | tail1 err
5 user
93 macroEdgePathingOp 表示如何处理请求。wl 是一个通过了连接中所有安全检查的请求。其他可能的值包括:
errHost(主机标头不匹配、DNS 错误等)ban(通过 IP 地址、IP 段等阻断)
例如:
jq -r .EdgePathingOp logs.json | sort -n | uniq -c | sort -n | tail1 errHost
97 wlEdgePathingStatus 是 EdgePathingSrc 返回的值。当 pathing source 为 macro、user 或 err 时,pathing status 表示找到该 IP 地址的列表。nr 是最常见的值,意味着请求未被安全检查标记。某些值表示用户的类别;例如,se 表示搜索引擎。
例如:
jq -r .EdgePathingStatus logs.json | sort -n | uniq -c | sort -n | tail1 dnsErr
5 ip
92 nrCloudflare 威胁分析 功能中(位于 Cloudflare 仪表板中的 Analytics 应用程序中)已对某些 pathing 组合进行了标记。映射关系如下:
| Pathing | 标签 (Label) |
|---|---|
bic.ban.unknown |
恶意浏览器 |
hot.ban.unknown |
被阻止的盗链 |
hot.ban.ip |
|
macro.ban.ip |
恶意 IP |
user.ban.ctry |
国家/地区阻断 |
user.ban.ip |
IP 阻断(用户) |
user.ban.ipr16 |
IP 段阻断 (/16) |
user.ban.ipr24 |
IP 段阻断 (/24) |
响应状态在请求中的三个地方出现:
- edgeResponse
- cacheResponse
- originResponse
在您的日志中,边缘 (edge) 是首先接受访问者请求的系统。随后,缓存 (cache) 接受请求,并将其转发给您的源站或直接从缓存进行响应。可能存在仅有 edgeResponse 的请求,或者同时拥有 edgeResponse 和 cacheResponse 但没有 originResponse 的请求。
这就是您如何查看请求在何处终止的方法。仅包含 edgeResponse 的请求可能触发了安全检查或处理错误。具有 edgeResponse 和 cacheResponse 的请求,要么是从缓存中提供服务的,要么是与源站服务器通信时遇到了错误。包含 originResponse 的请求则一路到达了您的源站服务器,所见到的任何错误都将直接由源站返回。
例如,以下查询显示了在 Cloudflare 边缘终止的所有请求的状态码和 pathing 信息:
jq -r 'select(.OriginResponseStatus == null) | select(.CacheResponseStatus == null) |"\(.EdgeResponseStatus) / \(.EdgePathingSrc) / \(.EdgePathingStatus) / \(.EdgePathingOp)"' logs.json | sort -n | uniq -c | sort -n1 403 / macro / nr / wl
1 409 / err / dnsErr / errHost存储的信息根据以下类别进行细分:
这些情况发生于未通过 Cloudflare 网络执行的任何验证的请求。示例情况包括:
- 无论何时 Cloudflare 无法查找域名或区域。
- 试图不当使用源站服务器的 IP。
- 域名所有权不明确(例如,该域名不在 Cloudflare 中)。
| EdgePathingStatus | 描述 | EdgePathingOp | 状态码 |
|---|---|---|---|
cyclic |
Cloudflare 环路。 | err_host |
403 |
dns_err |
无法解析。 | err_host |
409 |
reserved_ip |
DNS 指向本地或不允许的 IP。 | err_host |
403 |
reserved_ip6 |
DNS 指向本地或不允许的 IPv6 地址。 | err_host |
403 |
bad_host |
Host 标头损坏或缺失。 | err_host |
403 |
no_existing_host |
所有权查找失败:主机可能不在 Cloudflare 上。 | err_host |
409 |
这些情况发生于基于特定 IP(或 IP 段)的配置由用户触发的操作。
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc | 状态码 |
|---|---|---|---|---|
Asnumipipr24ipr16ip6ip6r64ip6r48ip6r32ctry |
请求被阻止。 | ban |
user |
403 |
Asnumipipr24ipr16ip6ip6r64ip6r48ip6r32ctry |
|
wl |
user |
n/a |
Cloudflare 防火墙规则(已弃用)根据与客户定义的规则匹配情况来触发操作。
| EdgePathingStatus | 描述 | EdgePathingOp |
|---|---|---|
filter_based_firewall |
请求被阻止。 | ban |
filter_based_firewall |
请求被允许。 | wl |
区域锁定 阻止访问特定 URI,前提是访问者的 IP 不在允许列表中。
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
zl |
已应用区域锁定。 | ban |
user |
对使用 User-Agent 名称与特定字符串匹配的浏览器的访问者进行验证(交互式或非交互式)或阻止。
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
ua |
被阻止的用户代理 (User-Agent)。 | ban |
user |
断定请求的来源是否非法,或者请求本身是否具有恶意。
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
| empty | 被阻止的请求。 | ban |
bic |
防止来自其他站点的盗链。
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
| empty | 被阻止的请求。 | ban |
hot |
通过 L7 缓解来丢弃 DDoS 攻击流量。
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
l7ddos |
被阻止的请求。 | ban |
protect |
Macro 阶段由许多不同的路径组成。它们根据访问者 IP 的信誉进行分类。
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
nr |
该 IP 没有信誉数据,因此未采取任何操作。 | wl |
macro |
wl |
IP 明确处于允许列表中。 | wl |
macro |
scan |
IP 明确处于允许列表中,并被分类为安全扫描程序。 | wl |
macro |
mon |
IP 明确处于允许列表中,并被分类为监控服务。 | wl |
macro |
bak |
IP 明确处于允许列表中,并被分类为备份服务。 | wl |
macro |
mob |
IP 明确处于允许列表中,并被分类为移动代理服务。 | wl |
macro |
se |
IP 明确处于允许列表中(因为它属于搜索引擎爬虫),因此未采取任何操作。 | wl |
macro |
grey |
IP 处于灰名单中(怀疑为恶意),但由于该请求是请求 favicon 图标,或者安全级别被关闭,因此该请求被列入允许列表。 | wl |
macro |
bad_ok |
该 IP 的信誉评分较差,但由于该请求是请求 favicon 图标,或者安全级别被关闭,因此该请求被列入允许列表。 | wl |
macro |
unknown |
pathing_status 未知,请求正在照常处理。 | wl |
macro |
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
rate_limit |
丢弃请求。 | ban |
user |
rate_limit |
IP 明确处于允许列表中。 | simulate |
user |
| EdgePathingStatus | 描述 | EdgePathingOp | EdgePathingSrc |
|---|---|---|---|
ao_crawl |
AO (Always Online) 爬虫请求。 | wl |
skip |
cdnjs |
对 cdnjs 资源的请求。 | wl |
skip |
| 由 Cloudflare 的特殊标头强制执行的特定验证。 | forced |