本帖最后由 1582952890 于 2017-9-16 21:29 编辑


未经本人许可严禁转载此插件/使用其代码
听说有人把这个插件放到淘宝高价出售,感谢您让我明白了什么叫无耻

介绍:
此插件可以 90% 抵御假人压测和 ?% 抵御MOTD压测。
不知道具体能抵御多少的MOTD压测,因为测试的时候无论我怎么打都没反应,不管装不装这个插件都一样。。难道是1.8已经修复了这个漏洞?
不过假人压测还是没问题滴~图:安装了GFW并且配置为默认的情况下。

在开始压测时CPU瞬间飙到100%,然后被插件拦截,之后又恢复正常。
如果不装这个插件,那CPU就保持在90%~100%,基本上算炸了。

原理:
使用ProtocolLib检测MOTD请求包和玩家进入服务器数据包,如果超出设置的频率就将此IP加入黑名单,指定的时间后解除。

教程&命令&配置文件:
其实这个拦截什么的都是全自动的,不需要人来管。

命令
/firewall reload           重载配置文件
/firewall list                查看屏蔽黑名单列表中的IP
/firewall remove [IP]  从黑名单中移除指定的IP地址
/firewall clear             清空屏蔽黑名单
/firewall whitelist <add/remove/clear> [IP]  白名单管理,子命令相信无需解释用途

以上命令全部需要OP权限

配置文件
  1. # 每10秒钟限制一个IP能发送MOTD请求数,超过这个数则判定为MOTD压测,加入黑名单(防MOTD压测)
  2. pingPacketIn10SecPerIP: 20

  3. # 每10秒钟限制一个IP的玩家能加入服务器多少次,超过这个数则判定为加入压测,加入黑名单(防假人压测)
  4. joinRequestIn10SecPerIP: 5

  5. # 当一个IP发送过多的MOTD请求后,屏蔽多少秒
  6. banTimeOnOverclockingPing: 20

  7. # 当一个IP请求加入服务器次数过多后,屏蔽多少秒
  8. banTimeOnOverclockingJoin: 30

  9. # 当检测到任何类型的压测时是否通知后台
  10. warningConsole: true

  11. # 当检测到任何类型的压测时是否通知在线的OP
  12. warningOPs: true

  13. # 白名单列表,建议不要手动编辑,而使用添加白名单命令
  14. whitelist: []
复制代码
嗯差不多就这样了……
哦对了还有,插件拦截到压测的时候会将信息储存到 插件配置文件夹下的 logs.txt 中。

下载:
GreatFireWall.jar (23.32 KB, 下载次数: 18707)

更新日志:
  • 1.0 忘记时间
    忘记内容
  • 2.0 忘记时间
    忘记内容(逃
  • 3.0 2016/4/15
    增加白名单
    优化了防御机制
    现在实际上会消耗更少资源,理论上可以防御更多的压测器
    其实应该还有更多改进的,但是由于这版本去年就做好了,一直没发布(懒癌晚期),所以忘记了...(别打我
  • 4.0 2016/4/16
    把类翻了个遍,能优化的地方都优化到了。移除了enablePing选项因为某某原因。
  • 4.1 2016/4/20
    降级到ProtocolLib3.4.0
  • 5.0 2016/8/13
    修复某严重bug——惊喜的发现3.0的“消耗更少资源,理论上可以防御更多的压测器”实际上是“消耗更少资源,可以拦截更少的压测器”
    所以现在应该没法通过只进行一次握手的办法绕过了。。希望如此。
    优化。


注意!此插件需要前置ProtocolLib否则无法加载
[ProtocolLib 3.4.0] 适用于 1.7 服务器
[ProtocolLib 3.6.5] 适用于 1.8 服务器
[ProtocolLib 4.0.2] 适用于 1.8,1.9,1.10 服务器


不要在BC上用,以后(可能)会研发BC专版