当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇注册新用户提示connectionclosed:账号服务断开原因

热度:
connectionclosed就是“连接被关掉”。注册新用户时,登录器把账号密码发给登录服务/账号服务,对方没接住,直接把TCP断了。能看见服务器列表、能点注册,但一提交就connectionclosed,说明链路前面通了,注册这一环断了。

一、账号服务根本没起来

老传奇里负责注册的是LoginSrv/账号服务器/LoginServer。
M2、RunGate起来了也不代表它能收注册请求。

看任务栏/控制器里有没有:
•LoginSrv.exe

•LoginServer.exe

•账号服务器.exe

•Logsrv.exe

窗口闪一下就没,常见原因:
•缺MSVCR100.dll/VCRUNTIME/VB6运行库

•LoginSrv.ini路径错

-端口被占
•配置文件里IP写成空或乱码

•杀软把LoginSrv.exe删了

处理:
进LoginSrv目录看日志(!SetupLogLogin.log、LoginSrv.log),红字写啥就修啥。没日志就重装VC2005-2013+VB6运行库,把LoginSrv.exe加杀软白名单,再起。

二、LoginGate和LoginSrv没连上

客户端→LoginGate(登录网关)→LoginSrv(账号服务)→数据库。
网关起了,但网关连不上账号服务,注册请求过去就被弃掉,登录器就报连接关闭。

查LoginGate.ini/LoginGate.cfg:
ServerIP=127.0.0.1
ServerPort=5500或5600
LoginSrv那边监听的也必须一样。

网关连账号服务失败的表现:
•网关日志里connectloginserverfailed

•能看列表,注册/登录全断

•有时点登录直接“连接已关闭”

处理:
LoginSrv先起,LoginGate后起;都填127.0.0.1;端口两边一致;别把LoginSrv绑127.0.0.1而网关填192.168.x.x。

三、数据库写不进去

注册本质就是往账号库插一条记录。
库没起、路径错、文件只读、权限不够,都会让服务端在写库时异常,随后关连接。

分类型看:

1.DBC2000/HeroDB
控制面板→BDEAdministrator→HeroDB
PATH指向:
D:\MirServer\Mir200\Mud2\DB
别指中文路径。
Account.db/Idx文件要在目录里。
服务端目录右键→安全→当前用户完全控制。

2.MSSQL
sa密码错、库没还原、DBHost不是127.0.0.1、MSSQL服务没自动启动,都会让LoginSrv起不来或注册时崩。

3.MySQL
MySQL服务没起、8.0版本太新、账号密码不对、库名不对,注册直接断。

处理:
先手动开数据库服务,再看LoginSrv能不能连上库。库都连不上,注册不可能成功。

四、服务端关了“允许注册”

很多端默认:
AllowReg=0
AllowRegister=0
允许新用户注册=否

这时候登录器发注册包,服务端不处理,直接断。
表现就是:登录失败有提示,注册一提交就connectionclosed/服务器已关闭。

查:
•LoginSrv.ini里AllowReg=1

-M2/引擎配置器→游戏参数→允许新账号注册打勾
•有些端还有EnableRegister=1

•有些HERO端在HeroM2.ini/登录服务配置里关了注册

单机自己玩直接开:
AllowReg=1
AllowRegister=1
EnableRegister=1
改完重启LoginSrv和M2。

五、登录器和引擎不对号

GOM登录器去连HERO账号服务,注册协议对不上,服务端解析失败,关连接。
HERO登录器连GOM端也一样。

判断:
•列表能出,但注册/登录都异常→登录器大概率不对

•用“万能登录器”能看列表,但注册断→万能登录器只够看列表,不够走注册协议

•服务端包里LoginGate/RunGate和登录器不是一批生成→必炸

处理:
用服务端自带“生成登录器”重新生成,IP填127.0.0.1,端口填开区端口(常7000)。
别拿发布站随便下的登录器硬连。

六、端口被占

注册不一定走7000,账号服务常走5500/5600/7100/8001之类。
你机器上:
•迅雷

•宝塔

•数据库

•上次的Mir进程没关

•重复点了好几次GameCenter

都会占端口。LoginSrv起不来或起了但绑定失败,注册包没人听,连接被关。

cmd:
netstat-ano|findstr5500
netstat-ano|findstr5600
netstat-ano|findstr7100
看到PID去任务管理器杀掉重复Mir/LoginSrv/RunGate进程,重启电脑最干净。

七、杀软把注册链路吃了

Defender/360/火绒常干的事:
•删LoginSrv.exe

•拦LoginGate监听

•拦登录器发网络包

•把Account.db锁成只读

-运行时注入检测,服务端进程异常退出

表现:
刚架好能注册,重启电脑后不行了;
关杀软就能注册,开杀软就connectionclosed。

处理:
整个MirServer目录、客户端目录、登录器exe全加白名单。
Defender实时防护关掉测一次。别只加一个exe。

八、路径有中文/空格

D:\我的传奇\服务端
D:\MirServer
C:\Users\张三\Desktop\MirServer
这种路径老Delphi/C++服务端会读错配置、找不到DB、BDE建不出HeroDB。

正确:
D:\MirServer
D:\MirClient
纯英文,别放桌面,别放ProgramFiles。

DBC2000的PATH也别手敲带空格。

九、!addrtable.txt格式错

部分端LoginSrv靠!addrtable.txt知道“哪个服务器名对应哪个IP端口”。
格式大概:
游戏名Title1127.0.0.1127.0.0.1127.0.0.1:7000

写错成:
游戏名127.0.0.1
7000
或者服务器名带空格、端口对不上,登录器能拿列表,但注册/进游戏时服务端找不到对应区,直接断。

处理:
照同版本原端示例改,别照别的引擎格式抄。

十、重复启动把状态搞脏了

很多人架传奇:
点一下GameCenter没反应,再点一下,再点一下。
结果:
•两个LoginSrv

•两个DBSrv

•两个RunGate

•端口互相抢

•注册包发到半死不活的那个进程

处理:
任务管理器把Mir、Login、DB、Gate、M2相关进程全结束,重启电脑,只起一次GameCenter,看每个窗口都到Ready/监听成功再注册。

十一、单机最稳的注册打通顺序

1.纯英文路径D:\MirServer
2.DBC2000建HeroDB,PATH指向Mud2\DB;用MSSQL就先起MSSQL并还原库
3.所有配置IP写127.0.0.1
4.LoginSrv.ini里AllowReg=1
5.启动顺序:数据库→DBSrv→LoginSrv→LoginGate→RunGate→M2
6.LoginSrv窗口显示监听账号端口
7.用本端生成器出登录器,列表127.0.0.1:7000
8.账号4-12位字母数字,别用admin/test/root
9.杀软白名单
10.注册成功后再建角色

十二、快速定位:三种现象对号

能看列表、点注册立刻connectionclosed
→LoginSrv没起/注册被关/登录器协议不对

能看列表、点注册转圈后断开
→网关连不上账号服务/数据库写不下/端口占用

能看列表、注册完说账号不存在
→写库了但角色库/账号库没同步,或用了两个库(账号在A库,角色在B库)

十三、配置文件速查

LoginSrv.ini/LoginServer.ini:
[Server]
Port=5600
[Config]
AllowReg=1
ServerIP=127.0.0.1

LoginGate.ini:
ListenAddr=0.0.0.0
ServerIP=127.0.0.1
ServerPort=5600
GatePort=7000

!Setup.txt/引擎配置器:
ServerIP=127.0.0.1
DBHost=127.0.0.1
AllowRegister=1
EnableRegister=1

登录器列表:
单机1.76127.0.0.17000

十四、还不行就看日志别看弹窗

登录器只会在乎“断了”,不会告诉你为啥断。
真原因在:
•LoginSrv.log

-DBServer.log
•LoginGate.log

•M2控制台最后几行

•Windows事件查看器里LoginSrv.exe崩溃记录

看到:
cannotconnectdatabase→库配置错
portalreadyinuse→端口被占
tableAccountopenfail→HeroDB/PATH/文件权限错
regdisabled→关了注册
unknownpacket→登录器不对
acceptthenclose→插件/杀软/协议错

十五、插件也会搞事

Mir200\PlugList.txt里塞了一堆第三方dll:
•注册限制插件

•防沉迷插件

•商业登录器验证插件

-网页注册中间件

老端加载这些dll崩了,LoginSrv/M2异常关连接。
单机先只留引擎自带插件,PlugList.txt里其他的注掉,重启测注册。

十六、网页注册和客户端注册两回事

有些端把客户端注册关了,强制去http://xxx/reg.php网页注册。
你非在登录器点“注册新用户”,服务端不处理,关连接。

处理:
看登录器有没有“前往注册/网页注册”按钮;
有就走网页;
没有又报connectionclosed,就是前面LoginSrv/库/登录器的问题。

十七、一句话

connectionclosed不是“网络坏了”,是“账号服务收到注册包但不会/不能处理,然后把连接关了”。
先确认LoginSrv活着,再确认AllowReg=1,再确认HeroDB/MSSQL能写,再确认登录器和引擎同版本,最后关杀软清端口。这四关过了,注册基本就通。
[顶部]