想要让局域网之外的玩家连接到你的传奇服务端,核心思路是打通本地网络与公网的连接通道。目前主流的解决方案分为两种:通过路由器进行端口映射,或者使用内网穿透工具。
核心前提:获取公网IP与端口映射
如果你的宽带拥有公网IP(无论是固定IP还是动态IP),通过路由器设置端口映射是最稳定、延迟最低的外网连接方式。
确认公网IP:首先登录你的路由器后台,查看WAN口获取到的IP地址,并与百度等网站显示的本地IP进行比对。如果两者一致,说明你拥有公网IP。
设置端口转发:在路由器的“虚拟服务器”或“端口转发”设置中,将传奇服务端的核心端口映射到你架设服务端的电脑内网IP(如 192.168.x.x)上。必须开放以下三个核心端口:
7000端口:登录网关端口,负责处理账号登录请求。
7100端口:角色网关端口,负责处理角色选择界面的通信。
7200端口:游戏网关端口,负责处理游戏内的实时数据包(如移动、战斗)。
配置服务端IP:打开服务端控制台(如M2Server)的配置向导,在“外网IP地址”处填入你的真实公网IP。如果是动态IP,直接勾选“动态IP模式”即可。
无公网IP的替代方案:内网穿透工具
目前大多数家庭宽带分配的是内网IP(WAN口IP以 10.x、100.x、172.x 或 192.168.x 开头),无法直接使用端口映射。此时需要借助内网穿透工具,将本地端口暴露到公网。
FRP内网穿透:FRP是一款高性能的反向代理应用。你需要一台拥有公网IP的云服务器作为中转节点。在云服务器上配置 frps(服务端),在你架设传奇的本地电脑上配置 frpc(客户端),将本地的7000、7100、7200端口映射到云服务器的对应端口上。
Ngrok隧道服务:Ngrok是另一种便捷的内网穿透工具。注册账号后,在隧道管理界面新建TCP隧道,将本地地址和端口(如 127.0.0.1:7000)映射出去,获取一个公网域名或IP。登录器中填入Ngrok分配的地址即可实现外网访问。
服务端与登录器配置修改
打通网络通道后,必须同步修改服务端的地址表和登录器的列表文件,确保客户端能准确找到服务器。
修改地址表文件:找到服务端目录下的 MirServerMir200Config!addrtable.txt 文件。将其中的IP地址修改为你对外公布的IP(公网IP或内网穿透分配的IP)。格式通常为:服务器名称 你的公网IP 127.0.0.1:7100。
更新登录器列表:登录器读取的列表文件(如 serverlist.txt 或 GameList.txt)中,必须将原有的 127.0.0.1 全部替换为你的公网IP或穿透域名。同时,确保列表中的开区端口与你在服务端配置的网关端口完全一致。
终极排查:防火墙与网关状态
如果网络通道和配置文件都已设置正确,但外网玩家依然无法连接(俗称“不开门”),需要排查本地环境的拦截问题。
关闭防火墙与杀毒软件:Windows自带的防火墙或第三方杀毒软件极易拦截服务端的监听端口。在调试期间,务必暂时关闭Windows防火墙和所有杀毒软件的实时防护,或者为 MirServer 目录下的所有 .exe 程序(如 LoginGate.exe、RunGate.exe)添加防火墙入站规则。
检查网关运行状态:启动服务端后,务必确认任务管理器中 LoginGate.exe(登录网关)、SelChrGate.exe(角色网关)和 RunGate.exe(游戏网关)等程序都在正常运行,没有闪退。如果端口被其他程序占用,网关程序会启动失败,导致外网无法连接。可以使用命令行工具 netstat -ano 查看7000、7100、7200等端口是否已被占用。

