传奇服务端网关关系详解:从注册到进游戏的 IP 与端口设置

来源: 作者: 点击:
很多人搞不清传奇服务端各网关的作用,也不知道客户端从注册到进游戏要经过哪些步骤。其实整个流程是 “注册程序→登录网关→角色网关→游戏网关” 的递进关系,每个环节对应特定的服务端文件,IP 和端口设置错一个都可能导致连接失败。下面结合实际案例,拆解各网关的核心信息。
一、客户端从注册到进游戏的完整流程(对应服务端程序)
咱们先理清顺序,搞懂每个步骤依赖哪个服务端模块,后续设置才不会乱:
注册账号:依赖「账号数据库程序(如 DBServer.exe)」—— 客户端在注册页面填信息时,数据会先传到这个程序,存入账号数据库(比如 HeroDB);
输入账号密码登录:依赖「登录网关(LoginGate.exe)」—— 客户端点 “登录” 后,先连接这个网关验证账号密码是否正确,验证通过才会跳转到角色选择界面;
选择角色 / 创建角色:依赖「角色网关(SelGate.exe)」—— 角色列表的加载、角色创建 / 删除操作,都由这个网关处理,它会从角色数据库调取数据;
点击 “进入游戏” 加载地图:依赖「游戏网关(RunGate.exe)」—— 最后一步连接这个网关,获取游戏地图、怪物、玩家位置等实时数据,顺利进入游戏世界。
简单说:客户端进游戏的路径是「DBServer(注册)→LoginGate(登录验证)→SelGate(角色操作)→RunGate(进入游戏)」,这四个程序必须按顺序启动,且 IP 设置一致。
二、传奇服务端核心网关拆解(IP 设置 + 端口 + 作用)
下面逐个讲清楚每个网关的文件位置、IP 在哪里改、默认端口是多少,以及和外网的关联,用实际例子说明(以常见的 MirServer 服务端为例):
1. 账号数据库程序(DBServer.exe)
文件目录:MirServer\DBServer(服务端根目录下的 DBServer 文件夹)
核心作用:管理所有账号的注册、密码存储、权限分配(比如是否为管理员账号),是整个登录流程的 “数据基础”;
IP 设置位置:打开 DBServer 文件夹里的「DBServer.ini」,找到「ServerAddr」项,这里填的是服务端所在电脑的 IP(局域网用 192.168.X.X,外网用公网 IP,比如 220.181.X.X);
默认端口:「ServerPort」项默认是 6000,这个端口负责账号数据传输,无需对外映射(仅服务端内部程序调用);
关键提醒:如果这里 IP 填错,客户端注册的账号会存不进数据库,导致 “账号不存在”。
2. 登录网关(LoginGate.exe)
文件目录:MirServer\LoginGate
核心作用:作为客户端登录的 “第一道门”,接收客户端的登录请求,再去 DBServer 验证账号密码,验证通过后返回 “允许登录” 信号;
IP 设置位置:打开 LoginGate 文件夹里的「LoginGate.ini」,两个关键项要改:
「ServerAddr」:填服务端 IP(和 DBServer.ini 的 IP 一致,比如 192.168.3.10),用于和 DBServer 通信;
「ListenAddr」:填服务端 IP(同上),用于接收客户端的连接请求;
默认端口:「ListenPort」项默认是 7000,这个端口是客户端登录时最先连接的端口,必须做外网映射;
例子:如果服务端公网 IP 是 220.181.5.8,就在 LoginGate.ini 里把两个 IP 都改成 220.181.5.8,端口保持 7000,路由器映射 7000 端口到服务端电脑。
3. 角色网关(SelGate.exe)
文件目录:MirServer\SelGate
核心作用:处理角色相关操作,比如加载已创建的角色列表、创建新角色、删除角色,同时把角色数据同步给游戏网关;
IP 设置位置:打开 SelGate 文件夹里的「SelGate.ini」,「ServerAddr」和「ListenAddr」都填服务端 IP(和前面一致);
默认端口:「ListenPort」项默认是 7100,客户端选择角色时会连接这个端口,必须做外网映射;
常见问题:如果这里 IP 没改对,客户端能登录但看不到角色列表,或点 “创建角色” 没反应。
4. 游戏网关(RunGate.exe)
文件目录:MirServer\RunGate
核心作用:客户端进入游戏后的 “实时数据通道”,比如人物移动、打怪掉血、玩家交互等数据,都通过这个网关传输;
IP 设置位置:打开 RunGate 文件夹里的「RunGate.ini」,「ServerAddr」和「ListenAddr」填服务端 IP(统一);
默认端口:「ListenPort」项默认是 7200,客户端进游戏时连接这个端口,必须做外网映射;
例子:假设服务端局域网 IP 是 192.168.3.10,公网 IP 是 220.181.5.8,就在 RunGate.ini 里把 IP 都设为 220.181.5.8,端口 7200,路由器映射 7200 端口。
5. 游戏主控程序(M2Server.exe)
文件目录:MirServer\M2Server(根目录下,不是网关文件夹,但很关键)
核心作用:相当于 “总指挥”,协调所有网关工作(比如告诉 LoginGate 该用哪个数据库,告诉 RunGate 当前地图的怪物分布),但不直接接收客户端连接;
IP 设置位置:打开 M2Server 文件夹里的「!Setup.txt」,找到「ServerIP」项,填服务端 IP(和所有网关一致);
无独立端口:不单独占用对外端口,只和服务端内部网关通信,无需映射。
三、外网设置关键:端口映射与 DMZ 主机(回应你的疑问)
你提到 “映射 7000/7100/7200 可能导致小区上网问题”,这点很对,因为这些端口可能和其他网络服务冲突。下面讲正确的做法:
1. 哪些端口必须映射(对应网关)
只有客户端直接连接的网关端口需要映射,服务端内部调用的端口不用,具体对应:
网关类型
需映射端口
对应程序
作用
登录网关
7000
LoginGate.exe
客户端登录验证
角色网关
7100
SelGate.exe
角色列表加载 / 创建
游戏网关
7200
RunGate.exe
进入游戏后的实时数据传输

2. 为什么不建议只映射这三个端口?怎么用 DMZ 主机?
冲突原因:7000/7100/7200 是很多网络设备的默认端口(比如部分路由器管理端口、监控设备端口),直接映射可能和小区其他设备抢端口,导致别人上不了网;
DMZ 主机方案:在路由器里把服务端电脑设为 “DMZ 主机”(一般在 “高级设置” 里),这样所有外部请求都会直接指向这台电脑,不用单独映射端口,避免端口冲突;
补充:DMZ 后需封哪些端口? 设 DMZ 后,为了减少不必要的外部连接,可在服务端防火墙里只开放 7000/7100/7200 这三个端口,其他端口(比如远程桌面 3389、文件共享 445)全部关闭,既不影响游戏,又避免无关连接。
3. 例子:外网 IP 设置与 DMZ 操作
假设你的情况:服务端在台式机(局域网 IP192.168.3.10,公网 IP220.181.5.8),路由器是 TP-Link:
改服务端 IP:把 DBServer.ini、LoginGate.ini、SelGate.ini、RunGate.ini、!Setup.txt 里的 IP,全部改成公网 IP220.181.5.8;
路由器设 DMZ:登录路由器管理页(192.168.3.1)→“高级功能”→“DMZ 主机”→勾选 “启用”→填入服务端局域网 IP192.168.3.10→保存;
服务端防火墙设置:在台式机防火墙里,只开放 TCP 和 UDP 协议的 7000、7100、7200 端口,其他端口禁止入站;
客户端登录:客户端登录器里填公网 IP220.181.5.8,端口 7000,就能正常注册、登录、进游戏。
四、各网关之间的依赖关系(错了就报错)
最后讲清楚网关之间的 “协作规则”,避免你启动程序时顺序错了导致失败:
必须先启动「DBServer.exe」(账号数据库),再启动「LoginGate.exe」(登录网关要连数据库);
「SelGate.exe」(角色网关)要等 LoginGate 启动后再开,因为角色数据需要登录验证通过后才能调取;
「RunGate.exe」(游戏网关)要最后启动,且必须等 M2Server(主控)启动完成,否则会提示 “连接主控失败”;
关闭顺序相反:先关 RunGate→SelGate→LoginGate→DBServer→M2Server,直接关主控会导致数据丢失。
如果客户端出现 “登录超时”,先检查 LoginGate 是否启动、7000 端口是否映射;出现 “角色加载失败”,检查 SelGate 的 IP 和 7100 端口;出现 “进游戏黑屏”,检查 RunGate 和 7200 端口 —— 按这个逻辑排查,基本能解决 80% 的连接问题。