传奇从单机搬上独立服务器公网联机部署实操手册

来源: 作者: 点击:
一、先想清楚服务器放哪

你单机已经会做,说明 MirServer 目录、DBC/引擎、网关启动、登录器生成这套链路没问题。上服务器只多三件事:

1. 机器环境:云主机(有固定公网IP)最省事;家里电脑当机子要处理公网IP+端口映射。
2. 网络出口:云厂商安全组 / 路由器虚拟服务器,把游戏端口放出去。
3. 配置口径:所有 127.0.0.1 换成服务器公网IP或0.0.0.0,列表走http地址。

云服务器配置参考:4核8G、SSD、Win2016/2019,5M带宽小范围联机够用,人多了再升带宽。

二、服务器系统初始化

买好Windows Server后先干这几件:

1. 远程桌面连进去,关掉自动更新重启打扰。
2. 装 VC++ 运行库合集(2005-2019),缺库会网关闪退。
3. 杀毒把 D:\MirServer 加白名单,引擎驱动常被误删。
4. 防火墙高级设置里先放开端口,别等起完服务再排错。
5. 把单机那套 MirServer 整体打包传上去,解压到 D:\MirServer,路径依旧纯英文无空格。

HERO端重配 DBC2000:
BDE Administrator 建 HeroDB,PATH 指向 D:\MirServer\Mud2\DB,保存后重启机器。GOM/GEE 自带环境可跳过这步。

三、端口规划与放行

默认端口这组必须记住,改一个地方就要全链路改:

7000 登录网关 LoginGate
7100 角色网关 SelGate
7200 游戏网关 RunGate
8000 微端(GOM用,不开微端可关)

云服务器控制台安全组(入方向):
协议 TCP+UDP,端口 7000-7300,来源 0.0.0.0/0。
本机防火墙同样建入站规则放行 7000-7300。

家里宽带方案:
路由器找“端口映射/虚拟服务器”,外部端口=内部端口,内部填本机内网IP(192.168.x.x),协议选 ALL。公网IP用 ipip.net 查,动态IP接花生壳做域名解析。

四、服务端配置从127.0.0.1改成公网

先备份 Mir200、LoginSrv、各网关 ini。

1. Mir200\!Setup.txt
ServerIP=公网IP
GateAddr=0.0.0.0 或内网IP
DBAddr=localhost 不动

2. Mir200\!ServerTable.txt
格式:1 内网IP 7200 公网IP 7200
例:1 192.168.1.10 7200 123.123.123.123 7200
这文件决定“选完角色进地图连哪”,只填内网IP必黑屏。

3. LoginSrv\!addrtable.txt
原:127.0.0.1 127.0.0.1 127.0.0.1:7100
改:内网IP 公网IP 公网IP:7100

4. LoginGate\Config.ini
监听地址 0.0.0.0,对外IP填公网

5. SelGate / RunGate 的 ini
ServerAddr 改公网IP,端口不变

6. DBServer、M2 配置向导里
外网IP填公网,内网IP自动识别,动态IP模式一般不勾(有固定IP时)

注意:网关不能 bind 127.0.0.1,否则外网握手完马上断。

五、启动顺序别乱

GameCenter 或手动起:

1. DBServer
2. LoginSrv
3. LoginGate(看7000监听)
4. SelGate(7100)
5. RunGate(7200)
6. M2Server

起完用 cmd 验证:
netstat -ano | findstr "7000 7100 7200"
看到 0.0.0.0:7000 LISTENING 就行。
外网机 telnet 公网IP 7200 能通说明网络层OK。

六、远程列表与登录器重打

单机那个 list.txt 放本地不行了,外网要做“在线列表”。

列表文件内容(ANSI编码,别带BOM):
我的区名 123.123.123.123 7000

把 list.txt 传到一个能访问的地址,二选一:
• 服务器上装 IIS,绑 http://公网IP/list.txt

• 或用第三方列表空间/对象存储

浏览器直接打开这个地址,必须纯文本、无HTML、无空行。

登录器配置器:
主列表填 http://公网IP/list.txt
微端关掉(没起UpdateServer就别勾)
PAK密码、资源顺序跟服务端补丁一致
引擎版本必须同款,GOM端不能套GEE登录器

生成 login.exe,发给朋友,放在完整客户端根目录。

以后换IP只改线上 list.txt,不用重新发登录器。

七、客户端补丁对齐

服务器上的补丁包(Data/Map/Resource/PAK)和登录器里配的资源要一一对应:
- PAK密码错:进游戏黑屏、装备白名
• 地图缺:能选角色但进图卡加载

• 补丁版本混用:NPC变“?”、界面缺图

本机测试时,先拿一台外地机器或手机热点电脑进,别只用服务器本机测。

八、数据与安全习惯

1. 玩家数据在 Mud2\DB 或 ACC/SQL 里,每天冷备一次 MirServer。
2. 数据库端口(3306/1433)别放公网,只留游戏端口。
3. M2 管理员列表只加你自己的角色名,等级10。
4. 云主机改默认远程桌面端口,装个云锁或安全狗,防简单扫端口。
5. 引擎控制台里关掉允许建多个角色外挂、开简单封包校验。
6. 别挂收费、别发公开广告,个人怀旧联机,商用有侵权风险。

九、常见外网故障对照

能开登录器但区服空白
列表地址错 / 列表编码非ANSI / 浏览器能开但登录器读不到(HTTPS要挂插件)

选区后卡“正在连接”
ServerTable 或 RunGate 还写内网IP,全改公网

能登录黑屏能走路
微端没起,或PAK密码不对

角色进图直接断线
7200没放行UDP、RunGate没监听0.0.0.0

本地能进朋友进不去
安全组没配 / 路由器没映射 / 防火墙拦了

网关闪退
VC库缺、路径有中文、杀软删了dll

改完所有配置必须全停重起,改一半热加载不生效。

十、迁移最小闭环

本机单机端打包 → 传云服务器D盘 → 配DBC/运行库 → 改!Setup和ServerTable为公网IP → 安全组放7000-7300 → 顺序起网关 → 挂http列表 → 同引擎登录器填公网列表 → 异地客户端进游戏。

这套跑通一次,后面加区只要复制 MirServer 改端口、加列表行就行。单机架设的能力平移到服务器上,难点不在引擎,而在IP口径统一和端口放行,哪一层还写127.0.0.1哪一层就不开门。