传奇外网IP限制与不开门分层排查实操

来源: 作者: 点击:
一、先判断卡在哪一层

本机127.0.0.1能进、朋友外网连不上,问题不在服务端脚本,在IP绑定和网络链路。按三层测:

1. 本机能进:服务端本身没崩,DB和M2正常。
2. 同局域网另一台电脑用192.168.x.x能进:网关配置基本对,差外网映射。
3. 外网手机热点连不上:卡在路由器映射、公网IP、防火墙、列表IP这四处。

别一上来重装端,先分层定位。

二、确认有没有真公网IP

浏览器搜“我的IP”,拿到公网IP。再看路由器拨号拿到的IP:

如果路由器WAN口是10.x.x.x、100.x.x.x、172.16.x.x开头,说明是运营商内网NAT,外网根本打不进来,做映射也没用。

解决方式:

打电话让运营商给公网IP(桥接模式)
用路由器自带DDNS或花生壳做动态域名
没公网IP就用FRP内网穿透,把7000/7100/7200反代出去

家庭宽带公网IP会随拨号变,正式开服必须上动态域名,别把IP写死。

三、网关监听地址改对

外网连不进来,常见原因是网关只绑了127.0.0.1,外部包直接被丢弃。

GOM/GEE引擎配置向导里:

登录网关绑定IP:0.0.0.0
角色网关绑定IP:0.0.0.0
游戏网关绑定IP:0.0.0.0

0.0.0.0意思是监听本机所有网卡,外网包才能进来。绑127.0.0.1只认本机,绑内网IP只认局域网。

手动改各网关ini也行:

LoginGate\Config.ini

ServerAddr=0.0.0.0
GateAddr=0.0.0.0
Port=7000

SelGate\Config.ini

ServerAddr=0.0.0.0
GateAddr=0.0.0.0
Port=7100

RunGate\Config.ini

Server1=0.0.0.0
GateAddr=0.0.0.0
Port=7200

改完保存,重启所有网关进程。

四、核心配置文件IP写法

外网端不能只填公网IP,也不能只填内网IP,要内外网配对。

假设:

内网IP:192.168.1.100
公网IP:123.123.123.123

1. Mir200\!Setup.txt

ServerIP=0.0.0.0
GateAddr=0.0.0.0
DBAddr=127.0.0.1
DBPort=6000

ServerIP别写死公网,写0.0.0.0更稳,数据库地址保持本地。

2. Mir200\!ServerTable.txt 或 !ServerInfo.txt

格式:内网IP 公网IP 网关端口 公网IP 网关端口

示例:

192.168.1.100 123.123.123.123 7200 123.123.123.123 7200

这文件决定客户端进游戏后连哪个IP,错填内网IP必不开门。

3. LoginSrv\!addrtable.txt

格式:区名 Title1 内网IP 公网IP 公网IP:7100

示例:

复古测试 Title1 192.168.1.100 123.123.123.123 123.123.123.123:7100

4. LoginGate\ServerList.txt 或列表文件

区名 公网IP 7000 0

示例:

复古测试 123.123.123.123 7000 0

列表文件编码用ANSI,别存UTF-8 BOM。

五、路由器端口映射

进路由器管理页(192.168.1.1或192.168.0.1),找虚拟服务器/端口转发/NAT转发。

映射规则(协议选TCP+UDP或ALL):

外部端口7000 → 内部端口7000 → 192.168.1.100
外部端口7100 → 内部端口7100 → 192.168.1.100
外部端口7200 → 内部端口7200 → 192.168.1.100

用GOM微端再加:

外部端口8000 → 内部端口8000 → 192.168.1.100

保存后重启路由器。嫌麻烦直接开DMZ主机,填192.168.1.100,把所有端口指向这台机器。

验证映射通不通:

手机断WiFi开流量,cmd里:

telnet 123.123.123.123 7000

窗口变空白就是通,秒拒绝就是没映射上。

六、系统防火墙和云安全组

本地防火墙高级设置,入站规则新建:

允许 TCP 7000、7100、7200、8000
允许 UDP 7000、7100、7200、8000
把 DBServer.exe、LoginSrv.exe、LoginGate.exe、SelGate.exe、RunGate.exe、M2Server.exe、登录器exe 全部加放行

云服务器(阿里云/腾讯云/华为云)必须去控制台安全组,入方向手动放行同样端口,不然云平台在网卡前就把包丢了。

杀软把整个MirServer目录加信任,网关exe经常被拦成“无监听”。

七、M2的IP过滤和白名单

M2起来后点菜单:选项 → 参数设置 → 游戏选项/网络设置。

找IP过滤、IP绑定、允许连接IP:

取消“启用IP过滤”
拒绝列表清空
允许列表测试阶段可填 0.0.0.0/0,正式运营再收IP段

改完点保存,重启M2才生效。很多“IP限制”其实是M2默认拒外网,不是网络问题。

网关侧也关掉“仅限本地连接”“内网保护”“异地IP拦截”这类开关,RunGate高级设置里看一眼。

八、登录器列表必须重做

外网玩家用的登录器,列表地址必须指向公网IP或动态域名,不能还是127.0.0.1。

用同引擎配置器重新生成:

列表内容:

复古测试 123.123.123.123 7000 0

用花生壳域名:

复古测试 abc.oicp.net 7000 0

微端地址同步改公网IP或域名,微端端口8000,UpdateGate配置里ServerAddr也改外网。

生成完把登录器发给朋友,别用你本机那个127.0.0.1的登录器。

九、动态IP处理

家庭宽带重拨公网IP就变,列表和addrtable写死IP会突然连不上。

做法:

路由器开DDNS,绑花生壳/金万维域名
引擎配置里ServerAddr填域名(部分引擎支持,不支持就填0.0.0.0)
登录器列表用域名
IP变了域名自动解析,不用重发登录器

IP变动后等DNS刷新,通常几分钟到十分钟恢复。

十、NAT回流问题

自己用公网IP在本机或同局域网测,可能连不上,这叫NAT环回没开。不是配置错,是路由器不让内网机器用公网IP访问内网。

解决:

路由器开NAT Loopback/UPnP
本机测试继续用127.0.0.1
同局域网测试用192.168.x.x
让外网朋友用真公网IP测,才是最准的

十一、快速排查顺序

外网连不上按这个过:

本机127.0.0.1能进吗 → 能,服务端OK
网关绑0.0.0.0了吗 → 没绑改了重启
!ServerTable和!addrtable公网IP对了吗 → 内外网配对
路由器映射7000/7100/7200了吗 → telnet测
防火墙和安全组放行了吗 → 入站规则加端口加exe
M2关IP过滤了吗 → 允许0.0.0.0
登录器列表是公网IP/域名吗 → 重生成
动态IP用DDNS吗 → 别写死IP

十二、常见现象对应

能输账号密码但点开始黑屏/转圈:映射或!ServerTable错,客户端进游戏后连到内网IP。
列表能读但连服务器失败:防火墙拦了,或网关没绑0.0.0.0。
能进门但走路掉线:RunGate端口映射漏,或UDP没开。
本机可以、朋友不行:路由器没映射,或公网IP是内网NAT。
一会儿能连一会断:动态IP变了,没用DDNS。
M2提示IP被限制:M2白名单/黑名单拦了,关IP过滤。

外网架设本质就是“监听放开 + 内外网IP配对 + 端口打通 + 列表同步”四件事,配置改完必须全量重启网关和M2,只改不重启等于没改。