连接不到服务器,分为单机环境和外网环境两种场景,先区分测试环境,单机测试失败不用考虑安全组,外网测试则需要逐层核对网络、端口、网关、配置文件。优先查看登录器提示文字,提示连接超时、服务器关闭、连接失败,对应的排查方向不一样。
先检查所有网关程序是否正常启动,启动顺序不能错乱,依次开启登录服务器、登录网关、角色网关、游戏网关,最后启动M2引擎。打开登录网关窗口,观察日志输出,网关显示连接M2成功,才代表链路底层连通。网关出现闪退、自动关闭、提示端口占用,直接导致外部连接请求无法接收。端口占用大多是之前关闭程序时进程残留,打开任务管理器结束所有Mir相关进程,更换空闲端口之后重新启动整套程序。
核对登录器列表配置,登录器里面填写的服务器名称、地址、端口必须和版本内地址表匹配。单机环境地址填写127.0.0.1,外网环境填写服务器公网IP,冒号后面紧跟登录网关端口,不能添加多余空格。打开版本目录下的!addrtable.txt,里面的服务器名称,和登录器列表的名称必须一字不差,大小写、空格全部保持一致,同时对照!serverinfo.txt,两处文件的服务器名称也要统一。名称不一致,就算IP端口正确,也会出现连接失败。修改地址表文件之后,需要关闭全部网关和M2,重新启动,只重载M2不会读取新配置。
端口放行是外网场景最容易出错的环节,外网测试时,登录网关使用的TCP端口,需要在安全组添加入站放行规则,同时服务器系统防火墙新建入站规则开放对应端口。轻量实例还要额外在控制台防火墙页面放行端口,缺少任意一层放行,数据包无法抵达网关。端口放行之后,可以使用端口检测工具验证端口连通状态,端口不通就继续核对安全组和防火墙。单机环境不需要放行外网端口,防火墙拦截本地回环的情况很少,优先排查端口占用。
网关绑定地址设置,打开登录网关配置,监听地址填写0.0.0.0,代表监听服务器所有网卡,同时支持内网和本地回环访问。如果网关绑定写死内网IP,外网的连接请求无法接入,外网玩家连接提示找不到服务器。单机测试时绑定127.0.0.1也可以正常使用,但是后续切换外网测试,需要修改监听地址再重启网关。
密钥校验问题,登录网关内部的密钥,和登录器配置器里面设置的密钥必须完全相同。密钥不一致,登录器可以尝试发起连接,但是握手阶段直接被拒绝,表现就是一直提示连接服务器。修改密钥之后,保存网关配置,重启网关,重新生成登录器,旧登录器会沿用之前的密钥,无法正常握手。开启pak校验的版本,pak列表、pak密码填写错误,也会出现连接中断,登录界面一闪而过,误认为是连不上服务器。
网络层面的其他限制,服务器带宽跑满、网络链路波动,会出现偶尔能连上,大部分时间连接失败。部分实例自带网络风控,短时间大量连接请求会被拦截,少量账号测试可以排除这个因素。本地客户端网络问题,切换手机流量测试,用来区分是服务器端问题还是本地网络拦截。
登录服务本身异常,登录服务器程序没有正常运行,登录网关就算开启,也无法处理登录请求。观察登录服务器日志,查看是否有报错,登录服务器文件损坏、被隔离,都会直接中断登录流程。把整套版本目录加入信任列表,防止防护程序隔离登录相关程序。
区分两种日志判断方式,登录网关日志完全看不到连接记录,代表数据包根本没有到达服务器,故障点在登录器地址端口、端口放行、网络拦截。网关日志里面可以看到连接尝试,但是握手失败,优先核对服务器名称、密钥、地址表配置。
排查顺序,单机测试先关闭所有程序,清理残留进程,核对地址表和登录器名称,确认网关监听地址为127.0.0.1,核对密钥,生成新登录器测试。外网测试先确认单机可以正常连通,再修改网关监听地址为0.0.0.0,修改addrtable内IP为公网IP,放行端口,重新生成登录器。每改动一项配置,整套重启网关和M2,不要只单独重启M2。
还有一类情况,登录网关和M2之间断开,网关窗口显示未连接M2,此时外部玩家全部连不上服务器,需要检查M2和网关之间的通信端口,以及M2是否正常加载完成。M2启动过程中数据库加载失败、脚本报错卡住,也会拒绝网关接入,查看M2启动日志,确认没有致命报错。
测试的时候不要混用不同环境的登录器,单机测试用的登录器写的是127.0.0.1,直接拿来外网使用,自然无法连接公网服务。调试稳定之后,再把新生成的登录器给到其他客户端使用。
先检查所有网关程序是否正常启动,启动顺序不能错乱,依次开启登录服务器、登录网关、角色网关、游戏网关,最后启动M2引擎。打开登录网关窗口,观察日志输出,网关显示连接M2成功,才代表链路底层连通。网关出现闪退、自动关闭、提示端口占用,直接导致外部连接请求无法接收。端口占用大多是之前关闭程序时进程残留,打开任务管理器结束所有Mir相关进程,更换空闲端口之后重新启动整套程序。
核对登录器列表配置,登录器里面填写的服务器名称、地址、端口必须和版本内地址表匹配。单机环境地址填写127.0.0.1,外网环境填写服务器公网IP,冒号后面紧跟登录网关端口,不能添加多余空格。打开版本目录下的!addrtable.txt,里面的服务器名称,和登录器列表的名称必须一字不差,大小写、空格全部保持一致,同时对照!serverinfo.txt,两处文件的服务器名称也要统一。名称不一致,就算IP端口正确,也会出现连接失败。修改地址表文件之后,需要关闭全部网关和M2,重新启动,只重载M2不会读取新配置。
端口放行是外网场景最容易出错的环节,外网测试时,登录网关使用的TCP端口,需要在安全组添加入站放行规则,同时服务器系统防火墙新建入站规则开放对应端口。轻量实例还要额外在控制台防火墙页面放行端口,缺少任意一层放行,数据包无法抵达网关。端口放行之后,可以使用端口检测工具验证端口连通状态,端口不通就继续核对安全组和防火墙。单机环境不需要放行外网端口,防火墙拦截本地回环的情况很少,优先排查端口占用。
网关绑定地址设置,打开登录网关配置,监听地址填写0.0.0.0,代表监听服务器所有网卡,同时支持内网和本地回环访问。如果网关绑定写死内网IP,外网的连接请求无法接入,外网玩家连接提示找不到服务器。单机测试时绑定127.0.0.1也可以正常使用,但是后续切换外网测试,需要修改监听地址再重启网关。
密钥校验问题,登录网关内部的密钥,和登录器配置器里面设置的密钥必须完全相同。密钥不一致,登录器可以尝试发起连接,但是握手阶段直接被拒绝,表现就是一直提示连接服务器。修改密钥之后,保存网关配置,重启网关,重新生成登录器,旧登录器会沿用之前的密钥,无法正常握手。开启pak校验的版本,pak列表、pak密码填写错误,也会出现连接中断,登录界面一闪而过,误认为是连不上服务器。
网络层面的其他限制,服务器带宽跑满、网络链路波动,会出现偶尔能连上,大部分时间连接失败。部分实例自带网络风控,短时间大量连接请求会被拦截,少量账号测试可以排除这个因素。本地客户端网络问题,切换手机流量测试,用来区分是服务器端问题还是本地网络拦截。
登录服务本身异常,登录服务器程序没有正常运行,登录网关就算开启,也无法处理登录请求。观察登录服务器日志,查看是否有报错,登录服务器文件损坏、被隔离,都会直接中断登录流程。把整套版本目录加入信任列表,防止防护程序隔离登录相关程序。
区分两种日志判断方式,登录网关日志完全看不到连接记录,代表数据包根本没有到达服务器,故障点在登录器地址端口、端口放行、网络拦截。网关日志里面可以看到连接尝试,但是握手失败,优先核对服务器名称、密钥、地址表配置。
排查顺序,单机测试先关闭所有程序,清理残留进程,核对地址表和登录器名称,确认网关监听地址为127.0.0.1,核对密钥,生成新登录器测试。外网测试先确认单机可以正常连通,再修改网关监听地址为0.0.0.0,修改addrtable内IP为公网IP,放行端口,重新生成登录器。每改动一项配置,整套重启网关和M2,不要只单独重启M2。
还有一类情况,登录网关和M2之间断开,网关窗口显示未连接M2,此时外部玩家全部连不上服务器,需要检查M2和网关之间的通信端口,以及M2是否正常加载完成。M2启动过程中数据库加载失败、脚本报错卡住,也会拒绝网关接入,查看M2启动日志,确认没有致命报错。
测试的时候不要混用不同环境的登录器,单机测试用的登录器写的是127.0.0.1,直接拿来外网使用,自然无法连接公网服务。调试稳定之后,再把新生成的登录器给到其他客户端使用。

