yfzh2012 发表于 2018-7-8 12:03:40

关于最近ban IP现象的总结和解决方法探讨

本帖最后由 yfzh2012 于 2018-7-8 13:17 编辑

新赛季以来,本来都很好,但是上周服务器维护以后,出现了严重的ban ip 现象,而且时间超长,我不确定到底多久,但是肯定超过 1 ~2 小时(应该是远远不止,我怀疑可能会超过12小时,当然我没测试),除了重置路由器切换ip 没其他办法。
我总结下现象和解决方法:


现象:
1.单开没有问题。
2.被ban 之后 切换ip ,马上就可以使用账户和cdkey,不受上次的影响,不会被持续锁定。
3.角色登录 和 房间加载 时间变长,但是很奇怪如果你同时几个角色登录却会几乎同时进去,所以一定是服务器端有个监测ip登录或者加载的 时间片断,也许这也是个解决问题的办法,但是这个做起来很难,测试起来太难 ,我也就不研究了。
4. win7 下 多开被ban 概率极高,XP下要相对好一些,无论是kolbot 或者我未公开的NTBOT 方法都不行,即便在XP下NTBOT 的问题比KOLBOT 严重。
5. 如果因为吃鸡导致多开账户同时退出,几乎100% ,Kolbot 要修改退出方法,因为它默认是 队长退 ,跟班全部顺退。
6.多开倒装备切换账户和角色过于频繁,也会被ban


分析:

       服务器应该在单IP多开 :账户登录、角色加载房间 、 角色退出房间这几个方面,做了比以往都要严厉的 和 速度 和频度限制 检测。好消息是只锁定IP,而不会象以前哪样锁定账户和cdkey!!!

解决方法:


1.运行在XP下,kolbot 相对稳定
2.不要频繁切换账户和角色,不要频繁建立新房间
3.单开
4.重点是多开
   a. 要加长 角色登录同一个房间的时间间隔,我认为至少要8-10秒(我怀疑在这个10秒左右的时间片中多账户同时登录,会不受检测影响,但是很难做到同步,所以把每个登录都分割到不同的时间片去是目前能做到的,但是退出不行,退出一定要把每个账户退出都加延迟间隔开,同时退出一定ban) ,
kolbot 修改D2BotFollow.dbj
// Put your lines under this one. Multiple entries are separated by commas. No comma after the last one.
"pal": {JoinDelay: 10},
"bar": {JoinDelay: 18},
"dps": {JoinDelay: 25},
"dps1": {JoinDelay: 30},
"dps2": {JoinDelay: 35},   
"dps3": {JoinDelay: 40},
"dps4": {JoinDelay: 45},
b. 用crash 大法 加上我的waiter 方法,确保 每个角色不要同时退出房间,基本上也是要间隔 8-10 秒,也不能加太长要不然 会出现先退出的角色 又进入老房间的问题。当然也可以靠增加新建房间的时间间隔来协调。(重要的事情说三遍,每个账户退出一定都加延迟,间隔开,同时退出一定ban)
   具体请参考   http://www.battlecn.net/forum.php?mod=viewthread&tid=228261&highlight=crash

我也新修改了 Waiter.js 如下,加大 延迟, 如果你觉得不行可以加的更长

function Waiter() {
var waitsec;
waitsec = me.classid *5000+(Math.round(Math.random()*3)+1)*1000;
if(Config.MFLeader) waitsec =40000;
while (waitsec > 0) {
    waitsec = waitsec - 1000;
//    print("Waiting : "+ waitsec+"!!!");
delay(1000);
}
return true;
}
c.kolbot 打造足够硬的队长,确保 它不吃鸡,因为队长吃鸡退出,是会导致 所有账户同时退出的,这个是无解的,用我的crash 大法也没用。
d.多开 加长 延迟之后,确保 各个角色同步 ,避免吃鸡 ,请参考
   http://www.battlecn.net/forum.php?mod=viewthread&tid=228262&extra=page%3D3

5. 多开倒装备,确保每个角色登录之后 在房间里待够2- 5分钟。不要频繁退出换角色,换而言之 自动仓库就别用了。。。
6. 适当加长 游戏时间间隔D2BotLead.dbj
MinGameTime: 180, // Minimum game length in seconds. If a game is ended too soon, the rest of the time is waited in the lobby
PingQuitDelay: 30, // Time in seconds to wait in lobby after quitting due to high ping
CreateGameDelay: 15, // Seconds to wait before creating a new game
ResetCount: 99, // Reset game count back to 1 every X games.
CharacterDifference: 99, // Character level difference. Set to false to disable character difference.
ChatActionsDelay: 5, // Seconds to wait in lobby before entering a channel

SwitchKeyDelay: 5, // Seconds to wait before switching a used/banned key or after realm down
CrashDelay: 20, // Seconds to wait after a d2 window crash
FTJDelay: 180, // Seconds to wait after failing to create a game
RealmDownDelay: 5, // Minutes to wait after getting Realm Down message
UnableToConnectDelay: 5, // Minutes to wait after Unable To Connect message
CDKeyInUseDelay: 5, // Minutes to wait before connecting again if CD-Key is in use.
ConnectingTimeout: 30, // Seconds to wait before cancelling the 'Connecting...' screen
PleaseWaitTimeout: 30, // Seconds to wait before cancelling the 'Please Wait...' screen
WaitInLineTimeout: 60, // Seconds to wait before cancelling the 'Waiting in Line...' screen
GameDoesNotExistTimeout: 30 // Seconds to wait before cancelling the 'Game does not exist.' screen

7. 即便你照做了,也不能完全避免吃鸡和ban ip,但是明显可以减少,所以你可以自己修改以上这些参数,照我的思路,重置路由器去解决问题。

8.多开确保每个房间的时长不要低于15分钟,我觉得20分钟以上更稳定。



good_lucky 发表于 2018-7-8 12:12:59

谢谢大佬感谢 感谢

xzy6610 发表于 2018-7-8 12:13:57

前排支持!

xzy6610 发表于 2018-7-8 12:14:18

第二排占位!

xzy6610 发表于 2018-7-8 12:15:36

网络延迟,被插队了。

凌晨四点的天 发表于 2018-7-8 14:30:51

雪中送炭,值得一赞!

tlwh163 发表于 2018-7-8 15:02:36

方法论呢? 不能全用猜测吧

tlwh163 发表于 2018-7-8 15:03:11

有条件的多用几个IP 组队就解决了

yfzh2012 发表于 2018-7-8 15:12:54

tlwh163 发表于 2018-7-8 15:03
有条件的多用几个IP 组队就解决了
你说的对 多IP是可以解决这个问题,kolbot 不知道怎么弄多ip,NTBoT 用坚果云盘同步是可以实现的,但是只能一个IP 一个账户 ,4ip 一般人做不到,单IP 我试过双开都会ban,我用手机加了一个IP,一旦被封时间很长都解不了,因为手机的ip 你自己重置不了。

tlwh163 发表于 2018-7-8 15:35:56

虚拟机
页: [1] 2 3 4
查看完整版本: 关于最近ban IP现象的总结和解决方法探讨