传奇服务端的登录网关LoginGate、角色网关SelGate,支持多IP绑定,多用于服务器存在多张网卡、多公网IP、内网外网分离的场景,不同引擎的配置逻辑大体相通,配置不当会出现登录失败、角色选择界面打不开、连接被关闭等问题。
登录网关主要负责玩家账号登录验证,角色网关负责角色列表加载、进入游戏前的角色选择环节,两个网关都需要处理监听IP与服务端通信IP,多IP环境下要区分监听地址、内网通信地址、对外暴露的公网地址,不能全部统一填写同一个IP。
在GOM、GEE这类主流引擎中,网关配置文件内ListenAddr参数代表网关监听的网卡IP,设置为0.0.0.0代表监听服务器全部网卡上的所有IP,服务器拥有多个公网IP的时候,填写0.0.0.0可以让所有IP都能够访问网关端口。如果只需要指定某一个IP对外提供服务,就直接填入对应的网卡IP地址,不要留空,也不要填写127.0.0.1作为对外监听地址,否则外部网络无法连接网关。
ServerAddr参数为网关和M2服务端之间的通信地址,这一项必须填写服务器内网网卡IP,不能填写公网IP。即便服务器有多个公网IP,网关和M2之间走内网通信,使用内网IP能够减少网络延迟,避免跨公网通信造成的连接异常。登录网关、角色网关的ServerAddr统一填写内网IP,端口保持和M2配置文件内的对应端口一致,端口号不能出现冲突。
多IP环境下,LoginSrv目录下的!AddrTable.txt文件是关键配置文件,这个文件用来映射服务器的内网IP与对外公网IP,一行对应一组映射关系,格式为服务器名称、线路标识、内网IP、公网IP、公网端口。服务器存在多个公网IP时,可以添加多条记录,分别对应不同的公网IP,玩家登录器列表内填写哪一组公网IP,就会匹配对应这一行的映射规则。
!ServerAddr.txt文件内全部填写服务器内网IP,用于LoginSrv内部各个模块之间的数据交互,不要填入公网IP。配置完成之后保存文件,需要重启LoginSrv服务才可以生效,只修改文件不重启服务,配置不会加载。
角色网关SelGate的配置逻辑和登录网关保持一致,Config.ini里面ListenAddr设置监听IP,ServerAddr填写内网IP,端口号和M2内的角色网关端口保持匹配。如果服务器有多个公网IP,监听地址写0.0.0.0,允许全部IP接入,内部通信依旧走内网IP,不要把角色网关的ServerAddr填为公网地址,否则会出现加载角色列表失败,点击角色无法进入游戏的故障。
完成网关配置之后,还要处理登录器列表文件,列表文件内填写对外提供服务的公网IP,登录网关端口、角色网关端口要和服务端网关设置的端口完全一致。服务器有多组公网IP,可以在登录器列表内添加多条服务器条目,每一条填写不同的公网IP,玩家可以自行选择对应线路IP进行连接。
防火墙与安全组是多IP环境容易忽略的部分,服务器每一个公网IP对应的安全组,都需要放行登录网关、角色网关对应的TCP端口,只放行其中一个IP,其余IP的端口没有开放,会造成部分IP可以登录,部分IP连接失败。服务器本地防火墙也要放行对应端口,防止系统拦截网关的网络请求。
启动服务的时候建议按照固定顺序,先启动DBServer数据库服务,再启动LoginSrv,接着启动登录网关、角色网关,最后启动M2主程序。启动完成后查看网关日志,日志内出现监听成功的提示,代表网关绑定IP生效。如果日志提示端口占用,需要更换网关端口,或者关闭占用端口的程序。
日常调试多IP问题,可以先使用内网IP本地测试,本地访问能够正常登录、读取角色,说明网关内部通信配置没有问题。再使用公网IP远程测试,如果公网无法连接,优先排查安全组防火墙端口放行情况,其次核对登录器列表IP端口是否和服务端匹配,最后检查!AddrTable.txt的IP映射是否正确。
部分版本的引擎支持双IP模式,在引擎控制器配置向导中开启双IP模式,分别填写内网IP和公网IP,引擎会自动同步修改网关相关配置文件,适合新手快速完成基脆IP设置。但如果需要使用两个以上公网IP,双IP模式无法满足,依旧需要手动修改!AddrTable.txt文件添加多条映射记录。
多IP配置常见故障表现,登录网关可以连接,但是到角色选择界面直接断开,大多是角色网关ServerAddr填写错误,或者!AddrTable.txt映射关系不对。登录提示连接被关闭,多半是监听IP设置错误、端口没有放行,或者网关和M2之间的通信IP不一致。
修改完所有配置文件,必须全部重启对应的网关和服务,只保存文件不重启,修改不会生效。修改配置之前建议备份原始配置文件,出现异常可以直接恢复备份文件,减少排查时间。
登录网关主要负责玩家账号登录验证,角色网关负责角色列表加载、进入游戏前的角色选择环节,两个网关都需要处理监听IP与服务端通信IP,多IP环境下要区分监听地址、内网通信地址、对外暴露的公网地址,不能全部统一填写同一个IP。
在GOM、GEE这类主流引擎中,网关配置文件内ListenAddr参数代表网关监听的网卡IP,设置为0.0.0.0代表监听服务器全部网卡上的所有IP,服务器拥有多个公网IP的时候,填写0.0.0.0可以让所有IP都能够访问网关端口。如果只需要指定某一个IP对外提供服务,就直接填入对应的网卡IP地址,不要留空,也不要填写127.0.0.1作为对外监听地址,否则外部网络无法连接网关。
ServerAddr参数为网关和M2服务端之间的通信地址,这一项必须填写服务器内网网卡IP,不能填写公网IP。即便服务器有多个公网IP,网关和M2之间走内网通信,使用内网IP能够减少网络延迟,避免跨公网通信造成的连接异常。登录网关、角色网关的ServerAddr统一填写内网IP,端口保持和M2配置文件内的对应端口一致,端口号不能出现冲突。
多IP环境下,LoginSrv目录下的!AddrTable.txt文件是关键配置文件,这个文件用来映射服务器的内网IP与对外公网IP,一行对应一组映射关系,格式为服务器名称、线路标识、内网IP、公网IP、公网端口。服务器存在多个公网IP时,可以添加多条记录,分别对应不同的公网IP,玩家登录器列表内填写哪一组公网IP,就会匹配对应这一行的映射规则。
!ServerAddr.txt文件内全部填写服务器内网IP,用于LoginSrv内部各个模块之间的数据交互,不要填入公网IP。配置完成之后保存文件,需要重启LoginSrv服务才可以生效,只修改文件不重启服务,配置不会加载。
角色网关SelGate的配置逻辑和登录网关保持一致,Config.ini里面ListenAddr设置监听IP,ServerAddr填写内网IP,端口号和M2内的角色网关端口保持匹配。如果服务器有多个公网IP,监听地址写0.0.0.0,允许全部IP接入,内部通信依旧走内网IP,不要把角色网关的ServerAddr填为公网地址,否则会出现加载角色列表失败,点击角色无法进入游戏的故障。
完成网关配置之后,还要处理登录器列表文件,列表文件内填写对外提供服务的公网IP,登录网关端口、角色网关端口要和服务端网关设置的端口完全一致。服务器有多组公网IP,可以在登录器列表内添加多条服务器条目,每一条填写不同的公网IP,玩家可以自行选择对应线路IP进行连接。
防火墙与安全组是多IP环境容易忽略的部分,服务器每一个公网IP对应的安全组,都需要放行登录网关、角色网关对应的TCP端口,只放行其中一个IP,其余IP的端口没有开放,会造成部分IP可以登录,部分IP连接失败。服务器本地防火墙也要放行对应端口,防止系统拦截网关的网络请求。
启动服务的时候建议按照固定顺序,先启动DBServer数据库服务,再启动LoginSrv,接着启动登录网关、角色网关,最后启动M2主程序。启动完成后查看网关日志,日志内出现监听成功的提示,代表网关绑定IP生效。如果日志提示端口占用,需要更换网关端口,或者关闭占用端口的程序。
日常调试多IP问题,可以先使用内网IP本地测试,本地访问能够正常登录、读取角色,说明网关内部通信配置没有问题。再使用公网IP远程测试,如果公网无法连接,优先排查安全组防火墙端口放行情况,其次核对登录器列表IP端口是否和服务端匹配,最后检查!AddrTable.txt的IP映射是否正确。
部分版本的引擎支持双IP模式,在引擎控制器配置向导中开启双IP模式,分别填写内网IP和公网IP,引擎会自动同步修改网关相关配置文件,适合新手快速完成基脆IP设置。但如果需要使用两个以上公网IP,双IP模式无法满足,依旧需要手动修改!AddrTable.txt文件添加多条映射记录。
多IP配置常见故障表现,登录网关可以连接,但是到角色选择界面直接断开,大多是角色网关ServerAddr填写错误,或者!AddrTable.txt映射关系不对。登录提示连接被关闭,多半是监听IP设置错误、端口没有放行,或者网关和M2之间的通信IP不一致。
修改完所有配置文件,必须全部重启对应的网关和服务,只保存文件不重启,修改不会生效。修改配置之前建议备份原始配置文件,出现异常可以直接恢复备份文件,减少排查时间。

