← 返回博客

为什么静态 Tor 出口节点 IP 列表会过时

为什么静态 Tor 出口节点 IP 列表会过时

Tor 出口节点 IP 列表,是 Tor 流量离开网络并到达普通网站时所使用的公网地址列表,保存下来的副本立刻就开始失效。出口中继由志愿者运营,它们不断地加入、退出和更换地址,因此任何冻结在文件中或硬编码进防火墙规则的列表,都会在数小时内偏离现实。

为什么列表变化如此之快

Tor 网络大约每小时发布一次共识,列出当前运行的中继及其持有的标志,包括 Exit 标志。中继由个人、大学、非营利组织和托管客户运营,许多运行在租用的虚拟服务器上,这些服务器会被取消、重新配置或在服务商之间迁移。当中继停止运行时,其地址会回到托管池中,并可能被分配给完全不相关的客户。当新的出口出现时,在你再次获取之前,你的副本并不知道它。

出口策略又增加了一层复杂性。中继可能只对某些端口作为出口,对其他端口则不是,运营者还可以在不改变地址的情况下更改策略。只记录地址的列表无法表示这种细微差别,因此它既夸大了每个 IP 的作用,又同时漏掉了新来者。

列表过时会出什么问题

有两种失效模式,两者都会让你付出代价。第一种是假阴性:最近启动的出口不在你的列表中,因此你本想区别对待的流量未被标记就通过了。第二种是假阳性,通常危害更大。曾经是出口的地址现在是普通的托管客户、小型企业或住宅线路,但你冻结的列表仍将其标为 Tor。真实用户因为没做过的事而被挑战或拦截,却没人注意到,因为这条规则在配置中看起来是正确的。

过时的列表还会诱使人们为了弥补缺口而封锁整个地址段。这会成倍增加误报,因为托管地址段中中继的邻居往往是不相关的服务。如果你需要更广泛的背景来了解为什么仅凭 Tor 标记不足以成为拒绝访问的理由,请参阅 Tor 出口节点详解。

更新鲜的做法是什么样的

解决办法不是巧妙的匹配,而是较短的刷新间隔,以及让条目老化淘汰的方法。按计划获取列表,以原子方式替换而不是无限追加,并将数据的新旧程度视为答案的一部分。如果你上一次成功刷新的时间超过了你的容忍度,就应倾向于采用较温和的响应(如验证挑战),而不是硬性封锁。

ipto 将此作为一项服务提供:VPN、Tor 和滥用威胁情报源每 6 小时刷新一次,IP 和 ASN 数据集每天刷新。IP 查询会在返回 is_vpn、is_abuser 和 is_datacenter 的同时返回 is_tor,因此你按每次请求读取的都是当前状态,不必自己维护文件。你可以在 VPN、Tor 与代理检查器中试用某个地址,或在威胁情报源页面浏览已发布的列表,看看当前数据是什么样子。

即使是六小时也不是实时,对此要诚实面对。一小时前启动的中继可能还不在数据中,而已经停止的中继在下次刷新之前仍可能被标记。阴性结果意味着“未知为 Tor”,而不是“肯定干净”。

使用 Tor 数据而不过度依赖

由于列表总是略有偏差,请构建能容忍错误的决策。将 Tor 标记与其他证据结合,而不是单独据此行动。IP 滥用检查器会在多个情报源之间进行交叉佐证,有助于区分注重隐私的访问者与真正行为不端的地址,而欺诈评分检查器则将多个信号合并为一个可以设定阈值的 0-100 数值。

  • 查询结果的缓存时间应短于情报源的刷新间隔,而不是缓存数天。
  • 相比永久封锁,更应选择验证挑战、速率限制或额外验证步骤。
  • 记录是哪个信号触发了某项操作,以便日后复核误报。
  • 重新检查你以前封锁过的地址;对某个 IP 的旧决策可能已不再适用。

核心观点很简单:Tor 网络是一个移动的目标,Tor 列表的有用之处在于其新鲜度而不是规模。请将任何静态快照视为历史记录,并优先选择有明确刷新节奏、可据以推理的数据。

直截了当的答案

Tor 出口中继由志愿者运营,且往往运行在租用的服务器上,因此会不断启动、停止和更换地址。保存的列表在数小时内就会开始偏离实时网络。
它会漏掉新启动的出口,使这些流量未被标记就通过;同时它还会继续标记那些已不再是出口的地址,从而拦截或挑战不相关的用户。第二个问题往往危害更大。
ipto 每 6 小时刷新一次 VPN、Tor 和滥用威胁情报源,每天刷新一次 IP 和 ASN 数据集。阴性结果仍然意味着该地址未知为 Tor,而不是肯定干净。
← 返回博客