架设传奇服务端后,登录器启动时服务器列表为空,通常不是客户端问题,而是服务端未正确广播服务器信息或登录网关未正常运行。需从网络配置、服务进程状态及配置文件三方面入手解决。
首先确认LoginGate是否成功启动。LoginGate是负责向登录器提供服务器列表的核心组件,位于服务端目录下的LoginGate文件夹。双击LoginGate.exe后,应弹出黑色控制台窗口并显示“LoginGate started”或类似提示。若窗口闪退,说明配置错误或缺少依赖。检查LoginGate.ini(通常在Config目录)中的IP地址是否为本机内网IP(如192.168.x.x)或127.0.0.1,外网架设则需填写公网IP。端口默认为5600,确保未被占用。
第二步检查LoginSrv.ini配置。该文件位于Config目录,关键参数包括:
[Server]
ServerIndex=0
ServerName=传奇服务器
ServerIP=127.0.0.1(或实际IP)
ServerPort=5555
Status=1
其中Status必须为1,表示服务器在线;ServerPort需与M2Server监听的端口一致(通常为5555)。若ServerIP写成0.0.0.0或留空,登录器无法获取有效地址,列表将为空。
第三,验证M2Server是否已启动并绑定端口。M2Server启动后需成功加载地图、数据库,并监听指定端口。通过命令行执行 netstat -ano | findstr :5555,若无输出,说明M2未运行或端口未监听。此时应先解决M2启动失败问题(如配置错误、数据库缺失等),否则LoginGate无法获取有效服务器状态。
第四,确认登录器指向正确的LoginSrv地址。部分登录器内置IP写死在程序中,需用工具(如Resource Hacker)修改其资源段中的IP,或使用配套的Login.exe。若使用自定义登录器,检查其配置文件(如Login.cfg、config.ini)中的LoginServerIP是否与LoginGate所在IP一致,端口是否为5600。
第五,排查防火墙或杀毒软件拦截。Windows Defender或第三方安全软件可能阻止LoginGate对外通信,导致登录器收不到广播数据。临时关闭防火墙,或将LoginGate.exe、M2Server.exe加入允许列表,测试是否恢复列表显示。
第六,检查DBC2000数据库中的Line表(若使用Hero引擎)。部分版本要求Line表中存在有效记录,且State字段为1。若该表为空或State=0,LoginSrv会认为无可用线路,不返回服务器信息。可通过Access打开HeroDB.mdb,手动添加一行:
Id: 0
Name: 电信线路
IP: 127.0.0.1
Port: 5555
State: 1
第七,避免多服务端冲突。若本机同时运行多个传奇服务端,且LoginGate端口重复(如都用5600),会导致通信混乱。为每个服务端分配独立LoginGate端口(如5601、5602),并在登录器中分别配置对应地址。
最后,测试局域网访问。在另一台电脑上使用相同登录器,输入服务端主机的内网IP,若仍无列表,说明服务端未正确广播;若能显示,则原因为本地回环地址配置不当,应统一使用127.0.0.1或实际内网IP,避免混用localhost或计算机名。
综上,服务器列表为空的核心在于LoginGate未正常运行、LoginSrv配置缺失或网络通信受阻。通过逐项验证服务状态、IP端口一致性及数据库线路记录,可快速恢复登录器中的服务器显示。

