能输入账号、能到角色界面,说明登录器已经连上登录网关,问题不在网络层,而在账号认证、角色网关、数据库读取、引擎验证这几段里至少有一处断了。按下面顺序查,别乱点。
一、先清残留进程再看日志
任务管理器结束掉所有 M2Server.exe、DBServer.exe、LoginSrv.exe、LoginGate.exe、SelGate.exe、RunGate.exe。
进服务端 Log 目录,打开 M2Server.log 和 LoginSrv 日志,搜这几个关键词:
DBServerConnectFail → 数据库没通
LoginGate Connect Fail → 登录网关没连上 M2
Auth Timeout → 验证超时,通常是进程卡死或数据库慢
ClientVersionMismatch → 登录器版本不对
Role Auth Error → 角色表或字段问题
看到哪个关键词就直接跳到对应小节,不用全篇改。
二、确认认证服务和网关全在跑
角色界面认证依赖这条链:
客户端 → LoginGate(登录网关)
→ LoginSrv(账号认证服务)
→ SelGate(角色网关)
→ DBServer(数据库)
→ M2Server(主引擎)
能输账号说明 LoginGate 通了,但后面任意一环没起都会弹“服务器认证失败”。
检查服务端目录里这些进程是否都在:
DBServer\DBServer.exe
LoginSrv\LoginSrv.exe
LoginGate\LoginGate.exe
SelGate\SelGate.exe
RunGate\RunGate.exe
Mir200\M2Server.exe
哪个黑窗一闪而过,先别急着重起:
去杀软隔离区翻一遍,LoginSrv.exe、SelGate.exe 常被 Defender 当可疑进程删,恢复并加信任
右键该 exe 以管理员身份运行
看对应日志报什么,常见是端口占用或配置文件读坏
GOM/GEE 用 GameCenter 一键启动的,也去任务管理器确认这六个进程都在,控制器显示“已启动”不代表子进程没崩。
三、IP 和端口必须全链路一致
单机所有配置统一 127.0.0.1,不允许留空、不允许混 192.168.x.x。
检查这些文件:
Mir200\!Setup.txt
ServerIP=127.0.0.1
LocalIP=127.0.0.1
GateIP=127.0.0.1
LoginSrv\!addrtable.txt
格式:
游戏区名 Title1 1 127.0.0.1 127.0.0.1 127.0.0.1:7000
LoginGate\Config.ini
SelGate\Config.ini
RunGate\Config.ini
ServerIP=127.0.0.1
Port=对应端口(默认 7000/7100/7200)
区名必须和登录器列表里的区名一字不差,多空格都不行。
查端口占用:
netstat -ano | findstr "7000"
netstat -ano | findstr "7100"
netstat -ano | findstr "7200"
有 LISTENING 就按 PID 结束占用进程。改端口必须整套一起改:网关 ini、!Setup.txt、登录器列表三处同步,只改一边没用。
四、网关验证密码三处要对齐
GOM、HERO 类引擎有“网关密码”机制,登录器、LoginGate、SelGate 三处密码必须完全一致。
登录器配置器里如果填了网关密码(比如 123456),那么:
LoginGate\Config.ini 里 Password 或 PassKey = 123456
SelGate\Config.ini 里对应密码项 = 123456
空密码就在登录器配置器里取消“启用网关密码”勾,别一边空一边填。
密码不对的表现就是:能到角色界面,一点登录或创建角色就弹认证失败,日志里可能出现 AuthPasswordError。
五、M2 里账号认证设置检查
进 M2Server 控制台:
选项 → 参数设置 → 账号控制(或安全相关)
确认几点:
没开“远程账号认证”,单机用本地认证
“允许普通账号登录”要勾上
账号前缀、后缀限制全部清空
“启用防劫持功能”关掉(GOM 单机必关,会拦本地回环)
验证码功能取消勾选
如果误开了远程认证,M2 会去连一个不存在的验证服务器,角色界面必弹认证失败。
F11 里“角色验证”要开启,验证超时时间调到 15 秒,避免本机数据库稍慢就被判超时。
六、数据库层(DBC2000 老端)
控制面板打开 BDE Administrator,确认:
别名 HeroDB(大小写严格)
PATH = D:\MirServer\Mud2\DB(精确到 DB 文件夹)
能展开 StdItems、Magic、Monster、Account、RoleDB 表
Mud2\DB 里必须有:
StdItems.DB
Magic.DB
Monster.DB
Account.DB(或 IdDB 相关文件)
RoleDB 表结构完整
RoleDB 缺 MapID 字段会导致加载角色失败,用数据库编辑器打开表,缺字段就补一个 MapID,类型 Integer,默认值 3。
Account 表里刚注册的账号,Status 列必须是 0。被标记为 1 或 2 的账号会被引擎判定异常,角色界面直接认证失败。
注册账号别用 @ # 空格这类特殊字符,纯字母+数字最稳,比如 test123。
七、新引擎(GOM/GEE Access/SQLite)数据库
如果 Mud2\DB 里是 HeroDB.mdb 或 GEEM2.db:
打开 GameCenter → 配置向导
数据库类型选 Access 或 SQLite
数据库文件浏览指到实际 mdb/db 文件
保存后重启控制器
检查 DBServer\DBConfig.ini:
DBType=Access
DBFile=D:\MirServer\Mud2\DB\HeroDB.mdb
别用 DBC2000 去配 Access 库,两套机制互斥。
八、登录器和引擎必须配套
这是单机认证失败的高频坑:
GOM 端必须用 GOM 登录器配置器出的登录器
GEE 端必须用 GEE 登录器配置器出的登录器
HERO 端用 HERO 配套登录器
别拿网上万能登录器、别拿别的版本登录器硬套
部分引擎(如 996)有识别码绑定:
打开登录器,复制界面上的“识别码”
进引擎控制器 → 安全/新建 → 登录器识别码,粘贴保存
Key 文件要和服务端 Mir200 目录下的 Key 完全一致,不一致重新生成登录器覆盖
登录器放客户端根目录,别放桌面或下载目录运行。
九、测试模式没关的隐藏坑
有些端默认开着“单机测试模式”,登录器显示“单机测试”,角色区验证会被降级或拦截。
查两处:
Config\Server.ini 里 TestMode=1 改成 0,SingleServer=1 改成 0
Mir200\Envir 下如果有 TestMode.txt 直接删
改完彻底关掉所有传奇进程再重启服务端。
十、启动顺序重新走一遍
别用之前那种“先开登录器再起 M2”的习惯,严格按:
1. DBServer.exe(等“数据库启动成功”)
2. LoginSrv.exe(等“Auth Server Start Success”)
3. LoginGate.exe
4. SelGate.exe
5. RunGate.exe
6. M2Server.exe(等“初始化完成”)
全部起来后再双击登录器。中途有任何一个窗口闪退,先解决那个再往下走,别硬点。
十一、账号数据损坏兜底
如果账号能注册但一直认证失败,可能是账号库写坏了:
备份 Mud2\DBServer\FDB 和 Mud2\Logsrv\IdDB
用数据库编辑器打开 Account 相关表,看注册账号是否真写进去了
乱码或打不开就换一份同版本完整 DB 覆盖
删掉旧账号,重新注册 test123 再试
十二、快速对照表
现象 → 优先查
能输账号但角色界面秒弹认证失败 → LoginSrv 没起 / 网关密码不对
进度条走到一半失败 → 角色表字段缺 / 数据库慢 / 超时
日志 Auth Timeout → 清进程重起,超时时间调 15 秒
日志 DBServerConnectFail → DBC 路径或 HeroDB 别名错
日志 ClientVersionMismatch → 登录器不是同引擎配套
显示“单机测试”字样 → 测试模式没关
换账号也一样失败 → 不是账号问题,是认证链路或数据库问题
十三、最后兜底
上面都试过还不行:
关杀软 → 加白名单 → 重启电脑清残留
备份 Mud2\DB 和账号数据
重新解压一份同版本纯净端到 D:\MirServer
只做基础配置:127.0.0.1、默认端口、启动全部进程、用自带配置器生成登录器
先不迁自己改的 Envir 和脚本,原生端能进再逐步搬回
改任何配置前备份:
Mir200\!Setup.txt
Mir200\Envir
Mud2\DB
各网关 ini
登录器配置
认证失败不是玄学,就是“认证服务没起全 + 密码/IP不对 + 数据库读不到角色”这三件事。日志里一个关键词就能定位,别盲改。
单机传奇角色界面服务器认证失败:LoginSrv与数据库全链修复
来源:
作者:
点击:

