一个 IP 地址很少被单独审判。当某个地址行为不端时,黑名单、信誉系统和网站运营商往往会把裁决延伸到它周围的地址上:它所在 /24 的其余部分,有时甚至是整个网络。你正在使用的地址可能因为邻居做过的事而被封,尽管它自己从未做过那件事。
这就是子网连带效应。它解释了一整类看起来令人费解的封锁:干净的请求、合理的节奏,却仍然被拒绝。它也有一面镜子,是任何发送自动化流量的人都应该认真对待的,因为你的流量对别人来说也是邻居。
关键要点
- 按范围封锁的效果好到令人心动。在一项研究中,把单 IP 垃圾邮件黑名单扩展到整个 /24,拦截到的垃圾邮件比例从 54.33% 提升到了 92.74%。
- 但它也会误判。在另一项研究中,天真地把被列入黑名单的地址扩展到其所在的 /24,导致合法地址被误判的比例在一个网络中升高到 6.6%,在某个名单上超过 60%。
- 地址共享让情况更糟。在 Facebook 的数据中,72.9% 拥有滥用账户的 IPv4 地址,当天同时还承载了超过 10 个正常用户。
- Cloudflare 报告称,处于运营商级 NAT 后面的地址被限速的频率是其他地址的三倍,尽管它们的机器人流量中位数几乎相同。
- 在一项研究中部署最广泛的公共黑名单 Spamhaus DROP,列出的最小单位就是 /24。我们在 2026 年 9 月 22 日对实时文件的统计:1,712 个前缀,覆盖 14,958,336 个 IPv4 地址。
运营商为何按“街区”封锁
坏地址会聚集。管理不善的网络,或是租给滥用者使用的网络,往往会同时从多个地址产生滥用行为。数据支持了这一点。
一项针对 157 个黑名单、持续 11 个月的研究,发表于 NDSS 2020,发现“约 57.5% 的 /24 前缀在同一 /24 中至少有两个被列入黑名单的 IP 地址”。特文特大学更早的工作衡量了这种聚集对防御者的价值。用标准的单 IP 黑名单过滤邮件,平均能拦截 54.33% 的垃圾邮件。把每个被列入名单的地址视为标记其整个 /24 为恶意,拦截率提升到 92.74%。一个包含相同数量随机选取地址的对照名单只拦截了 56.64%,说明提升来自于“邻居”,而不仅仅是封锁了更多地址。
这个结果就是按范围封锁的全部论据,而且是个有力的论据。麻烦也正是从这里开始的。
谁在按范围封锁
按范围裁决并非边缘做法。它内建于一些使用最广泛的名单之中。
| 系统 | 列出的内容 | 范围行为 |
|---|---|---|
| Spamhaus DROP | 被垃圾邮件或网络犯罪团伙租用或盗用的网段 | 只有前缀;最小条目是 /24 |
| Spamhaus ASN-DROP | 整个自治系统 | 2026 年 9 月 23 日的实时文件中有 436 个 ASN |
| Spamhaus SBL | 垃圾邮件来源及其基础设施 | 可能升级“到该网络的扩展范围,甚至到通过 ASN 或 RIR 分配相关联的整个网络或多个网络” |
| UCEPROTECT Level 3 | 一旦垃圾邮件评分和影响计数超过设定阈值,该 ASN 中的每个 IP | 警告称它“可能,而且很可能会对无辜用户造成连带损害” |
| Gmail 发件人信誉 | 共享发送地址 | “任何使用共享 IP 地址的发件人的活动,都会影响该共享 IP 地址所有发件人的信誉。” |
部署方式与设计本身同样重要。一项 PAM 2021 的研究通过推断真实主机实际执行的九个公共黑名单中的哪些,发现“Spamhaus DROP 是我们收集中最流行的黑名单,其次是 Spamhaus EDROP”。被执行最多的名单,恰恰是那个只知道范围的名单。
Web 服务从接收端描述了同样的效应。Google 自己关于“异常流量”提示的帮助页面说,如果“其他使用你所用网络的人,比如在学校或企业里,发出了自动化搜索”,你也可能看到这个提示,共享 VPN 或互联网服务商的情况同理。
被测量的连带损害
按邻居裁决的代价,落在了范围内的合法地址上。
NDSS 2020 的黑名单研究直接量化了这一点。天真地聚合黑名单,平均误判 0.14% 到 0.17% 的合法地址,这是在所研究的网络中的情况。将每个被列入的地址扩展到其 /24,把这一比例提升到“0.66%、6.6% 和 1.03%”,而两个具体的名单分别达到了 67.2% 和 22.6%。
地址共享让情况更加恶化。当一个 IPv4 地址承载许多用户时,封锁它就会封锁所有这些用户。
| 发现 | 来源 |
|---|---|
| 151 个公共黑名单中有 53% 到 60% 含有重复使用的(NAT 化或动态的)地址,共 30.6K 到 45.1K 条此类记录,最多可影响多达 78 名合法用户,持续多达 44 天 | Ramanathan 等, IMC 2020 |
| 72.9% 拥有滥用账户的 IPv4 地址,当天同时拥有超过 10 名正常用户;只有三分之一的 IPv4 地址是单用户,而 IPv6 中这一比例为 95% | Li 和 Freeman, IMC 2020, Facebook 数据 |
| 对每个当天拥有滥用账户的 IPv4 地址在次日采取行动,真正阳性率为 65.8%,假阳性率为 27.1% | Li 和 Freeman, IMC 2020 |
| 处于运营商级 NAT 后面的地址被限速的频率是其他地址的三倍;机器人流量中位数为 4.8%,对比其他地址的 4.7% | Cloudflare, 2025 年 10 月 |
| 41.1% 的 IPv4 CDN 客户端流量来自大规模共享地址,而这些地址只占活跃 IPv4 地址的 1.6% | Hsu 等, arXiv, 2026 年 8 月 |
最后一行解释了为什么这一点变得越来越重要。地址空间中很小的一部分,如今承载着真实人类流量的很大一部分,而恰恰是这些地址,一个坏行为者的裁决会落到所有其他人头上。Spamhaus 在其自身的漏洞利用地址名单上也指出了同一点:因为它包含动态地址,“你要封锁的用户很可能并不是那个设备被入侵的用户”,并要求用户“避免封锁无辜用户”。
目前尚不存在的,是关于在 web 上一个 /24 中某个地址被封后,邻居会发生什么的直接测量。上面的数字来自邮件过滤、黑名单分析和平台滥用数据。这一机制已被充分记录;但它在 web 抓取场景下的确切规模尚未被测量。
如果你在采集网络数据,这意味着什么
如果你的请求通过你不控制的地址退出,而使用住宅或移动网络时永远是这种情况,那么你遇到的一些封锁将是关于“邻居”的,而不是关于你自己的。这改变了你应该如何解读封锁率。
先诊断,再调整。 按出口地址所在的 /24 和 ASN 对结果分组。如果某个前缀被拒绝的频率远高于你的基线,而其余部分都正常,那么问题在于该前缀的信誉,而不是你的请求模式。更改请求头或放慢速度都无法解决这个问题。
import ipaddress
from collections import defaultdict
def prefix_block_rates(rows, min_requests=30):
"""rows: (exit_ip, asn, blocked) per request. Returns prefixes blocked far above the norm."""
by_prefix = defaultdict(lambda: [0, 0])
total, blocked_total = 0, 0
for ip, asn, blocked in rows:
net = ipaddress.ip_network(f"{ip}/24", strict=False)
stats = by_prefix[(str(net), asn)]
stats[0] += 1
stats[1] += int(blocked)
total += 1
blocked_total += int(blocked)
baseline = blocked_total / max(1, total)
flagged = []
for (net, asn), (n, b) in by_prefix.items():
if n >= min_requests and b / n > max(3 * baseline, 0.2):
flagged.append((net, asn, n, round(b / n, 3)))
return baseline, sorted(flagged, key=lambda r: -r[3])
分散到多个网络。 按范围裁决会惩罚集中度。从多个网络中抽取地址的资源池,能限制任何单个被封范围对你的影响程度。Shifter 的住宅网关默认在每次请求时轮换到一个新的 IP,池中拥有超过 2.05 亿个地址,这正是这里的天然防御手段。当目标确实需要单一网络时,ASN 定向 可以有针对性地缩小范围;但只在确有必要时才这样做,因为缩小范围也会集中风险暴露。
不要把所有事都固定在一个会话上。 粘性会话会让你停留在一个地址上,这对多步骤流程来说是对的,但对批量采集来说是错的。如果那个地址处于一个不好的“街区”,会话上的所有请求都会继承这一点。
保持“街区”干净。 这正是研究结果让人难以忽视的部分。激进、节奏糟糕的自动化恰恰是导致范围被列入名单的原因,而付出代价的是共享这些网络的家庭和办公室。按照网站能够承受的节奏来控制速度,这一点在 速率限制与请求节流 中有详述,这不仅是礼貌问题。它让你所依赖的地址保持可用,对你和使用这些地址的其他所有人都是如此。
信誉最初是如何建立和评分的,在 什么是 IP 信誉以及它为何重要 中有详述。如何区分一条坏路线和一个已经对你翻脸的目标,在 大规模监控住宅代理健康状况 和 构建目标健康评分 中有详述。
如果你在运营网站,这意味着什么
同样的研究也是对任何编写封锁规则的人的警示。
- 先评分,再封锁。 UCEPROTECT 自己就警告,使用其 ASN 级名单进行封锁“可能,而且很可能会对无辜用户造成连带损害”。把任何按范围的信号当作评分中的一项输入,而不是最终裁决。
- 了解哪些地址是共享的。 Cloudflare 专门构建了一个运营商级 NAT 分类器,以减少封锁共享地址所带来的连带效应。
- 让范围封锁过期。 重复使用的地址转手很快。IMC 2020 的研究发现,重复使用的地址可能被列入名单长达 44 天。
- 说明封锁原因。 一个带有申诉方式的清晰封锁页面成本很低,却能让真实用户免于陷入他们无法自行诊断的问题。
结论
按邻居来裁决一个地址是有效的,这正是为什么互联网大量的防御基础设施都这样做。被执行最多的公共黑名单只列出范围,一些名单按设计升级到整个网络,而共享地址意味着一个坏行为者的裁决可能落到几十个人头上。这种连带损害已被记录在案,有时规模很大,而且在 web 场景下仍未被以任何直接方式测量过。
对于采集数据的人来说,实用的教训是:在假定封锁与你自己有关之前,先按前缀来解读它们;把流量分散到多个网络上,而不是集中在一处;并记住你所使用的范围是共享的。避免继承一个坏“街区”名声的最干净的方法,就是不要成为那样的“街区”。
来源与参考文献
- Ramanathan, Mirkovic and Yu, BLAG: Improving the Accuracy of Blacklists, NDSS 2020。2016 年 11 个月的黑名单监测数据。
- Moura, Sadre and Pras, Taking on Internet Bad Neighborhoods。2011 年 11 月的垃圾邮件数据。
- Ramanathan, Hossain, Mirkovic, Yu and Afroz, Quantifying the Impact of Blocklisting in the Age of Address Reuse, ACM IMC 2020。
- Li and Freeman, Towards A User-Level Understanding of IPv6 Behavior, ACM IMC 2020。
- Li, Akiwate, Levchenko, Voelker and Savage, Clairvoyance: Inferring Blocklist Use on the Internet, PAM 2021。测量时间为 2019 年 12 月。
- Hsu, Pearce, Li, Berger and Richter, Detecting and Characterizing Massively Shared IP Addresses, arXiv, 2026 年 8 月 6 日。CDN 日志,2025 年 7 月。
- Giotsas and Fayed, Cloudflare, One IP address, many users: Detecting CGNAT to reduce collateral effects, 2025 年 10 月 29 日。
- Spamhaus, Spamhaus Blocklist (SBL) 和 Do Not Route Or Peer (DROP)。DROP 数据为我们自己对公开的 DROP 和 ASN-DROP 文件所做的统计,时间分别为 2026 年 9 月 22 日和 23 日。
- UCEPROTECT, Level 3 policy。
- Google, 来自你的网络的异常流量, 以及 Gmail 发件人指南。
- Shifter, 住宅代理地理定向 与 会话 文档。