Cloudflare 用 ASN 屏蔽恶意爬虫
Index
最近网站被爬虫爬了,来回会换 ip 屏蔽起来很麻烦, 查了下最后通过屏蔽 ASN 解决。
🧭 什么是 ASN?
ASN(Autonomous System Number,自治系统编号)是互联网上用于标识自治系统(AS)的唯一编号。一个自治系统是由一个或多个网络运营商管理的一组 IP 路由前缀,具有统一的路由策略。ASN 在边界网关协议(BGP)中用于路由信息的交换,帮助网络识别和管理数据传输路径。
每个自治系统在互联网上都有一个唯一的 ASN,用于在 BGP 路由中标识该系统ASN 有两种格式
- 16 位 ASN范围从 1 到 65534
- 32 位 ASN范围从 131072 到 4294967294
ASN 的主要作用是帮助自治系统之间交换路由信息,确保数据包能够通过最优路径传输
通过 Cloudflare 的防火墙规则(Firewall Rules)使用 ASN 来屏蔽恶意爬虫,具体操作如下:
步骤一:查看恶意爬虫的 ASN
你可以通过日志或访问统计,确定恶意爬虫的 IP,并在网上查询对应的 ASN。
例如:
- 使用 ipinfo.io 或 bgp.he.net 等工具查询 IP 对应的 ASN。
步骤二:Cloudflare 配置
- 进入 Cloudflare 仪表盘,选择你的站点。
- 点击左侧菜单栏的 安全性(Security) > WAF > 防火墙规则(Firewall Rules)。
- 点击创建防火墙规则(Create a firewall rule)。
设置类似于:
- 字段 (Field):
ip.geoip.asnum - 操作符 (Operator):选择
等于或在(如果屏蔽多个 ASN)。 - 值 (Value):填入对应的 ASN 数字,例如
AS12345。
示例规则
ip.geoip.asnum in {12345 54321}
操作 (Action)
- 设置为 阻止 (Block) 或 质询 (Challenge)。
生效
创建规则后立即生效,后续该 ASN 下的 IP 将无法直接访问你的网站。
☁️ 常见云服务提供商及其 ASN
以下是一些常见云服务提供商的自治系统编号(ASN),这些信息可用于在 Cloudflare 防火墙中设置规则,以识别或屏蔽特定运营商的流量:
| 云服务商 | ASN | 说明 |
|---|---|---|
| Amazon Web Services (AWS) | AS16509、AS14618、AS8987 | AWS 使用多个 ASN,具体取决于服务区域和类型。 |
| Google Cloud Platform (GCP) | AS15169、AS19527、AS396982 | Google 的主要 ASN 用于其全球基础设施。 |
| Microsoft Azure | AS8075、AS3598、AS8070 | Microsoft 使用多个 ASN,涵盖其 Azure 服务。 |
| Alibaba Cloud | AS37963、AS45102、AS58593 | 阿里云在不同地区使用不同的 ASN。 |
| Oracle Cloud | AS31898 | Oracle 的主要 ASN。 |
| IBM Cloud | AS36351 | IBM Cloud 的主要 ASN。 |
| DigitalOcean | AS14061 | DigitalOcean 的主要 ASN。 |
| Hetzner Online | AS24940 | Hetzner 的主要 ASN。 |
| OVHcloud | AS16276 | OVH 的主要 ASN。 |
| Linode | AS63949 | Linode 的主要 ASN。 |