外网架设不是把登录器发别人就完事,核心是三件事:服务端监听地址对、网络层能把外网包送到服务端电脑、客户端登录器拿到正确列表。单机 127.0.0.1 能进,不代表外网能进;外网连不上,八成是 IP 写错、端口没放、网关回包地址还是内网。
一、先定拓扑
家宽电脑开服:外网玩家 → 运营商/光猫 → 路由器 NAT → 内网服务器 192.168.x.x → LoginGate/DBServer/M2/RunGate。
云服务器开服:外网玩家 → 云安全组 → Windows 防火墙 → 云主机公网 IP → 各网关。
两种最大的区别:家宽要端口映射或穿透,云主机直接在安全组放行,但云主机本身也要关/配 Windows 防火墙。
二、确认有没有公网 IP
浏览器搜“我的 IP”拿到公网地址 A;登路由器看 WAN 口 IP 是 B。A=B 大概率有公网 IPv4;A≠B 可能被运营商放内网(多层 NAT),做端口映射也没用,只能换企业宽带、申请公网 IP、或用 FRP/Ngrok/花生壳类 TCP 穿透。
动态公网 IP 也行,但宽带重拨就变,登录器里用 DDNS 域名(xxx.oicp.net、*.3322.org)比写死 IP 稳。
三、服务端该填什么 IP
路由器后方的电脑:网关配置里 ListenAddr 可写 0.0.0.0 或内网 IP(如 192.168.1.100),ServerAddr 填内网 IP;M2/登录器对外列表填公网 IP 或 DDNS 域名。别把所有地方都填公网 IP,也别全留 127.0.0.1。
云主机:主机只有一块公网网卡时,网关可绑 0.0.0.0,M2 里外网 IP 填云主机公网 IP;若云主机内网+公网分离,按引擎文档来,GOM/Hero 常见是列表填公网、内部组件填内网或 0.0.0.0。
全局搜配置把 127.0.0.1 替掉时要小心:LoginGate、SelGate/SelChrGate、RunGate、DBServer、LoginSrv、M2 的 Setup.txt/Config.ini/!AddrTable.txt 都要对齐。
四、端口这一层最容易漏
Hero/GOM 常见:
7000 登录网关 LoginGate
7100 角色/选择网关 SelGate
7200 游戏网关 RunGate
5500/5600 M2 管理或中心类端口(视端而定)
8080/8000/888 微端更新、列表页、资源下载
有的端还用 7300、7400、27015 等,以端里 RunGate.ini、LoginGate.ini、!Setup.txt 实际值为准。
家宽路由器做端口转发:外部端口 7000 → 内部 192.168.1.100:7000,7100、7200 同样;协议先 TCP,引擎用 UDP 再补 UDP。运营商封 7000-7200 段就改高位口,比如 37000/37100/37200,服务端和登录器列表必须同步改。
五、云主机安全组+防火墙
云控制台安全组入方向加 TCP 7000、7100、7200、8080(以及你实际改过的端口),来源 0.0.0.0/0 是测试期懒人写法,真长期开建议限来源 IP 段,别把 3389、1433、3306 也裸奔出去。
云主机里 Windows Defender 防火墙高级设置→入站规则→新建端口规则,放行同样端口;测试期直接关防火墙能排错,但别生产环境长期关。
家宽电脑同理:系统防火墙不放行,路由器映射了也进不来。
六、登录器列表才是玩家入口
玩家不连 M2,先读登录器里的 serverlist 地址:
http://域名/list.txt 或 http://公网IP:8080/list.txt
里面大致:
[1]
服务器名=外网测试服
IP=123.45.67.89
端口=7000
动态 IP 就写 DDNS 域名。登录器生成器(Hero 登录器配置器 / GOM 登录器制作)里关掉“单机模式/本地模式”,列表地址填上面 HTTP 地址,生成出来的 exe 给朋友。
列表能刷出来但点进入没反应:通常是 7200 游戏网关没通、RunGate 没起、或登录器端口和 LoginGate 对不上。
七、启动顺序
DBServer/LoginSrv → LoginGate → SelGate → RunGate → M2Server。
M2 报“网关未连接”就是 Gate 没起来或 IP/端口错;M2 说开门成功但玩家选人后黑屏,是 RunGate 通了、场景数据回传有问题,或客户端补丁/Map/Data 不对,不是外网没通。
改完 IP 别热更碰运气,停掉全部服务再按顺序起。
八、没公网 IP 的替代方案
FRP:有公网的主机做 frps,家里电脑跑 frpc,把 7000/7100/7200 转出去,登录器填公网机 IP。
Ngrok/花生壳/nat123:做 TCP 映射,内网地址填 192.168.1.100,内网端口 7000/7100/7200,外网端口用分配到的;登录器填穿透域名和对应外网端口。
别用“UDP 打洞”那种 P2P 工具扛传奇,网关长连接会疯。动态公网 IP 不想买云主机就用 DDNS + 路由器端口映射,最省钱。
九、家宽光猫坑
电信/联通/移动定制光猫常带路由,WAN IP 是 100.64.x.x 就别挣扎了,那是 CGNAT。
光猫和路由器两层 NAT 时,要么光猫改桥接、路由器拨号再做映射;要么光猫里再映射一层到路由器、路由器再映射到电脑(双层映射容易错)。
路由器给服务端电脑绑固定 DHCP(MAC 绑定),不然 192.168.1.100 明天变 101,映射全废。
十、外网能连但卡
不是你没架起来,是家宽上行小(30M/50M 上行撑几十人还行,上百人攻沙就满),或者单 RunGate 扛不住。开多个 RunGate 绑不同端口、登录器列表挂多个网关、M2 里网关数配一致;云主机带宽别选 1M/2M,传奇小包多,人多时上行先满,表现就是放技能迟滞、人物回退。
Windows 电源别开节能,网卡高级设置关 Green Ethernet / 节能以太网,老引擎吃单核,别让系统把进程丢到小核上。
十一、配置文件核对清单
Mir200\!Setup.txt:ServerIP / ExtIP / GameGateIP 之类按端填公网或 0.0.0.0
LoginSrv\!AddrTable.txt:游戏名 Line1 内网IP 外网IP 外网IP:7000
LoginGate\Config.ini:ListenAddr、ServerAddr、ListenPort=7000
SelGate\Config.ini:7100
RunGate\Config.ini:7200,ServerAddr 指向 M2 内网地址
微端 UpdateGate/UpdateServer:有微端才改,IP 和下载端口(8080/8000)都要放
登录器列表:公网IP或域名 + 登录端口,别写 127.0.0.1、别写 192.168.x.x 给外人
十二、排错顺序
1. 服务端电脑本机用 127.0.0.1 登录器能进吗——不能先别碰外网。
2. 同局域网另一台电脑用 192.168.1.100:7000 能进吗——不能查 Gate/M2/防火墙。
3. 公网机 telnet 你的IP 7000 通吗——不通查路由器映射/云安全组/运营商封端口。
4. 列表能刷出服务器但进不去——查 7100/7200 和 RunGate。
5. 能选人黑屏——查地图/补丁/M2 场景线程/同图怪数。
6. 能玩但延时飘——查上行带宽、跨运营商、WiFi、后台下载、杀软扫客户端。
十三、云主机最小可行配置
Windows Server 2016/2019 或 Win10/11 专业版都行,老 Hero 端用 2008R2 虚拟机最稳;装 VC2005-2013 运行库、BDE/HeroDB(Hero 系)、SQL(GOM 部分端要);远程桌面开 3389 但安全组限自己 IP;游戏端口单独放行;M2 日志看“开门成功”再发登录器。
别选轻量服务器却又要装老 Windows 服务端,部分轻量机型系统镜像和网卡驱动折腾死人;ECS/云服务器 Windows 实例更常规。
十四、常见死法
把 LoginGate 填公网、RunGate 填内网、M2 填 127.0.0.1,三角关系错一处就“列表有、进不去”。
路由器映射填了 7000-7200,Windows 防火墙没放,本地能连外网白连。
动态 IP 写死到登录器,宽带重拨后朋友全掉线。
运营商封 80/8080,列表放自己家里 IIS,列表都刷不出来,还以为是传奇挂了。
云主机安全组放了,主机防火墙没放,同样连不上。
登录器是 Hero 的、端是 GOM 的,或者反过来,直接“无法连接服务器”。
十五、登录器分发注意
发给别人的是“登录器 exe + 对应客户端版本说明 + 补丁包”,不是把整个 MirServer 发过去。
客户端路径别中文、别放桌面 OneDrive 同步目录;补丁 Data/Map/Wil/Wix/Effect 跟服务端 Envir 引用的资源对得上才显示。
外网玩家卡,先让他 ping 你公网 IP、telnet IP 7000,比让他重装客户端有用。
十六、动态域名做法
路由器支持 DDNS 就绑花生壳/公云;不支持就在服务端电脑跑 DDNS 客户端,每隔几秒把当前公网 IP 推到域名。
M2 和登录器列表都写域名,家宽重拨后不用挨个改配置文件,只要 DDNS 生效。
注意 DDNS 有 TTL 缓存,IP 刚变那一两分钟外面可能连不上,属正常。
十七、生产环境别踩的线
3389、22、1433、3306、6379 别和游戏端口放一起裸奔;
M2 后台 GM 命令别设弱密码;
登录器别用来路不明的“破解生成器”,很多绑远控;
外网一开就有人扫端口、试账号、刷封包,单 Gate 容易被打挂,正式玩得加多 Gate、限连、防加速、日志轮转;
家宽开给陌生人进,上行被打满还容易被运营商警告,真要长期搞用云主机。
十八、最小外网闭环
家宽有公网 IP:
路由器 MAC 绑定 192.168.1.100 → 映射 7000/7100/7200/8080 → 服务端网关写内网 IP、M2 外网写公网 IP → DDNS 域名挂列表 → 生成外网登录器 → 朋友连域名:7000 → 进游戏。
云主机:
买 Windows 云服 → 安全组放 7000/7100/7200/8080 → 关/配系统防火墙 → 端里外网 IP 填云公网 → 列表 HTTP 放 8080 或单独小网站 → 登录器填公网 IP → 朋友进。
没公网 IP:
FRP 公网机做服务端跳板,或花生壳 TCP 映射,登录器填映射域名和分配端口。
十九、一句话抓本质
传奇外网架设 = 服务端知道“自己外号叫什么(公网IP/域名)” + 网络层把 7000/7100/7200 送到服务端 + 网关回包地址不是 127.0.0.1 + 登录器列表和网关端口一字不差。这四句全对,外网就能进;差一句,就不是“卡”,是根本连不上。
二十、进不去时别乱重装
先看 M2 日志有没有“RunGate Connect / Gate Open / 开门成功”;
再在朋友机器 cmd 里 telnet 你的公网IP 7000,通了说明网络层 OK,问题在网关/M2/登录器;
telnet 不通就回到路由器/云安全组/运营商封端口;
能选角色但黑屏,网络已经通了,去查 Map/Envir/客户端补丁/同图怪数/场景线程。
外网架设最忌“反正重下个端试试”,端一换,IP、端口、列表格式、网关名全变,排错成本反而更高。先把一个纯净端跑通外网,再换版本,才叫会架。

