传奇外网好友联机:端口放行与登录器列表配置实操

来源: 作者: 点击:
自己能玩说明服务端进程、数据库和网关的启动顺序都是对的,问题只出在网络暴露和列表文件这两个环节。朋友进不来,九成情况下不是服务端坏了,而是他的客户端拿到的地址仍然是127.0.0.1,或者7000、7100、7200这三个端口没有从外网真正通到你的机器上。

先确认你的网络环境属于哪一种,因为后面的操作完全不同。在服务器电脑上用浏览器搜索“我的IP”,记下显示的公网IP。如果这个IP和你用`ipconfig`查到的内网IP(192.168.x.x或10.x.x.x)一致,说明你是直接公网环境,比较少见;如果不一致,就是典型的NAT环境,需要做端口映射或穿透。另一个更直接的判断方式:登录路由器后台,查看WAN口状态里拿到的是不是公网IP,很多移动宽带和部分联通宽带拿到的是100.64.x.x这类运营商级NAT地址,这种情况下路由器上的端口映射对公网无效,只能走内网穿透。

家用宽带带公网IP的情况,登录路由器后台,地址通常是192.168.1.1或192.168.0.1,背面标签上有默认账号密码。找到“虚拟服务器”“端口转发”或“NAT转发”这一类菜单,不同品牌名称不同,TP-Link在“高级设置”下的“NAT转发”里,小米在“常用设置”下的“端口转发”里。对每个端口单独添加一条规则:外部端口和内部端口保持一致,内部IP填服务端电脑的固定内网IP,协议选TCP+UDP,状态启用。传奇服务端需要放行的核心端口是登录网关7000、角色/游戏网关7100、游戏网关7200,部分引擎的数据库端口是6000而不是7200,以服务端`Mir2.ini`或`LoginGate.ini`里实际写的为准。如果服务端还兼带微端下载,8000和80或8080也要一并映射。

端口映射配好后,验证是否真的通了,不要只靠朋友试。在服务器本机打开命令提示符,执行`netstat -ano | findstr :7000`,确认端口处于LISTENING状态。然后让朋友在他的电脑上执行`telnet 你的公网IP 7000`,如果显示Connected,说明7000这一条链路是通的;如果连不上,先检查路由器映射是否保存并重启生效,再检查Windows Defender防火墙的入站规则是否放行了这些端口。防火墙这一步经常被跳过:控制面板进入Windows Defender防火墙高级设置,新建入站规则,选端口,把7000、7100、7200以TCP方式添加,允许连接,配置文件三项全勾。杀毒软件也可能拦截LoginGate或RunGate进程,测试阶段可以暂时关闭或把服务端整个目录加白。

如果确认没有公网IP,路由器映射这条路走不通,需要内网穿透。最省事的是ZeroTier或EasyTier这类虚拟局域网工具,服务端和朋友端各装客户端,加入同一个网络ID,朋友用你分配到的虚拟IP直连,服务端配置里的IP改成这个虚拟IP,登录器列表也填虚拟IP,不需要碰路由器,也不需要公网IP。延迟比公网直连略高,但十人以内怀旧完全够用。FRP更适合有云服务器的人:云服务器上跑frps,本地跑frpc,把本地的7000、7100、7200映射到云服务器的公网端口,朋友连云服务器IP,流量经中转到达你的机器。花生壳、nat123这类第三方穿透平台也可以用,免费带宽有限,临时联机足够,但不要用它承载长期稳定的多人连接。

网络层通了之后,朋友端仍然需要正确的登录器。单机架设时登录器列表里写的是127.0.0.1,这个地址在朋友电脑上指向的是他自己的机器,必须改掉。打开服务端配套的登录器配置器,主列表地址填你实际可访问的列表文件路径。列表文件通常叫`list.txt`,放在服务端根目录或网站目录下,编码必须选ANSI,UTF-8会导致登录器读不出内容。HERO引擎的常见格式是“服务器名|公网IP|7000”,GOM微端版通常需要同时填开区IP和微端IP,两个IP都必须是朋友能访问到的地址,不能留127.0.0.1。如果列表文件放在自己电脑上,用服务端自带的本地列表服务器小程序挂起来,或者用云服务器上已有的Web服务提供访问,确保朋友能在浏览器里打开这个列表地址,再生成登录器发给他。

服务端侧的IP也要跟着改,不能只改登录器。引擎控制器配置向导里,游戏服务器IP填公网IP或穿透后的虚拟IP;手动核对`DBServer\!AddrTable.txt`和`Mir200\!Setup.txt`里是否还有残留的127.0.0.1,有就替换掉。改完这些文件后,按数据库、登录网关、角色网关、游戏网关、主引擎的顺序重新启动一遍,不要只重启M2Server。

动态公网IP是另一个容易忽略的点。家庭宽带重启路由器后公网IP会变,朋友之前能进、过几天突然进不来,多半就是这个原因。频繁联机可以在路由器里配置DDNS,绑定一个域名,登录器列表和服务器配置里都填域名而不是IP,IP变了域名会自动指向新地址。部分运营商还会封锁7000这类常见游戏端口,如果映射和防火墙都确认没问题但外网telnet始终不通,可以试着把服务端端口整体偏移,比如7000改7005、7100改7105、7200改7205,路由器映射和登录器列表同步修改后再测。

排查时按顺序走,能少绕很多路。先让朋友ping你的公网IP或穿透IP,ping不通是网络层没打通,回到映射、防火墙或穿透工具状态去查。ping通但登录器读不到列表,检查列表地址在朋友浏览器里是否能打开,以及list.txt的编码和格式是否有误。能读到列表但登录后黑屏或卡在加载,检查7100和7200是否也放行了,以及微端端口8000是否映射到位。所有环节都确认之后仍然进不去,再看服务端`!AddrTable.txt`和登录器列表里的IP是否完全一致,一个字段错位就会导致网关拒绝连接。朋友端的客户端补丁版本也要和你这边保持同步,补丁不一致会表现为能登录但地图或装备显示异常,和网络问题区分开处理。