没有路由器的环境一般分为两种,一种是服务器直接获取公网地址,网线直连主机,另一种是上层设备做了隔离,无法进行端口映射,先区分自身网络类型再选择对应的方案。
网线直连公网的场景,主机网卡直接对接宽带线路,拨号程序在本机运行,这种环境不需要设置路由映射。先确认本机拿到的地址属于公网地址,打开本机网络详情,查看分配的IP,和网页查询到的对外IP保持一致,即为公网IP。拿到公网IP之后,首要操作是系统防火墙放行所有游戏用到的端口,包含登录网关、角色网关、游戏网关、M2端口。系统自带防火墙放行端口选择TCP协议,单独添加每一个端口,不要直接关闭防火墙,关闭防火墙容易带来额外的连接问题。
端口放行完成之后,打开引擎配套的各个网关配置,把网关里面的监听地址设置为0.0.0.0,不要填写内网地址,监听地址填写0.0.0.0代表监听本机所有网卡的接入请求,外网连接才能正常接入。M2里面的分区地址填写本机获取到的公网IP,端口和网关配置保持对应,保存所有配置,依次启动网关和M2,编辑远程列表,列表内的地址填写公网IP和对应端口,上传列表文件,使用其他网络环境测试登录。
这类直连公网环境有一个需要留意的点,宽带拨号断线重拨之后,公网IP会发生变化,IP变动之后,远程列表里面的地址就失效,玩家无法连接。解决办法是搭配动态域名,在主机上运行域名更新程序,本机IP变化时自动同步域名解析记录,远程列表里面直接填写域名,不再填写固定IP,后续IP变动不需要手动修改列表,只需要等待解析刷新。
如果本机拿到的不是公网IP,就算没有路由器,上层运营商设备做了NAT,这种直连也无法直接被外网访问,这时就需要使用端口转发工具。端口转发工具分为本地客户端加中转节点的模式,在架设游戏的主机上运行转发客户端,设置转发规则,本地地址填写127.0.0.1,后面跟上各个网关端口,转发通道选择TCP,工具会分配一串对外访问地址和端口,把分配好的地址和端口填入远程列表。
使用转发通道的时候,所有网关监听地址依旧设置为0.0.0.0,本地测试先用127.0.0.1进入游戏,确认本地登录没有异常,再使用转发给到的地址外网测试。转发通道存在带宽上限,同时在线人数变多之后,延迟会明显上升,部分通道会有连接超时、丢包的情况,多准备备用通道,避免单一通道中断之后全部玩家无法登录。
调试的时候常见几个问题,本地可以正常进游戏,外网无法连接。先检查网关监听地址是不是填成了127.0.0.1,这个地址只允许本机访问,外网无法接入。其次核对防火墙端口放行状态,TCP端口没有放行,外部请求抵达主机之后直接被拦截。使用转发通道的情况,核对转发规则的本地端口和网关实际端口是否一一对应,一个网关对应一条转发规则,不能多个网关共用同一条转发通道。
还有拨号环境下的断线问题,拨号连接不稳定,每隔一段时间自动重拨,IP变更,已经在线的玩家会直接掉线,动态域名刷新存在几十秒到几分钟不等的延迟,这段时间新玩家无法进入。想要稳定运行,优先选择可以固定公网IP的宽带线路,固定IP不会自动变化,列表地址长期有效,省去频繁更新解析的步骤。
网关连接数设置也要同步调整,外网接入的连接请求数量高于本地测试,在网关配置里面调高最大连接数,连接数上限设置过低,外网玩家同时接入的时候会出现排队、连接失败。测试的时候不能在本机打开网页访问公网IP来判断连通性,部分宽带不支持回环访问,本机用公网IP连自己会失败,需要切换手机流量或者别的宽带线路测试,测试结果才具备参考意义。
所有配置修改完成之后,整套启动顺序不变,先启动数据库,再依次启动各个网关,最后启动M2。每次更换转发通道或者公网IP变动,都要同步修改远程列表里面的地址和端口,修改完成覆盖上传列表,等待缓存刷新之后再通知玩家登录。
网线直连公网的场景,主机网卡直接对接宽带线路,拨号程序在本机运行,这种环境不需要设置路由映射。先确认本机拿到的地址属于公网地址,打开本机网络详情,查看分配的IP,和网页查询到的对外IP保持一致,即为公网IP。拿到公网IP之后,首要操作是系统防火墙放行所有游戏用到的端口,包含登录网关、角色网关、游戏网关、M2端口。系统自带防火墙放行端口选择TCP协议,单独添加每一个端口,不要直接关闭防火墙,关闭防火墙容易带来额外的连接问题。
端口放行完成之后,打开引擎配套的各个网关配置,把网关里面的监听地址设置为0.0.0.0,不要填写内网地址,监听地址填写0.0.0.0代表监听本机所有网卡的接入请求,外网连接才能正常接入。M2里面的分区地址填写本机获取到的公网IP,端口和网关配置保持对应,保存所有配置,依次启动网关和M2,编辑远程列表,列表内的地址填写公网IP和对应端口,上传列表文件,使用其他网络环境测试登录。
这类直连公网环境有一个需要留意的点,宽带拨号断线重拨之后,公网IP会发生变化,IP变动之后,远程列表里面的地址就失效,玩家无法连接。解决办法是搭配动态域名,在主机上运行域名更新程序,本机IP变化时自动同步域名解析记录,远程列表里面直接填写域名,不再填写固定IP,后续IP变动不需要手动修改列表,只需要等待解析刷新。
如果本机拿到的不是公网IP,就算没有路由器,上层运营商设备做了NAT,这种直连也无法直接被外网访问,这时就需要使用端口转发工具。端口转发工具分为本地客户端加中转节点的模式,在架设游戏的主机上运行转发客户端,设置转发规则,本地地址填写127.0.0.1,后面跟上各个网关端口,转发通道选择TCP,工具会分配一串对外访问地址和端口,把分配好的地址和端口填入远程列表。
使用转发通道的时候,所有网关监听地址依旧设置为0.0.0.0,本地测试先用127.0.0.1进入游戏,确认本地登录没有异常,再使用转发给到的地址外网测试。转发通道存在带宽上限,同时在线人数变多之后,延迟会明显上升,部分通道会有连接超时、丢包的情况,多准备备用通道,避免单一通道中断之后全部玩家无法登录。
调试的时候常见几个问题,本地可以正常进游戏,外网无法连接。先检查网关监听地址是不是填成了127.0.0.1,这个地址只允许本机访问,外网无法接入。其次核对防火墙端口放行状态,TCP端口没有放行,外部请求抵达主机之后直接被拦截。使用转发通道的情况,核对转发规则的本地端口和网关实际端口是否一一对应,一个网关对应一条转发规则,不能多个网关共用同一条转发通道。
还有拨号环境下的断线问题,拨号连接不稳定,每隔一段时间自动重拨,IP变更,已经在线的玩家会直接掉线,动态域名刷新存在几十秒到几分钟不等的延迟,这段时间新玩家无法进入。想要稳定运行,优先选择可以固定公网IP的宽带线路,固定IP不会自动变化,列表地址长期有效,省去频繁更新解析的步骤。
网关连接数设置也要同步调整,外网接入的连接请求数量高于本地测试,在网关配置里面调高最大连接数,连接数上限设置过低,外网玩家同时接入的时候会出现排队、连接失败。测试的时候不能在本机打开网页访问公网IP来判断连通性,部分宽带不支持回环访问,本机用公网IP连自己会失败,需要切换手机流量或者别的宽带线路测试,测试结果才具备参考意义。
所有配置修改完成之后,整套启动顺序不变,先启动数据库,再依次启动各个网关,最后启动M2。每次更换转发通道或者公网IP变动,都要同步修改远程列表里面的地址和端口,修改完成覆盖上传列表,等待缓存刷新之后再通知玩家登录。

