单机传奇服务端一切正常却不开门且注册不了账号怎么排查解决

来源: 作者: 点击:
服务端窗口全都亮着,客户端也能点开,可就是卡在选服那一步进不去,账号也建不上,这两个毛病其实是同一条链路上的两个断点。客户端到服务端之间要经过登录网关、登录服务、角色库三道关,任何一道没接上,表现不是黑屏就是点不动。下面按从高频到低频的顺序,把每一处能断的地方都拆开讲。

一、先把"看起来都启动了"这件事推翻

任务栏里挂了六七个黑窗口,不等于每个都干活了。挨个点开看它的最后几行提示:

DBServer 必须显示数据库连接成功、开始监听,如果它提示数据源找不到或者一直转圈,后面全废。
LoginSrv 要显示登录服务启动、监听端口就绪。
LoginGate 是登录网关,它才是登录器真正对话的对象,它没起来,"不开门"十有八九就是它。
LogServer、RunGate、SelGate 三个日志和游戏网关,正常是加载完配置文件后挂着。
Mir200 下的那个主程序,要显示地图、怪物、NPC加载完成。它半路报内存或脚本错误退出,人连区都进不去。

只要有一个窗口在反复刷新重启或者停在报错行,先把那个窗口的问题解决。引擎本身没跑顺,后面改登录器都是白费。

二、登录器与服务端不配套

这是同类问题里占比最高的一条。判断方法很直接:登录器必须由这套服务端自带的登录器生成器生成,或者生成器与你服务端的引擎是同一套协议。拿别的引擎的登录器直接塞进去用,点注册没反应、点开门没反应都是必然结果。

还有一种情况是登录器文件夹和 Mir200 文件夹里的 key.lic 两处不一致。很多人只换了登录器目录里那个,忘了主程序目录里那个。两处必须是同一份,缺一处照样进不了。换配套登录器时顺手把这两处的 key.lic 都替换掉。

如果服务端包里压根没给配套登录器,或者给的是要联网校验收费的登录器,换一个免费的配套生成器重新生成,别硬凑。

三、端口对不上

服务端和登录器之间靠端口认路,两端数字必须一模一样。

服务端这边的端口藏在几处配置文件里,用记事本打开核对:

Mirserver\Mir200\下的主配置,登录网关端口一般写作 GatePort,默认7000,游戏端口7100。
Mirserver\DBServer\ 下的地址表文件,里面记录角色库和网关之间的内部端口。
Mirserver\RunGate\ 下的配置,里面是游戏网关端口。

登录器这边的端口写在列表文件或者生成器界面里。列表格式通常是"区名|IP|端口|是否开区",中间那个端口必须和服务端登录网关端口一致。服务端写的7000,列表写成8080,点开门就没反应。

改完记得重启整个服务端,再重新生成一次登录器。生成器有缓存的,光改列表不改生成器,出来的东西还是旧的。

四、IP写成别的了

单机架设只有一种正确写法:127.0.0.1。列表里的IP、引擎配置向导里的外网IP、各配置文件里的地址,全部按这个来。

填成自己电脑的局域网地址,或者不知从哪抄来的公网IP,本机反而连不上。配置向导里那个"动态IP"的勾,单机绝对不要点,那是给外网用的,勾上以后地址会被来回改,稳定不了。

五、网关通讯密码不一致

部分引擎在登录器和网关之间加了一道密码校验,对不上暗号就静默拒绝,不给你任何提示。打开登录器生成器找通讯密码或者类似选项,再看网关配置里的对应字段,两边字符必须完全相同,大小写和符号都算数。改完重新生成登录器。

六、防火墙和杀毒软件在中间拦

这个特别隐蔽。表现就是本机明明通着,客户端就是连不上。

把服务端整个目录、客户端目录、登录器程序,分别加入杀毒软件的信任区和防火墙的允许列表。
拦的重点进程是登录网关、登录服务、角色库服务、主程序,以及那个登录器本身。
有的杀毒会把引擎的某个dll当可疑文件直接删掉,删完主程序点开一闪就没。去隔离区看看有没有被吞掉的文件,有就恢复并信任。
排查阶段可以先把防护整体关掉试一次,通了再逐条加白名单,别长期关着。

用命令行 netstat -ano | findstr 7000 看看端口是不是真被监听。有输出说明网关在听,没输出说明它压根没起来或者端口被别的程序占了。被占了就换个端口,服务端和登录器同时改。

七、区名里带了空格或怪符号

选服列表里那个区名,看着无所谓,其实要跟着地址一起传给网关。区名中间塞个空格,或者用了一堆特殊符号,引擎解析地址时就断了,人会卡在开门这一步。把区名改成纯中文或字母,不带空格,重新生成登录器。

八、账号建不上单独看这几处

注册账号和开门走的不是同一条路。开门管的是进游戏,注册账号管的是登录服务加账号库。

账号库的存放位置没配对。有的版本账号存在角色库里,有的单独一个数据库,要确认登录服务指到的库和实际建库的位置一致。
数据库别名或路径写错了。回到数据库管理工具里,看那个别名的路径是不是指向 Mirserver 下对应的库文件夹,文件夹里要有成批的数据文件。路径指到空目录,注册自然失败。
引擎提示账号已存在或者写入失败,往往是库文件被只读或者被杀毒锁住了。看库文件属性,去掉只读,加白名单。
用管理员身份运行服务端和登录器。权限不够时,程序读得到配置却写不进账号,表现就是点注册毫无反应。

如果区分不清是注册失败还是建角色失败,这样分:登录器上先点注册,能提示"注册成功"再回登录框输账号密码。注册都成功不了,问题在登录服务和账号库;注册成功但进游戏后建角色卡住,问题在角色库和游戏网关。

九、host 被改过

少数机器上 host 文件被之前的软件写进了奇怪的解析记录,把本机地址带偏。打开 C:\Windows\System32\drivers\etc 下的 hosts 文件,用记事本看,凡是跟本机地址、跟游戏域名相关的行,先注释掉或者删掉,保存后重试。这一步花不了一分钟,但偶尔真能救场。

十、按顺序复位一遍

前面零散改了一堆,容易越改越乱,建议按这个顺序整一遍:

关掉所有服务端窗口,一个不留。
核对数据库别名路径、各配置文件里的端口和IP、区名。
按角色库服务、登录服务、登录网关、日志服务、游戏网关、主程序的顺序重新启动,等每个窗口都显示就绪再下一步。
重新打开登录器生成器,确认端口、IP、通讯密码、列表都对着,重新生成登录器。
把新登录器和两份 key.lic 放到位。
关掉防火墙和杀毒做一次连通测试。
打开客户端里的登录器,注册账号,再登录选服。

十一、几种典型表现的直接对应

列表能看到区,点进去没反应:登录网关没起或端口不对,先查这一条。
列表是空的或者显示服务器已关闭:登录器读不到列表,查列表地址和本地列表文件路径。
点注册没反应、不弹任何提示:登录器与服务端不配套,或者通讯密码不一致。
提示连接服务器失败:IP、端口、网关三者对不上,或者被防火墙拦了。
注册提示成功但登录说账号不存在:账号库路径和登录服务指向的库不是同一个。
能进选区画面但看不到建角色按钮:补丁没贴对,客户端资源不完整。
建好角色进游戏黑屏、看不见地图:补丁目录名和登录器里配置的名字对不上。

把上面这些走一遍,绝大多数"全启动了却不开门"的情况都能定位到具体某一处。真正卡住人的从来不是服务端没跑,而是登录器和服务端之间那几个数字和字符串没对齐。