目前,大部分 peer 在 bt_banned 中默认是永久过滤,即 banned (peer_ip_banned) : ∞、banned (peer_id_banned) : ∞,实际上只需要阻止1小时,理由是如果 IP 后来从 IP 过滤列表中移除了,会导致误拦截。通过 Peer ID、客户端名称等拦截的 IP 也类似,如果客户端 IP 变了,也可能会导致误拦截。如果 1 小时太短,可以选择阻止 24 小时。
默认 IP 规则列表也是每小时更新一次,阻止1小时可能是最好的,但和 24 小时相比,会多一些多余的连接。
注:用户手动拦截 Peer(拒绝5分钟/1小时/24小时)这几个按钮保持现状即可。
这种方法还可以巧妙地维护 bt_banned 列表,避免长度爆炸。
通过 Peer ID 和客户端名称拦截的持续时间可以长一点,比如 24 小时(家庭宽带一般最少 24 小时才更换 IP)
永久过滤是合理的,避免后续重复请求产生,临时过滤只有完成度检测为ban10分钟
我认为检查 bt_banned 列表和 IP 过滤列表的开销应该是差不多的,不永久过滤的原因是如果原先过滤了吸血 IP,后来不再是吸血的,那么会造成误拦截(家庭宽带是动态 IP,更是如此),比如 PeerBanHelper 7.1.4 开始,取消拦截了 anacrolix/torrent 客户端:
删除
anacrolix/torrent
和-GT0003
规则,现在的吸血客户端已不再使用anacrolix/torrent
进行吸血,转为伪装其它正规客户端。根据 BTN 收集的数据来看,此规则挡住了一些基于 anacrolix/torrent 开发的正规客户端(如番剧下载器等),因此我们删除了此规则
- 后续如果卷土重来,将通过 BTN 云端规则下发重新屏蔽