传奇外网架设:网关关系、IP 配置与端口映射实操指南

来源: 作者: 点击:
传奇客户端从注册到进入游戏,需经过 “账号网关→登录网关→角色网关→游戏网关” 四层核心链路,各网关分工明确且数据互通。外网架设的关键是理清网关依赖关系,精准配置 IP 字段,并通过合理的端口映射或 DMZ 主机实现外网访问,以下是完整技术解析。
一、先搞懂:客户端连接全流程与网关关系
1. 四层网关链路(以 GOM/GEE 引擎为例)
客户端从注册到进游戏的核心流转路径:

底层依赖:所有网关最终都需连接数据库网关(DBServer.exe),确保账号、角色数据读写正常。
数据流向:前序网关仅负责 “数据中转验证”,最终由游戏网关与核心引擎建立持续连接,支撑游戏内操作。
2. 各网关核心功能与关联逻辑
网关名称
核心功能
依赖关系
对外交互角色
账号网关
处理账号注册、密码验证、数据存储
直接连接数据库网关
客户端登录器
登录网关
校验账号状态(是否封禁、在线)
依赖账号网关,关联角色网关
客户端登录器
角色网关
读取角色列表、创建 / 删除角色
依赖登录网关,关联游戏网关
客户端角色选择界面
游戏网关
传输地图、怪物、玩家交互数据
依赖角色网关,连接核心引擎
客户端游戏界面
数据库网关
管理账号 / 角色数据读写
被所有网关依赖
服务端内部模块

二、核心配置:各网关 IP 与端口设置(附文件路径)
所有网关配置文件均位于服务端根目录(默认D:\MirServer),IP 设置需区分 “内网 IP”(服务端本机地址,如 192.168.1.100)和 “外网 IP”(路由器公网地址,如 118.117.190.237)。
1. 账号网关(LoginSrv)—— 注册与账号验证核心
文件路径:D:\MirServer\LoginSrv\Config.ini
关键配置字段:
[Network]
ListenIP=0.0.0.0 // 监听本机所有IP,固定填0.0.0.0
ListenPort=7001 // 对外端口,避开7000(易冲突)
DBAddr=127.0.0.1 // 数据库网关地址,本地架设填127.0.0.1
DBPort=6000 // 数据库端口,与DBC2000配置一致

IP 设置逻辑:仅需保证DBAddr指向数据库网关,ListenIP固定为 0.0.0.0,无需填写外网 IP。
2. 登录网关(LoginGate)—— 登录请求入口
文件路径:D:\MirServer\LoginGate\Config.ini
关键配置字段:
[Server]
ServerName=热血传奇 // 服务器名称,需与登录器一致
ServerAddr=118.117.190.237 // 填写外网IP,供客户端连接
ServerPort=7001 // 需与账号网关ListenPort一致
[Client]
GateAddr=0.0.0.0 // 监听本机所有IP
GatePort=7101 // 对外端口,避开7100

IP 设置逻辑:ServerAddr是核心 —— 客户端登录器首先连接此外网 IP+GatePort(7101),再由登录网关转发至账号网关。
3. 角色网关(SelChrGate)—— 角色数据交互
文件路径:D:\MirServer\SelChrGate\Config.ini
关键配置字段:
[Network]
ListenIP=0.0.0.0
ListenPort=7101 // 需与登录网关GatePort一致
GameSrvAddr=192.168.1.100 // 填写服务端内网IP
GameSrvPort=7201 // 与游戏网关端口对应

IP 设置逻辑:GameSrvAddr指向服务端内网 IP,因角色网关与游戏网关属服务端内部通信,无需暴露外网 IP。
4. 游戏网关(GameGate)—— 进入游戏的最后链路
文件路径:D:\MirServer\GameGate\Config.ini
关键配置字段:
[MainSrv]
ServerAddr=192.168.1.100 // 服务端内网IP
ServerPort=5000 // 核心引擎通信端口(内部端口,无需映射)
[Gate]
ListenIP=0.0.0.0
ListenPort=7201 // 对外端口,避开7200

IP 设置逻辑:ServerAddr连接核心引擎(M2Server.exe),ListenPort接收角色网关的数据,是进入游戏的关键端口。
5. 核心引擎与数据库网关 —— 底层支撑
数据库网关(DBServer):
文件路径:D:\MirServer\DBServer\!addrtable.txt
配置:添加服务端内网 IP(如 192.168.1.100),确保所有网关能连接数据库。
核心引擎(M2Server):
无需手动填外网 IP,通过Mir200\!runaddr.txt自动读取服务端内网 IP,与游戏网关通信。
三、外网访问:DMZ 主机设置(替代端口映射,避冲突)
1. 为什么不推荐直接映射 7000/7100/7200?
这类端口属于常用端口段,可能与小区宽带、网吧的其他服务(如即时通讯、视频流)冲突,导致网络异常。推荐用自定义端口 + DMZ 主机方案,仅开放必要端口。
2. 实操示例:TP-LINK 路由器 DMZ 设置
假设:
服务端内网 IP:192.168.1.100
路由器管理地址:192.168.1.1
外网 IP:118.117.190.237(可通过路由器 WAN 口状态查看)
步骤 1:绑定服务端内网 IP(避免 IP 变动)
登录路由器管理界面,进入 “DHCP 服务器→静态地址分配”;
填写服务端电脑的 MAC 地址(通过ipconfig /all查看),绑定内网 IP 为 192.168.1.100;
保存设置,重启服务端电脑使固定 IP 生效。
步骤 2:启用 DMZ 主机(开放核心端口)
进入 “高级设置→DMZ 主机”,勾选 “启用 DMZ 主机”;
填写绑定的内网 IP:192.168.1.100;
进入 “安全设置→防火墙”,添加端口放行规则:
端口范围
协议
备注
7001
TCP
账号 / 登录网关端口
7101
TCP
角色网关端口
7201
TCP
游戏网关端口
8080
TCP
微端更新端口(可选)

保存设置,重启路由器。
步骤 3:登录器配置(客户端连接关键)
创建list.txt登录器列表文件,填写:
热血传奇外网服|118.117.190.237|7101|8080|0

格式说明:服务器名称|外网IP|登录网关端口|微端端口|备用标识
客户端登录器加载此列表后,即可通过外网 IP:7101 连接服务端。
四、网关启动顺序与连接验证
1. 正确启动顺序(必按此流程)
数据库网关(DBServer.exe)—— 先启动底层数据服务;
账号网关(LoginSrv.exe)—— 再启动账号处理模块;
登录网关(LoginGate.exe)—— 开放客户端登录入口;
角色网关(SelChrGate.exe)—— 加载角色数据服务;
游戏网关(GameGate.exe)—— 准备游戏场景连接;
核心引擎(M2Server.exe)—— 启动游戏主程序。
2. 连接验证步骤
本地验证:用127.0.0.1:7101登录,测试注册、创建角色、进入游戏是否正常;
内网验证:同一局域网内另一台电脑用192.168.1.100:7101登录,排除内网通信问题;
外网验证:用手机热点(非局域网)登录,测试外网访问是否通畅。
五、常见问题:配置后连不上?3 类排查
网关端口冲突:
用netstat -ano | findstr "7101"(Windows 命令)查看端口是否被占用,若占用则修改网关配置中的端口(如改为 7102),同步更新路由器规则与登录器列表。
IP 填写错误:
登录网关的ServerAddr必须填外网 IP,角色 / 游戏网关的GameSrvAddr必须填内网 IP,混淆会导致链路中断。
DMZ 未生效:
检查路由器 WAN 口是否获取公网 IP(非 10.x.x.x、172.16.x.x 等内网保留段),若为内网 IP 需联系运营商开通公网权限。
六、关键提醒:动态 IP 解决方案
家庭宽带重启路由器后外网 IP 会变动,可通过动态 DNS 工具(如花生壳)绑定域名:
路由器中启用 “动态 DNS”,绑定花生壳域名;
将登录器列表中的外网 IP 替换为域名(如mirserver.vicp.net:7101);
服务端网关配置中的ServerAddr仍填外网 IP,无需修改(动态 DNS 会自动同步 IP 变动)。