传奇架设外网IP限制全链路排查:从网关绑定到端口映射的实操解决流程

来源: 作者: 点击:
外网架设时出现“IP限制”提示,或者本地能进、外网连不上,绝大多数情况不是单一原因,而是几个配置点中有一个没对齐。按影响范围从大到小排列,依次是网关绑定IP、引擎IP过滤开关、IP列表文件残留规则、端口映射与防火墙、动态IP适配。每处理完一层就单独测试一次,不要同时改多个地方。

网关绑定IP是外网IP限制最高频的触发点。登录网关(LoginGate)和角色网关的配置文件里有一项IP绑定设置,单机架设时填的是127.0.0.1或内网地址(192.168.x.x),外网架设必须改成服务器的公网IP。登录网关的配置文件通常是LoginGate.ini或Config.ini,角色网关的配置文件常命名为Mirgate.ini或RunGate.ini,两个文件里的绑定IP都要改,并且保持一致。只改登录网关、角色网关仍绑内网地址,表现是登录器能打开、账号能输入,但点登录后提示IP限制或连接被拒绝。改完后重启两个网关进程,网关窗口最小化但不要关闭,网关没起来本身也会间接导致连接被拦截。

引擎自身的IP过滤开关是第二个必须关掉的地方。打开M2Server(引擎控制器),进入选项或参数设置,找到IP过滤板块。如果“启用IP过滤”处于勾选状态,引擎默认只放行已加入允许列表的IP,外网玩家的地址不在列表内就会被当成受限IP拦截。单机和内网测试时这个勾选可能不影响,因为本机地址往往在隐式放行范围内,但外网地址一进来就会被拦。取消勾选,保存后重启引擎,这是外网开放前必须确认的状态。GOM引擎在这一层还有一个“外网设置”或“服务器IP设置”的板块,需要勾选动态IP模式或手动填入公网IP,避免引擎内部仍然以127.0.0.1作为对外地址。

IP列表文件残留规则是容易被忽略的隐性限制。服务端目录下有几个纯文本列表文件需要逐一检查:`!addrtable.txt`是允许连接的IP设定列表,`BlockIPList.txt`是安全过滤IP列表,网关配置文件中还可能有AllowIP和DenyIP条目。外网架设时,!addrtable.txt不能只留127.0.0.1一行。以LoginSrv目录下的!addrtable.txt为例,格式通常要求同时包含内网IP和公网IP,常见写法是按“服务器名称 线路 内网IP 公网IP 公网IP”的顺序填写,端口与网关端口对应。只保留127.0.0.1或只填了内网地址,外网登录器在读取服务器列表或验证网关时就会拿不到有效地址,表现为IP限制或“不开门”。同时把BlockIPList.txt、AllowIP、DenyIP中的手动规则全部清空,这些文件里任何残留的封禁或白名单条目都会直接拦截不在列表中的外网地址。

引擎控制台的封禁记录也要查一次。部分情况下之前的操作或版本自带的规则已经把某些IP写入了拒绝列表,配置文件里看不出来。在M2Server控制台输入查询命令(如`@ShowDenyIPLogon`),如果有输出,用对应的删除命令清掉记录再重启引擎。这一步用命令行验证比翻文件更直接。

端口映射和防火墙决定的是“公网请求能不能到达网关”。外网架设不是把服务端IP改成公网地址就够,公网IP的访问请求必须经过路由器或云安全组转发到运行服务端的内网机器。家用路由器需要做端口映射,把公网侧的登录网关端口(通常7000)、角色网关或游戏网关端口(常见7100、7200)转发到服务端所在内网IP的对应端口上。映射的内部IP填错、映射端口与服务端实际监听端口不一致、或者根本没做映射,外网请求会在路由器这一层被丢弃,客户端侧的表现同样可能是“IP限制”或连接超时。云服务器则要检查安全组的入方向规则,7000、7100、7200这几个对外端口必须放行,系统自带的防火墙(Windows防火墙或Linux的iptables/firewalld)也要单独放行,两层都通才算端口真正开放。

动态IP是家用宽带外网架设的额外变量。公网IP每次重启光猫或路由器后可能变化,服务端配置文件、!addrtable.txt和登录器列表里如果还写着旧IP,外网连接就会被判定为无效地址。处理方式有两条:一是在引擎配置中启用动态IP模式,让引擎启动时自动获取当前公网地址并写入相关配置;二是部署DDNS,用固定域名代替直接写IP,服务端和登录器列表都填域名,IP变化时域名解析自动更新,不需要每次手动改文件。如果只是临时测试,每次重启网络后手动核对并替换公网IP也能用,但长期运行必须走动态IP模式或DDNS,否则IP一变外网就断。

排查顺序上,先确认网关绑定IP已经是公网地址,再关掉引擎IP过滤,然后清空列表文件中的残留规则,接着验证端口映射和防火墙放行,最后处理动态IP。每完成一步,用外网环境(手机移动数据或外部网络)实际连接一次,不要只用本机或同内网设备测试。本机能进只说明服务端进程和数据库正常,不代表公网链路通。外网IP限制的本质是配置链路中有一个环节仍然把外网地址当作不合法来源,按网关、引擎、列表、网络四层逐项对齐,比反复重装服务端有效得多。