一、注册与开门问题的关联性
“不能注册账号”和“不开门”通常同时出现,本质是客户端与服务器通信失败。注册功能依赖 LoginGate(登录网关)和 DBServer(数据库服务),而“开门”流程依赖 RunGate(游戏网关)和 M2Server(主引擎)。若两者均异常,说明服务端核心进程未正常运行或网络配置存在根本性错误。
二、服务端核心进程未启动
这是单机架设中最常见的原因。完整的传奇服务端必须同时运行以下进程(在 GameCenter 控制器或任务管理器中查看):
- LoginSrv / LoginGate:负责账号注册和登录验证。若未启动,客户端点击“注册账号”会无反应或提示失败。
- DBServer:负责将账号写入数据库。若未启动,注册信息无法保存。
- M2Server:主控制引擎。若启动时报错(如数据库连接失败、地图加载失败),会导致“不开门”。
- RunGate / SelGate:负责角色选择后的游戏连接。若未启动,客户端会卡在“正在连接服务器”或黑屏。
解决方法:打开服务端控制器,确保所有进程均显示“已启动”。若有进程缺失,检查 Mir200 目录下的 !Setup.txt 配置是否正确,或重新解压服务端覆盖。
三、IP地址与端口配置错误
服务端与客户端的 IP、端口、服务器名称必须严格一致,否则会导致注册请求被丢弃或无法开门。
1. IP 地址不一致
• 单机架设:所有配置文件中的 IP 必须为 127.0.0.1(本地回环地址)。
- 关键文件:检查 MirServer\Mir200\!Setup.txt、MirServer\LoginSrv\!addrtable.txt、MirServer\LoginSrv\ServerInfo.txt。若这些文件中的 IP 设置为局域网或外网地址,单机客户端将无法连接。
2. 端口被占用或错误
• 端口占用:默认登录端口 7000 或游戏端口 7200 可能被其他程序占用。在命令提示符输入 netstat -ano | findstr "7000" 查看端口状态,若被占用需结束对应进程或修改服务端端口。
- 端口不一致:登录器配置的端口必须与 LoginGate 和 RunGate 中的 GatePort 一致。例如登录器连 7000,但 LoginGate 监听 7100,则无法注册。
3. 服务器名称不匹配
!addrtable.txt 和 !ServerInfo.txt 中的服务器名称(如 传奇世界)必须与登录器列表中的名称完全一致(包括空格和符号)。名称不符会导致客户端识别不到服务器,表现为“服务器关闭”或“不开门”。
四、登录器与引擎不配套
不同引擎(如 HERO、GOM、GEE)必须使用对应的专用登录器。若使用“万能登录器”或混用引擎,会出现以下情况:
- 注册无反应:登录器发送的注册协议与 LoginGate 不匹配,网关直接丢弃数据包。
- 不开门:登录器无法正确连接 RunGate,导致角色无法进入游戏地图。
解决方法:使用服务端自带的登录器配置器重新生成登录器,并将生成的 LoginGate.exe 覆盖到服务端 LoginGate 目录。
五、数据库连接失败
账号数据存储在数据库中(如 HeroDB),若服务端无法连接数据库,注册会失败且 M2 启动时会报错。
- DBC2000 配置错误:单机版通常使用 DBC2000。检查控制面板中 HeroDB 的路径是否指向 MirServer\Mud2\DB,且 !Setup.txt 中的数据库路径配置正确。
• 数据库表损坏:若 Accounts 表结构损坏,会导致无法写入新账号。可尝试重新创建数据库或恢复备份。
六、防火墙与杀毒软件拦截
Windows 防火墙或杀毒软件可能将 LoginGate.exe、M2Server.exe 等进程识别为威胁并拦截其网络通信。
- 解决方法:关闭防火墙,或将服务端整个目录添加到杀毒软件的白名单中。在云服务器上,还需在安全组规则中放行 7000-7200 端口。
七、排查流程总结
1. 查进程:确认 LoginSrv、DBServer、M2Server、RunGate 全部运行。
2. 对 IP:检查所有配置文件中的 IP 是否为 127.0.0.1(单机)。
3. 换登录器:使用服务端原配登录器,覆盖网关文件。
4. 关防火墙:临时关闭防火墙测试。
5. 看日志:查看 M2 启动时的错误提示,针对性修复。

