如何设置 Cloudflare 防火墙以阻止假 Google 机器人

How can I set Cloudflare firewall to block fake Google bots

我知道这些 ip 是假 Google 机器人,我想阻止它们。 Ip 不是静态的,所以我想在 Cloudflare 中屏蔽范围。

然而它不起作用。 这是 Google 假机器人的示例日志: https://gyazo.com/f4bd7182923c6caa92cf95a7f84116cd

以下是虚假的机器人 IP:

162.158.74.61
162.158.74.175
162.158.75.188
162.158.75.68
162.158.75.230
162.158.75.242
162.158.75.26
162.158.74.205
172.68.58.213
172.68.58.141
172.68.58.21
172.68.59.40
172.68.59.184
108.162.216.176
108.162.216.248
108.162.216.92

这是我当前的 Cloudflare 配置:https://gyazo.com/91af7d0964621c95d5cc5a462724cb9a

关于应该如何完成的任何想法?

您可以通过 robots.txt 和将此

阻止所有机器人
User-agent: * 
Disallow: /

它将阻止所有在您网站上爬行的机器人

此外,如果你想让机器人,例如 googlebot 把这个

User-agent: Googlebot
Allow: /

在 http 块中添加到 /etc/nginx/nginx.conf

geo $fakebotip {
    default 0;
    108.162.0.0/16 1;
    141.101.0.0/16 1;
    162.158.0.0/16 1;
    172.68.0.0/16 1;
    172.69.0.0/16 1;
}

然后到/etc/nginx/sites-available/your-site.pl:

if ($fakebotip = 1) {
    set $naughtyBot A;
}
if ($http_user_agent ~ (Googlebot|SemrushBot|AhrefsBot|bingbot|Qwantify|YandexBot|YandexImages|DotBot|linkfluence|Mediatoolkitbot|BoardReader) ) {
    set $naughtyBot "${naughtyBot}B";
}
if ($naughtyBot = AB) {
    return 404;
}

检查 nginx 配置: sudo nginx -t

如果一切正常,请重新加载 nginx: sudo systemctl reload nginx