L=/var/log/nginx/access.log
awk '$9==403 {print $1}' $L | sort | uniq -c | sort -rn
curl -A 'UptimeBot' -I https://www.example.com

监控平台五个节点同时报站点不可用,手机和电脑打开都正常,翻日志才发现探针 IP 的请求全是 403,一条成功都没有。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:WAF 把高频 HEAD 请求和空 UA 当成扫描器直接拉黑,探针出口又是固定的几个 IP,一封就整片节点全红,用户那边却毫无察觉,这种误报挺常见。

围绕「探针被 WAF 拦截」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

处理上按这个顺序:先按状态码看探针 IP 在访问日志里的命中分布情况;把探针的 IP 段加进白名单,同时给它固定一个容易识别的 UA;白名单只放探针要访问的那几个路径,别整站都放开。

确认没问题再收工,探针请求返回 200 并且不再出现在 403 列表里,平台各节点全部转绿。

作者 9823189