传奇架设完成后登录器提示无法连接服务器排查修复教程

来源: 作者: 点击:
服务端窗口全部启动正常,打开登录器后却提示无法连接服务器、连接超时或服务器列表为空,说明客户端的数据包在发往服务端的途中被拦截、丢弃或送错了地址。这不是电脑配置问题,而是服务端与客户端之间的握手环节出了差错。按以下顺序逐项排查,每一步都有明确的验证方法,做完一步确认一步。

## 一、确认服务端核心进程是否真实存活

服务端控制器显示启动完成,不等于所有进程都在正常运行。打开任务管理器,切换到详细信息标签页,检查以下进程是否存在且CPU占用不为零:DBServer.exe数据库服务进程、LoginSrv.exe登录服务器进程、LoginGate.exe登录网关进程、SelGate.exe角色选择网关进程、M2Server.exe主引擎进程、RunGate.exe游戏网关进程。如果某个进程缺失,说明对应的服务没有启动成功。右键点击该进程对应的启动程序,选择以管理员身份运行,观察是否出现一闪而过的窗口或报错弹窗。窗口闪退通常是配置文件路径错误或端口被占用导致。

部分引擎在任务管理器中显示的进程名与可执行文件名不一致,按CPU占用排序查找即可,占用持续非零的进程就是服务端进程。

## 二、验证端口监听状态

进程存在不代表端口已经绑定成功。打开命令提示符,输入以下命令检查各端口状态:

netstat -ano | findstr :7000

将7000依次替换为7100和7200,重复检查。如果返回结果中显示LISTENING状态且对应一个进程ID,说明端口监听正常。如果返回结果为空,说明端口没有被任何进程绑定,服务虽然启动了但监听失败。

三个端口全部显示LISTENING才算服务端真正就绪。如果某个端口显示TIME_WAIT或CLOSE_WAIT状态,说明上一次关闭服务端时连接没有正常释放,需要等待几分钟让系统自动回收,或者直接重启电脑清理残留的TCP连接。

## 三、排查端口占用冲突

端口被其他程序占用是导致监听失败的常见原因。在netstat命令返回的结果中,如果某个端口的LISTENING状态对应的PID不是服务端进程,说明该端口被其他程序占用了。在任务管理器的详细信息标签页中按PID排序找到对应进程,确认是否为酷狗音乐、迅雷、QQ或其他后台软件。酷狗音乐默认会占用7000端口,这是最常见的冲突来源。

结束该进程后,重新启动服务端。如果端口被系统保留或其他关键程序占用,不建议强制结束。可以在引擎控制器的配置向导中修改端口号,例如将7000改为7001,同时同步修改登录器列表文件中的端口值、LoginGate配置文件中的Port字段、RunGate配置文件中的对应端口,确保所有位置完全一致后重新启动全部服务。

## 四、核对配置文件中的IP地址

单机架设要求所有配置文件中的IP地址统一为127.0.0.1。混用IP地址会导致网关间认证握手失败,登录器无法连接到服务器。

逐一核对以下文件中的IP字段,确保全部为127.0.0.1。打开MirServer\Mir200\!Setup.txt文件,确认ServerAddr和GameGateAddr参数为127.0.0.1。打开MirServer\LoginSrv\!addrtable.txt文件,第一行的服务器名和IP地址必须与GameCenter中填写的完全一致。打开MirServer\LoginGate\Config.ini文件,找到ServerIP字段,确认值为127.0.0.1,不能填写局域网IP或外网IP。打开MirServer\RunGate\MirGate.ini或Gate.ini文件,确保ServerAddr指向127.0.0.1。

配置文件修改完成后,必须彻底关闭全部服务端进程再重新启动。只关闭窗口不结束进程,旧配置可能仍然残留在内存中导致修改不生效。配置文件编码必须为ANSI格式,使用UTF-8编码保存的配置文件在部分引擎中会解析失败。

## 五、检查登录器列表与服务端的一致性

登录器列表文件中的IP和端口必须与服务端实际监听的地址完全一致。打开登录器配置工具,查看服务器列表配置中的端口字段。单机架设的IP统一填写127.0.0.1,端口与服务端配置向导中登录网关的端口保持一致,默认通常为7000。

列表文件的编码格式同样需要注意。用记事本打开列表文件,点击文件菜单中的另存为,将编码格式改为ANSI后保存。使用UTF-8编码保存的列表文件在部分引擎中会读取失败,导致登录器获取不到服务器信息。

列表文件修改后需要重新生成登录器,将新生成的程序复制到客户端根目录覆盖旧文件。直接修改列表文件而不重新生成登录器,修改不会生效。

## 六、替换登录器生成的网关文件

使用登录器配置工具生成登录器时,配置器除了生成登录器程序本身,还会在输出目录中同步生成一个LoginGate.exe文件。这个网关文件必须手动复制到服务端的LoginGate文件夹中,覆盖掉服务端原有的旧文件。很多新手只把登录器程序复制到了客户端根目录,却遗漏了这个网关文件,导致登录器和服务端之间的通信协议不匹配,登录器无法识别服务端状态。

具体操作:打开登录器配置器的输出目录,找到LoginGate.exe文件,选中并复制。进入服务端根目录,打开MirServer\LoginGate文件夹,将原有文件先备份一份,然后把新的LoginGate.exe粘贴进去,弹出覆盖提示时选择替换。覆盖完成后重新启动全部服务。

## 七、关闭防火墙和杀毒软件拦截

Windows Defender防火墙或第三方安全软件可能拦截服务端进程的本地回环通信。临时关闭Windows防火墙和所有第三方安全软件进行测试。关闭后如果能正常连接,说明是安全软件拦截所致。

确认是防火墙拦截后,需要添加例外规则。以管理员权限运行命令提示符,输入以下命令开放核心端口:

netsh advfirewall firewall add rule name="LegendServer" dir=in action=allow protocol=TCP localport=7000-7200

将服务端的DBServer.exe、M2Server.exe、LoginGate.exe和RunGate.exe分别加入杀毒软件的排除列表和白名单。部分杀毒软件会误删M2Server.exe或网关程序,架设前需关闭所有杀毒软件或将整个服务端目录加入信任区。

## 八、清理登录器缓存和客户端残留文件

登录器可能缓存了旧的服务器信息或配置文件,导致读取到错误的数据。关闭登录器程序,进入客户端根目录,删除以下文件和文件夹:Cache文件夹、Config文件夹、LoginCache文件夹、所有后缀为.dat的缓存文件,以及Account.cfg和Login.wtf文件。删除完成后重新打开登录器,手动输入账号密码进行测试。

## 九、调整登录器兼容性和管理员权限

右键点击登录器图标,选择属性,进入兼容性选项卡。勾选以兼容模式运行这个程序,下拉选择Windows 7。同时勾选禁用全屏优化和以管理员身份运行此程序。点击更改高DPI设置,勾选替代高DPI缩放行为,缩放选项选择应用程序。

部分系统DPI缩放设置为125%或更高时,登录器界面按钮的位置会发生偏移,虽然按钮本身没有变灰,但点击区域错位会导致点击无效。将系统DPI缩放调整为100%后测试,或者在兼容性设置中启用DPI替代行为。

## 十、检查网关与引擎的版本匹配和密码一致性

不同引擎的服务端必须搭配对应引擎专属的登录器,不可混用通用登录器或其他引擎的登录器。GOM引擎的服务端必须使用GOM登录器配置器生成的登录器,GEE引擎使用GEE专属登录器。引擎类型与登录器不匹配时,登录器无法正确识别服务端的通信协议。

确认服务端引擎类型的方法:打开服务端根目录,查看M2Server文件夹下的核心程序名称。确认引擎类型后,找到服务端压缩包中自带的登录器配置器,使用这个配置器重新生成登录器。禁止从其他版本的服务端中复制登录器程序。

网关密码不一致同样会导致连接被拒绝。打开服务端LoginGate文件夹,启动LoginGate.exe,在网关设置窗口中查看网关密码或专用登录器设置一栏。打开登录器配置器,在高级设置或网关设置中找到密码栏,填入与服务端完全一致的网关密码。密码修改完成后保存配置,重新编译生成全新登录器。

## 十一、检查路由器端口映射和云安全组规则

使用路由器时需设置端口转发,否则外部无法访问服务。登录路由器管理界面,找到虚拟服务器或端口转发功能。依次添加映射规则:外部端口7000,内部端口7000,内部IP填写服务器所在电脑的局域网IP。重复上述步骤,依次添加7100和7200端口。协议选择ALL(TCP+UDP),不要只选TCP,因为传奇部分数据包走UDP。

如果使用云服务器,除了系统防火墙外,还需在云平台控制台的安全组中添加入站规则。登录云控制台,定位目标服务器实例,查看绑定的安全组入站规则。添加规则允许TCP协议,目标端口为7000、7100、7200等服务端配置端口。源IP范围可临时设为0.0.0.0/0测试,确认连通后再收窄网段。

## 十二、日志定位与最终修复

打开服务端Log目录,查看LoginGate和RunGate的最新日志文件。搜索包含bind failed的错误,表示端口绑定失败,回到端口排查环节确认端口是否被占用。搜索包含connect refused的错误,表示目标服务未启动或地址错误,回到IP配置和启动顺序环节确认。搜索包含auth failed的错误,表示认证握手失败,回到网关文件替换和登录器匹配环节重新操作。日志中记录的PID和时间戳可以帮助定位是哪个进程在哪个环节出了问题。

如果以上步骤全部操作完成后仍然无法连接,将服务端Config文件夹下的所有配置文件和Mir200文件夹下的!Setup.txt全部删除,关闭全部服务端进程,重新打开引擎控制器从头执行一遍配置向导,IP全程填写127.0.0.1,端口保持默认,数据库路径指向原有Mud2\DB目录。配置完成后,用服务端自带的登录器配置器重新生成一套登录器和网关文件,将新生成的LoginGate.exe覆盖到服务端LoginGate文件夹,登录器程序覆盖到客户端根目录,按DBServer、LoginSrv、LoginGate、SelGate、M2Server、RunGate的顺序重新启动全部服务。