单机传奇网关显示绑定0.0.0.0:7000不出现连接到127.0.0.1:5500完整排查教程

来源: 作者: 点击:
网关打印绑定0.0.0.0:7000,代表网关自身监听端口已经开启,等待客户端接入,而连接到127.0.0.1:5500这条日志,是网关主动去连接主引擎的通讯端口,没有这条输出,说明网关到引擎的内部通讯链路没有建立成功,客户端哪怕连上网关,后续和引擎的数据交互都会中断,出现登录超时、点开始游戏卡住的情况。

先分清网关配置里两组地址含义,网关本地监听地址填0.0.0.0,意思是接收来自本机、内网的连接请求,这个状态本身是正常的,不是故障。网关配置里还有一栏服务器地址、服务器端口,这个就是指向引擎的地址和端口,单机环境服务器地址必须填写127.0.0.1,端口填写引擎对应的5500,很多新手只改了监听端口,服务器地址和端口保持空白或者填错数字,网关启动之后不会发起连接,日志就不会出现连接到127.0.0.1:5500。打开网关程序,点击查看选项,进入基础设置,核对服务器地址、服务器端口,确认端口数字和M2引擎内网关通讯端口一致,修改保存之后关闭网关重新启动。

核对引擎侧的网关通讯端口,打开M2引擎,找到选项,网关设置,查看引擎等待网关接入的端口,确认是5500,部分版本引擎会默认改成别的数值,网关和引擎两边端口数字不一样,网关发起连接直接被拒绝,不会产生连接日志。同时检查引擎的网关验证密码,网关设置页面里面的网关密码,必须和M2里面填写的网关密码完全一致,密码不匹配,握手阶段直接断开,日志不会显示成功连接记录,只会默默重试。

启动顺序错误是新手高频踩坑点,必须先启动M2主引擎,等待引擎完全加载完成,端口监听就绪之后,再启动LoginGate、SelGate、GameGate这类网关。如果先开网关再开引擎,网关启动的时候5500端口没有程序监听,连接请求被拒绝,网关不会持续自动重连,就一直停留在仅监听7000端口的状态,不会输出连接成功日志。一键启动批处理文件很多顺序写反,需要手动分开启动测试,先启动M2,等待M2日志滚动加载完毕,再逐个打开网关。

端口占用问题同样会阻断这个连接,引擎需要占用5500端口,如果别的程序已经占用5500,M2启动失败或者监听异常,网关连接目标端口无响应。可以使用端口查看工具检查5500端口占用情况,如果被占用,要么关闭占用程序,要么在引擎和网关两边同步修改通讯端口,两边改成同一个未被占用的数字。引擎的通讯端口和网关对外给玩家连接的7000端口是两套独立端口,不要混淆。

权限与防护拦截,网关和引擎都需要右键选择管理员身份运行,权限不足的时候,进程可以正常监听对外端口,但是本地回环127.0.0.1之间的数据包被拦截。防护程序会拦截本机进程之间的TCP通讯,放过外部监听端口,所以网关7000绑定正常,但是连不上本机5500。测试的时候临时关闭防护程序,把整套服务端目录加入信任列表,再重启引擎和网关观察日志。

网关文件损坏或者版本不匹配,网关程序和M2引擎内核不配套,协议不兼容,就算IP、端口、密码全部正确,也无法完成握手。网关和引擎必须是同一套服务端打包自带的文件,单独网上下载的网关,哪怕界面一样,内部通讯协议不同,连接动作会直接失败。替换网关文件之前备份原有文件,优先使用版本自带网关,不要随意替换。

检查回环网络是否正常,127.0.0.1是本机回环地址,部分精简系统修改了hosts文件,或者关闭了回环网卡,本机程序之间无法通过127.0.0.1互通。可以打开命令行,测试本机5500端口连通性,确认可以连通之后再继续配置。hosts文件里面不要添加异常条目,不要把127.0.0.1映射到别的地址,会导致本机内部通讯异常。

网关日志重试机制,部分网关不会反复发起连接,第一次连接失败之后就不再重试,一直保持只监听客户端端口的状态。这种情况,修改配置保存之后,必须完全关闭网关程序,结束进程,再重新打开,不要只点重载。重载功能只刷新对外监听参数,不会重新发起和引擎的内部连接。

区分不同网关的作用,LoginGate、SelGate、GameGate每一个网关都有独立的服务器地址、端口、密码,不是只改一处。登录网关负责账号注册,角色网关负责选角色,游戏网关负责进入地图,其中任意一个网关连不上引擎,对应阶段就会断开。如果只有GameGate没有连接日志,故障就集中在游戏网关的配置,登录、角色网关正常的情况下,账号注册、选角色都能正常操作,点击开始游戏之后超时。

全部参数核对完成之后,按顺序操作,关闭所有服务端程序,等待进程全部退出,先启动M2引擎,等待M2加载完成,确认引擎提示网关端口监听就绪,再依次打开各个网关,每打开一个网关,观察网关日志,正常情况下几秒之内就会打印连接到127.0.0.1:5500。如果依旧没有这条日志,优先核对密码,再用端口工具确认引擎的5500端口处于监听状态,顺着日志反馈定位问题。