单机传奇架设127.0.0.1本地启动成功,登录器绿灯无法注册登录排查方案

来源: 作者: 点击:
单机传奇本地架设使用127.0.0.1环回地址,服务端全部启动完成,登录器列表显示绿灯,但是账号注册无响应、点击登录没有任何反馈,是本地架设最常见的一类故障。绿灯只代表登录器可以连通服务端端口,不代表服务内部脚本、网关、数据库全部正常,需要从网关端口、数据库、引擎配置、登录器配套、防火墙这几个方向依次排查,按照从简单到复杂的顺序逐项验证。

首先检查引擎配套的网关程序,多数版本会有LoginGate登录网关、RunGate游戏网关。启动服务端的时候,必须把这两个网关窗口全部打开,很多新手只启动了M2引擎主程序,忽略登录网关。LoginGate负责接收账号注册和登录请求,如果这个程序没有正常启动,登录器哪怕ping通端口显示绿灯,提交注册和登录指令也不会有任何返回,点击登录完全没有反应。打开LoginGate窗口,观察下方日志区域,点击登录器注册按钮时,窗口内是否有新日志滚动。如果没有任何日志,说明登录器发送的注册请求根本没有抵达登录网关,优先核对登录器内填写的端口,默认登录端口一般为7000,游戏端口7100,核对LoginGate监听端口是否和登录器填写的端口保持一致,端口不一致就会出现连通性检测正常,注册登录失效。

第二点核对数据库,单机版本大多使用DBC2000。打开DBC控制面板,查看数据库名称,默认一般为HeroDB,数据库路径必须指向服务端文件夹内的DB目录。路径设置错误,数据库无法读写账号数据,注册账号操作无法写入,点击注册没有提示。确认DBC服务已经启动,在电脑服务列表查看,HeroDB服务状态为正在运行。如果DBC没有正常加载数据库,M2引擎虽然可以启动,但是无法创建账号信息。可以打开数据库目录下的账号数据表,手动新建一条账号记录测试,手动添加账号后,如果能够正常登录,就是注册脚本或者登录网关的写入逻辑出现问题,不是端口连通故障。

第三检查M2引擎状态,等待M2完全加载完毕再打开登录器。M2启动的时候会加载地图、怪物、物品、NPC脚本,大版本加载耗时较长,窗口上方显示正在加载资源,此时服务并未就绪,登录器提前连接就会出现绿灯但是无法交互。等待M2窗口提示引擎启动成功,所有脚本加载完成,再打开登录器尝试注册。查看M2日志,启动阶段如果大量脚本报错,会造成登录模块功能异常,脚本缺失或者语法报错会让账号校验逻辑失效,这种情况要打开日志,找到报错文件,修复缺失脚本或者删除报错的NPC脚本。

第四核对登录器和引擎的配套关系,这是高频出错点。登录器不是通用组件,不同引擎对应专属登录器,哪怕IP和端口填写正确,不配套的登录器只能完成端口连通检测,显示绿灯,协议不匹配就无法收发注册登录数据包。使用服务端压缩包自带的原始登录器,不要单独下载其他登录器替换。部分登录器带有列表文件,列表内的IP地址必须是127.0.0.1,端口和LoginGate保持一致,不要填写电脑内网IP。打开登录器配置文件,确认网关地址没有额外加密校验,部分登录器会校验服务端版本号,版本不匹配直接丢弃注册请求,页面无任何反馈。

第五检查系统防火墙与安全软件拦截,本地127.0.0.1虽然属于本机回环,部分杀毒软件、Windows防火墙依旧会拦截网关程序的数据收发。关闭第三方安全防护软件,同时临时关闭Windows防火墙,再测试注册登录。防火墙规则拦截不会阻断简单的端口ping检测,所以登录器指示灯依旧为绿色,但是阻止登录网关接收注册数据包,造成操作无响应。如果关闭防护之后恢复正常,就需要手动添加LoginGate、RunGate、M2引擎到防火墙允许列表。

第六检查网关内的IP访问限制,打开LoginGate,找到IP过滤设置。如果开启黑名单或者白名单机制,127.0.0.1被加入限制列表,就会拒绝本机连接。关闭IP过滤功能,清空黑名单,允许本机地址访问。同时查看网关最大连接数,连接数上限过低也会拒绝新连接请求。LoginGate的日志窗口是重要判断依据,点击注册,日志有收到注册请求但是提示写入失败,问题在数据库;日志完全没有新增记录,问题在登录器协议、端口或者防火墙拦截。

其他次要故障点,电脑系统时间异常会导致部分登录器校验失败,时间偏差过大,校验不通过直接丢弃登录请求。服务端文件夹路径不要带有中文、空格、特殊符号,路径过长也会引发DBC读取异常,建议把服务端解压到D盘根目录,文件夹名称使用英文数字。电脑系统权限不足,右键选择以管理员身份运行M2引擎、LoginGate、RunGate和登录器,权限不足会导致程序无法读写数据库文件,注册操作无法保存账号。

故障快速判断流程,启动全套服务端,等待M2加载完成。打开LoginGate,保持窗口可见,切换登录器点击注册。观察LoginGate日志。日志出现注册请求信息,代表数据包已经到达服务端,故障在数据库、账号脚本;日志没有任何新增内容,数据包没有到达网关,故障在登录器不配套、端口不匹配或者安全软件拦截。手动在数据库新建账号,测试登录,如果手动账号可以正常进入游戏,代表引擎、网关、数据库运行正常,只是注册NPC或者注册网页脚本损坏,可以放弃注册功能,直接手动建立账号登录游戏。

很多人误以为绿灯代表服务端全部可用,这个判断方式本身存在误区。登录器的绿灯检测原理只是简单向目标IP端口发送数据包,判断端口是否处于监听状态,只要LoginGate程序开启监听端口,就会返回绿灯,不代表账号处理、数据库读写、协议交互正常。所以出现该现象,不要反复修改IP地址,127.0.0.1本地单机IP一般不需要改动,优先从网关日志入手定位问题。