增加 IP 过滤功能,并且定期自动更新列表

发现 BitComet 不停地向某些 IP 上传,比如 115.231.45.1,IPv6地址查询工具 查到是浙江省宁波市 电信/数据中心的 IP,怀疑是离线下载服务器。此外 IP 过滤列表需要定期(比如每天)自动更新。eMule 一直都有此功能。不过需要有人持续维护这个列表,否则可能会拦截正常用户

2個讚

感觉数据中心/IDC 的 IP 基本可以无脑屏蔽(有可能是迅雷之类的软件的 IP),商用宽带 IP 基本可以直接屏蔽,不过可能会误伤使用云服务器下载的 IP,不过老实说这种可能性不太大。

编辑:

不过老实说这种可能性不太大。

国外似乎由于版权原因,用户需要使用 VPN 之类的来隐藏自己的 IP,所以似乎还是不能无脑屏蔽商用宽带 IP,国内的商用 IP 应该就可以。离线下载服务器、迅雷服务器之类的 IP 就应该直接封,不让他们吸血。

目前使用IP地址进行过滤可以依靠Windows防火墙
但维护IP列表是一个比较困难的事情

实际上我现在就在使用 ESET Internet Security 安全软件内置的防火墙来过滤 IP,但我觉得应该超过 99% 的用户都没注意到吸血服务器 IP 的问题,如果有内置的 IP 过滤和列表就可以省掉很多麻烦(全部用户一起更新),关键是用户更容易注意到吸血 IP 的问题。维护 IP 列表可以建议用户来论坛特定板块或者帖子报告(包括封锁 IP/报告误封)。如果实在是困难,可以不添加列表下载更新功能,只添加 IP 过滤功能(由用户手动输入,自己维护)

对于 IP 过滤,我觉得应该可以通过 WFP(Windows Filtering Platform)之类的功能来实现,直接利用系统自带的功能应该会容易开发一点,并且效率可能更高(占用资源少)。现有的 IP 自动过滤(反吸血)应该也可以利用 WFP。

据我所知,utorrent 和 qbittorrent 都支持 IP 过滤,不过似乎没有图形界面来设置,这对新手不友好,希望 BitComet 增加图形界面。

使用 Windows Filtering Platform 接口需要编程 目前使用Windows防火墙会更加简单
可以区分 应用程序

目前我正在研究全自动的使用Windows防火墙进行的屏蔽方法

呃,我是说希望 BitComet 能内置 IP 过滤功能(使用 WFP),指望用户自己编程来实现是不可能的。使用防火墙还是麻烦了点,内置的话输入 IP 段就行了。

从考古情况来看 在远古时期bc其实兼容过emule的 ip过滤文件
但后来该功能被隐藏 直到现在

有发过第三方防火墙管理小工具,直接输入ip或者ip段就行了,配合免费ip数据库的DCH字段,就可以判断属于数据中心ip
image

还有一点,如果比特彗星内置 IP 过滤的话,可以做到直接不往黑名单中的 IP 发送数据包,节省很多资源,不会做无谓的尝试。如果由防火墙负责,比特彗星还是会尝试连接。
比如现在:TCP连接数:已连接: 76 [最大: 无限制] / 正在发起: 200 [最大:200] / 等待发起: 4758,一堆等待发起的连接。
此外,我发现实际上大多数 IP 实际上可能并不是数据中心,比如 14.121.147.0/24(即 14.121.147.0-14.121.147.254),可能是跑 PT 的那帮人刷下行流量,很恶心。我使用的是 IPv6地址查询工具 IP 数据库。

@wxhere15

这个倒不是大问题,都是tcp ack请求,收到本地防火墙拒绝后,会瞬间断开,而且请求不会发向互联网中
内置ip黑名单我觉得确实应该弄一个

可以用 PBH 现成的规则,把它像 Tracker 一样定期更新就行了。这个恐怕是最简单的解决方案,不过由于没有(?)现成的接口,不能加入 PBH 网络共享信息,这点希望以后改进。规则地址:https://bcr.pbh-btn.ghorg.ghostchu-services.top/combine/all.txt

编辑:不过由于没有(?)现成的接口PBH 好像使用的是 WebUI 来和 BT 客户端交互的,所以 BitComet 还需要添加“只允许本地访问 WebUI”““只允许本地子网访问 WebUI”等选项(参考 qBittorrent),避免用户没配置好,意外暴露 UI 到外网。

对于使用家庭宽带(公众宽带)吸血的客户端,由于是动态 IP,可能可以使用现有的“5分钟/1小时/24小时内拒绝连接”,而不是永久封禁,这样可以避免误封正常用户。