传奇内网正常外网映射后本机选角色进入黑屏排查教程

来源: 作者: 点击:
内网环境下登录、创建角色、进图全部正常,改成外网相关参数之后,其他设备可以正常进入,只有本机在角色界面点击开始游戏出现黑屏,这类情况大多是回环访问、网关监听、客户端地址识别和路由策略引发,按顺序逐项核对。

首先理清访问逻辑,外部设备连接时,数据包走外网地址转发到本机服务端,服务端回包给到外部设备。本机使用外网地址登录的时候,部分路由器不支持回环转发,本机发出的外网请求无法正常从内网链路回到本机服务端,连接通道出现半截断开,登录网关完成账号验证,角色列表可以正常拉取,到加载地图阶段连接中断,直接黑屏。登录和读取角色列表使用登录网关,进入地图之后切换游戏网关,很多故障只会在进入地图之后触发,前面步骤看不出异常。

先检查网关监听地址设置,很多人配置的时候直接把网关监听写为0.0.0.0,这个写法可以接收所有来源连接,外网设备访问不会有问题,但部分引擎搭配网关在本机走外网地址接入时会出现链路异常。如果网关里面填写的是单独的内网网卡地址,外网连接会失败,填写外网地址,内网本机访问又会异常。优先把登录网关、游戏网关监听地址统一设置为0.0.0.0,保证双端接入兼容,修改完成保存配置,关闭网关和引擎,重新启动生效。

接着核对引擎内分区配置,分区地址分为外网访问地址和内网地址两个填写项,很多配置只填了外网地址,没有单独设置内网地址。GOM等引擎支持分区双地址配置,外部玩家读取外网地址,本机登录的时候自动识别内网地址走内网链路,避开路由器回环缺陷。没有分开配置的情况下,本机登录器拿到的分区地址同样是外网地址,就会触发回环不通的问题。新增一条内网分区记录,内网分区端口可以使用相同端口,地址填写本机内网ip,本机登录器选择内网分区进入,外网好友选择外网分区进入,就可以绕开该故障。

然后查看客户端连接变化,角色界面点击开始游戏之后,客户端会主动去连接游戏网关端口,登录网关只负责账号和角色列表。可以打开端口监测工具,在点击开始游戏的瞬间查看端口连接状态,观察是否能够建立游戏网关连接。连接直接断开,就是链路不通;连接建立之后长时间没有数据返回,就是数据包被拦截。防火墙规则也要分开核对,放行的端口规则对内网和外网要同时生效,只添加外网放行规则,本机回环数据包会被拦截。

路由器的回环支持情况差异很大,家用多数普通路由器不支持nat回环,也就是内网设备不能用自身外网ip访问内网里映射的服务。这类硬件本身不具备该功能,单纯修改服务端参数无法解决。这种情况有两种处理方式,第一种本机登录器不选择外网那条分区,单独使用内网ip分区登录;第二种开启路由器的回环或者hairpin nat选项,部分路由在高级设置、nat设置里面自带开关,打开之后才能支持本机外网ip访问本地映射服务。

再检查登录器列表里面分区端口,登录网关端口和游戏网关端口不要混淆,列表里面填写的是登录网关端口,角色确认进入地图后,引擎会下发游戏网关地址和端口给客户端,如果引擎下发的游戏网关地址是外网ip,本机不支持回环,游戏网关连接失败,地图资源无法传输,界面停留在黑屏。可以打开登录器日志,日志里能够看到登录网关连接成功,游戏网关连接超时或者重置的记录,这个记录可以直接确认故障位置。

还有一个容易忽略的点,服务端配置里面的外网地址填写错误,或者使用了动态地址,地址发生变动,好友那边还可以连接是缓存生效,本机加载阶段获取新地址失败。动态地址每次拨号会变化,每次变更之后需要同步更新登录列表,没有更新的情况下,进入地图阶段获取到失效地址直接黑屏。

素材和补丁问题可以快速排除,内网登录正常说明补丁、地图资源、wil素材本身没有损坏,不用反复替换客户端文件。不要优先去调整爆率、脚本、怪物刷新这类内容,这类配置不会只针对本机外网登录触发黑屏,外部玩家也会同步出现异常。

测试的时候分两种登录方式对比,本机登录器填写内网分区,能够正常进图,外网分区本机黑屏,好友外网分区正常,基本确定就是nat回环限制。本机两种分区都黑屏,再回头检查网关监听、端口放行、引擎下发网关地址配置。

不要长期依赖外网地址在本机登录游戏,稳定的做法就是维护两条分区,一条对外给其他人使用,一条内网专供本机调试,互不干扰,同时规避路由器不支持回环带来的黑屏问题。每次改动网关监听、分区地址之后,必须完整关闭引擎和网关再重启,配置修改热加载不会生效,依旧保留旧的连接规则,问题持续存在。