阿里云服务器可以用来搭建测试用传奇服务,内网测试正常之后,想要外网能够访问,需要从安全组、系统防火墙、引擎配置、网关参数、域名或者IP连接几个部分依次调整,每一处配置出错都会出现内网正常、外网无法连接的情况。
先确认服务器基础网络设置,拿到服务器公网地址,区分内网IP和公网IP,内网测试的时候引擎、网关填写的是内网IP,直接沿用内网IP配置,外网玩家无法连通。打开M2引擎、登录网关、角色网关、游戏网关,找到绑定地址设置项,把原来的内网IP改成0.0.0.0,0.0.0.0代表监听服务器所有网卡,同时支持内网和外网接入,不要直接填写公网IP,部分网关填写公网IP会出现监听失败。网关端口保持和内网测试一致,登录网关、角色网关、游戏网关各自使用独立端口,记住所有端口号,后续安全组和防火墙都要放行这些端口。
阿里云安全组是外网访问最容易卡住的环节,安全组相当于阿里云层面的一层防火墙,就算服务器系统防火墙放行端口,安全组没有配置规则,外网数据包依旧进不来。进入控制台找到实例对应的安全组,添加入方向放行规则,协议选择TCP,依次填写网关使用的端口,还有版本用到的其他端口,规则授权对象设置为0.0.0.0/0,测试阶段可以这样填写,方便外部连接。测试完成之后,根据需求缩小授权范围。添加完规则等待几十秒生效,安全组规则修改不会即时生效,需要短暂等待。
服务器系统自带防火墙也要同步放行端口,Windows系统打开高级防火墙设置,新建入站规则,选择端口,TCP协议,填入网关端口,设置允许连接,配置文件全部勾选,规则名称自定义区分。如果是Linux系统,使用防火墙命令放行对应TCP端口,放行之后可以关闭防火墙临时测试,确认是否为防火墙拦截问题。不建议长期关闭防火墙,只在排查故障的时候临时关闭,测试正常之后再添加端口放行规则。
引擎配置文件里的IP相关参数也要检查,部分版本配置文件里面有写死的内网IP,比如登录地址、网关转发地址,这类硬编码IP不会跟随网关监听地址变化。打开版本Mir200目录下的配置文本,查找所有IP字段,把写死的内网IP全部清理,或者修改为公网IP。登录器配置里面的登录地址,需要填写阿里云的公网IP和登录网关端口,生成新登录器,内网测试用的登录器写的是内网IP,直接发给外网使用自然连不上。
端口映射和NAT相关内容,阿里云轻量应用服务器和普通ECS不一样,轻量应用服务器自带防火墙,除了安全组,还要单独在轻量控制台的防火墙页面放行端口。ECS实例只需要管理安全组和系统防火墙。阿里云服务器不存在家用宽带的端口映射,不需要配置路由器映射,公网IP直接绑定实例,只要监听端口开放,外网就能直接访问。
带宽和网络参数需要留意,测试环境对带宽要求不高,但是带宽跑满会出现连接卡顿、掉线。查看实例带宽上限,多用户同时测试的时候,带宽不足会出现登录超时。另外检查实例的带宽计费模式,避免产生额外账单。部分实例默认的网络模式是专有网络,不需要额外改动,只要安全组配置正确即可。
客户端补丁和登录器也有容易忽略的点,登录器列表里面的地址端口必须和公网IP、登录网关端口完全匹配,冒号分隔IP和端口,不能有多余空格。登录网关、角色网关、游戏网关三个网关都要正常启动,只开M2不开网关,外网无法建立连接。内网测试正常,代表引擎本身、脚本、数据库没有问题,故障点全部集中在网络连通层面。
排查步骤可以按照顺序执行,先在服务器本地使用127.0.0.1加端口测试网关是否正常监听,确认网关监听成功之后,使用外网工具测试端口连通性,端口不通优先检查安全组,其次是系统防火墙。端口通了但是登录器卡在连接服务器,检查登录网关绑定地址是否设置0.0.0.0,登录器地址端口是否填写正确。能够登录账号但是选角色失败,就是角色网关端口没有放行或者角色网关监听异常。进入游戏之后卡加载,多半是游戏网关拦截。
还有一些额外限制,部分实例默认有网络风控,短时间大量外部连接会触发拦截,测试的时候少量账号连接一般不会遇到。不要长时间开放给大量外部访问,仅用于自己测试。每次修改安全组、防火墙、网关配置之后,都要重启网关和M2,部分网关修改监听地址之后不重启不会加载新配置。
做完所有网络配置,生成新登录器,登录列表填写公网IP加登录网关端口,在外部网络环境打开登录器测试,能够正常登录、创建角色、进入地图,就代表外网发布配置完成。如果测试失败,优先核对端口是否全部放行,网关绑定地址是否正确,区分开内网IP和公网IP的使用场景,不要把内网测试的配置直接对外使用。
先确认服务器基础网络设置,拿到服务器公网地址,区分内网IP和公网IP,内网测试的时候引擎、网关填写的是内网IP,直接沿用内网IP配置,外网玩家无法连通。打开M2引擎、登录网关、角色网关、游戏网关,找到绑定地址设置项,把原来的内网IP改成0.0.0.0,0.0.0.0代表监听服务器所有网卡,同时支持内网和外网接入,不要直接填写公网IP,部分网关填写公网IP会出现监听失败。网关端口保持和内网测试一致,登录网关、角色网关、游戏网关各自使用独立端口,记住所有端口号,后续安全组和防火墙都要放行这些端口。
阿里云安全组是外网访问最容易卡住的环节,安全组相当于阿里云层面的一层防火墙,就算服务器系统防火墙放行端口,安全组没有配置规则,外网数据包依旧进不来。进入控制台找到实例对应的安全组,添加入方向放行规则,协议选择TCP,依次填写网关使用的端口,还有版本用到的其他端口,规则授权对象设置为0.0.0.0/0,测试阶段可以这样填写,方便外部连接。测试完成之后,根据需求缩小授权范围。添加完规则等待几十秒生效,安全组规则修改不会即时生效,需要短暂等待。
服务器系统自带防火墙也要同步放行端口,Windows系统打开高级防火墙设置,新建入站规则,选择端口,TCP协议,填入网关端口,设置允许连接,配置文件全部勾选,规则名称自定义区分。如果是Linux系统,使用防火墙命令放行对应TCP端口,放行之后可以关闭防火墙临时测试,确认是否为防火墙拦截问题。不建议长期关闭防火墙,只在排查故障的时候临时关闭,测试正常之后再添加端口放行规则。
引擎配置文件里的IP相关参数也要检查,部分版本配置文件里面有写死的内网IP,比如登录地址、网关转发地址,这类硬编码IP不会跟随网关监听地址变化。打开版本Mir200目录下的配置文本,查找所有IP字段,把写死的内网IP全部清理,或者修改为公网IP。登录器配置里面的登录地址,需要填写阿里云的公网IP和登录网关端口,生成新登录器,内网测试用的登录器写的是内网IP,直接发给外网使用自然连不上。
端口映射和NAT相关内容,阿里云轻量应用服务器和普通ECS不一样,轻量应用服务器自带防火墙,除了安全组,还要单独在轻量控制台的防火墙页面放行端口。ECS实例只需要管理安全组和系统防火墙。阿里云服务器不存在家用宽带的端口映射,不需要配置路由器映射,公网IP直接绑定实例,只要监听端口开放,外网就能直接访问。
带宽和网络参数需要留意,测试环境对带宽要求不高,但是带宽跑满会出现连接卡顿、掉线。查看实例带宽上限,多用户同时测试的时候,带宽不足会出现登录超时。另外检查实例的带宽计费模式,避免产生额外账单。部分实例默认的网络模式是专有网络,不需要额外改动,只要安全组配置正确即可。
客户端补丁和登录器也有容易忽略的点,登录器列表里面的地址端口必须和公网IP、登录网关端口完全匹配,冒号分隔IP和端口,不能有多余空格。登录网关、角色网关、游戏网关三个网关都要正常启动,只开M2不开网关,外网无法建立连接。内网测试正常,代表引擎本身、脚本、数据库没有问题,故障点全部集中在网络连通层面。
排查步骤可以按照顺序执行,先在服务器本地使用127.0.0.1加端口测试网关是否正常监听,确认网关监听成功之后,使用外网工具测试端口连通性,端口不通优先检查安全组,其次是系统防火墙。端口通了但是登录器卡在连接服务器,检查登录网关绑定地址是否设置0.0.0.0,登录器地址端口是否填写正确。能够登录账号但是选角色失败,就是角色网关端口没有放行或者角色网关监听异常。进入游戏之后卡加载,多半是游戏网关拦截。
还有一些额外限制,部分实例默认有网络风控,短时间大量外部连接会触发拦截,测试的时候少量账号连接一般不会遇到。不要长时间开放给大量外部访问,仅用于自己测试。每次修改安全组、防火墙、网关配置之后,都要重启网关和M2,部分网关修改监听地址之后不重启不会加载新配置。
做完所有网络配置,生成新登录器,登录列表填写公网IP加登录网关端口,在外部网络环境打开登录器测试,能够正常登录、创建角色、进入地图,就代表外网发布配置完成。如果测试失败,优先核对端口是否全部放行,网关绑定地址是否正确,区分开内网IP和公网IP的使用场景,不要把内网测试的配置直接对外使用。

