传奇单机同机双服独立部署教程HeroGOMBlue双区端口数据库网关登录器配置

来源: 作者: 点击:
同机跑两套传奇服务端,核心只做三件事:目录分开、数据库分开、所有监听端口分开。目录不分开会互相覆盖脚本和地图,数据库不分开会串角色串物品,端口不分开会报地址已用或进错区。下面按Hero/DBC类、GOM/GEE类、Blue类分别写,单机用127.0.0.1,不改公网。

一、整体目录与数据库规划

准备两个独立根目录,例如D:\MirServerA、D:\MirServerB,或者D:\MirServer1、D:\MirServer2。不要在一个目录里复制M2进程硬跑,容易读同一个Envir、同一个Mud2DB、同一个!Setup,改一个服影响另一个服。每个目录都放完整服务端:DBServer、LoginSrv、LoginGate、SelGate、RunGate、M2Server、Mir200、Mud2、Envir、Map、Data补丁。

Hero引擎用DBC2000时,控制面板BDE Administrator建两个别名,A服HeroDBA指向D:\MirServerA\Mud2\DB,B服HeroDBB指向D:\MirServerB\Mud2\DB;别两个服务端共用HeroDB,否则角色、物品、行会会混库。DBC建完点Apply,确认Type为STANDARD、PATH不含中文。若用SQL类服务端,A服建库MirA、B服建库MirB,DBServer的Config.ini分别写不同库名、账号、端口;同机两个SQL实例要改默认1433为1433/1434之类,避免SA连接冲突。

GOM/GEE部分版本用SQL,部分GEE用SQLite或MySQL。两套都走SQL就分库分账号;都走SQLite就分文件目录;都走MySQL就建不同库并分配不同连接端口。不要图省事让两个M2读同一个账号库和角色库。

二、Hero/传统Mir2双服端口改法

A服保持常用默认,B服整体偏移。配置向导或手动改都行,手动更稳。需要改的端口清单:

登录服务LoginSrv相关地址与端口,常见7000体系;若A服7000,B服可7005或7010。
角色网关SelGate,常见7100、7101;B服改7110、7111或7105、7106。
游戏网关RunGate,常见7200、7300、7400三开;B服改7210、7310、7410或7205、7305、7405。
DBServer通信,相关教程示例含6000、5100等;B服按向导整体偏移,如6010、5110。
M2内部通信/列表服务,相关教程示例含5500、5600、10000、5000、4900;B服分别改5505、5605、10005、5005、4905一类。
微端UpdateGate若启用,默认常8000;B服改8005或8010。

具体文件位置:LoginSrv下!addrtable.txt或!ServerAddr.txt写内网外网IP和角色网关端口;DBServer下!serverinfo.txt写数据库IP、游戏网关IP和端口;Mir200下!Setup.txt写ServerName、IPAddress、ServerPort、DBPort等;RunGate各目录Config.ini写网关监听端口;SelGate.ini写角色网关端口;LoginGate.ini写登录端口。改完用控制器配置向导保存一次,再手动打开上述文件核对,向导有时不会改RunGate第三组端口。

双服都走独立LoginSrv时,A/B各自起LoginSrv和LoginGate;若做单登录器多区,可只起一个LoginSrv,在!addrtable.txt加两个Title分区,分别指向A角色网关端口和B角色网关端口,例如A区127.0.0.1 7100、B区127.0.0.1 7110,后面再挂各自RunGate。新手建议两套各自全模块独立,排错简单。

三、GOM/GEE双服端口改法

GOM常见默认:LoginGate 7000,SelGate 7100,RunGate 7200,微端8000;具体以端内配置向导和各ini为准。GEE新控制器有的支持“所有端口前加数字”批量改,开第二服统一加1或加5最省事;不支持就手动改。

A服:DBServer/Config.ini数据库地址、库名、账号密码;M2参数设置里ServerName、游戏端口;LoginGate.ini监听IP和7000;SelGate.ini 7100;RunGate/Config.ini 7200;微端UpdateGate/UpdateServer 8000;PAK密码和资源目录各自独立。
B服:LoginGate改7005或7010;SelGate改7105;RunGate改7205,多组再7305、7405;微端改8005;M2游戏端口与登录器列表一致;DBServer换独立库或独立SQL端口。改完同步改登录器列表,不改动登录器只改服务端会卡登录或进错服。

启动顺序都按:先DBServer黑窗显示数据库连接成功、各表加载完;再LoginSrv;再LoginGate、SelGate、RunGate;再M2Server加载MapInfo、MonGen、QuestDiary、Market_Def、StdItems;用微端再起UpdateGate和UpdateServer。哪个模块没起,对应环节就断:DB起不来M2报数据库失败,LoginGate没起登录器不连,RunGate没起能选角色但进不了游戏。

四、Blue引擎双区配置

Blue双区用独立目录最稳。A服LoginGate默认可7000,微端7700/8000按端内实际;B服LoginGate改7001或7010,微端改7701/8001。DBServer独立起,A/B各读各的数据库文件,不要把A库复制进B库后还保留相同账号角色ID,避免登录器切换区后串号。

登录器用Blue自带配置器重新生成,不用A服登录器硬改ini代替B服。单登录器多区就在客户端ServerList或配置器列表写两行:一区名称127.0.0.1 7000 微端端口;二区名称 127.0.0.1 7001
微端端口。列表名称、服务端ServerName、网关端口三者一致;只改一端会导致列表有区但点开始没反应。

五、同引擎单M2双区与双独立服的选择

如果只是想一个复古、一个合击,或者一个测试改爆率、一个稳定玩,用双独立目录最合适,互不干扰,重装一个服不影响另一个服。若用Hero单控制器“一机多区”,要在!Setup分1/2/3区、!Servertable写各RunGate、!ServerTable写各分区、LoginSrv加分区地址;这种适合同版本分线,不适合两个完全不同素材版本,因为脚本、Map、MonItems仍要分目录管理,不如直接两套服务端。

六、批处理与启动管理

双服可写两个bat,分别进各自目录启动。示例思路:

A服start A:先start D:\MirServerA\DBServer\DBServer.exe,再LoginSrv、LoginGate、SelGate、RunGate各目录,再M2Server.exe,最后GameCenter可选。
B服start B:同样路径换成D:\MirServerB,端口全改偏移值。

手动首次排错不要一键控制器,逐个开窗口看红字。看到socket error 10048就是端口被占;netstat -ano查7000、7100、7200、8000等对应PID,任务管理器结束占口程序,或者继续改端口。迅雷、酷狗、IIS、上次没关干净的M2和网关最常占传奇默认口。

七、登录器列表配置

单机双服用本地列表最省事。A服列表:区名A127.0.0.1 7000 微端端口;B服列表:区名B 127.0.0.1 7005或7010
微端端口。Hero类若走LoginSrv列表服务,列表服务端口A/B分开;GOM类登录器配置器填游戏IP、登录端口、微端地址、PAK密码,生成两个登录器或两个区同列表。列表文件编码用ANSI,别用带BOM的UTF8,否则老登录器读空。

双服若共用一个客户端,补丁要分清楚。A服改了新衣服新武器WIL/PAK,B服用原版,就两个客户端目录最稳;硬放一个客户端Data,会出现A资源覆盖B资源、进B服装备花屏透明。GOM微端双服要各自UpdateServer对应各自PAK密码和资源目录,微端端口不同,客户端列表微端地址分别填。

八、资源与性能隔离

同机双服都跑M2、DB、网关,内存和CPU要留余量。8G内存跑两个轻量1.76还行,16G以上更稳;每个M2在参数设置里限制在线人数、怪物刷新峰值、脚本定时任务,不要两个服同时做全服刷怪、同时跑大量定时器。日志目录分开,A服Mir200/Log、B服独立Log,排错时按区查ERROR。Map和Envir绝对分目录,A服改MonGen不会影响B服;若误设共享Envir,改爆率、改NPC会串服。

九、常见故障处理

进登录器无列表:检查LoginSrv或列表服务是否起、列表IP端口是否与服务端一致、防火墙是否拦本地回环;单机127.0.0.1若还不行,临时关Windows防火墙测试,再按需放行。
点开始进错区:端口冲突或LoginSrv!addrtable分区写错,核对A/B角色网关、RunGate、M2游戏端口,列表不要两个区写同一个7200。
M2报数据库失败:DBC别名路径错、SQL账号密码错、库未建表、两个服共用同一HeroDB都会报;重建独立库,确认Mud2/DB文件完整。
网关闪退:端口被占、VC运行库缺失、ini格式有中文引号;用notepad++改ini,保存为ANSI。
装备透明/黑屏:双服补丁混用,客户端Data/WIL/PAK应按服分开;GOM检查PAK密码和微端端口,Blue检查授权dat和Data资源。
双服一个卡一个不卡:看任务管理器哪个M2吃CPU,限脚本循环、限怪物数量、把定时全服脚本错峰执行。

十、备份与回滚

双服建立前先对各根目录做整包备份,再建DBC/SQL库。每次改端口、改Envir、换补丁后,备份!Setup、LoginSrv地址表、DBServer配置、RunGate/SelGate/LoginGate ini、Mir200/Envir、Mud2/DB。回滚时整目录覆盖比单改文件安全,尤其双服并行时,只改一处可能忘记同步另一服列表。版本升级先升测试服再升稳定服,不两台同时升。

按上面分目录、分库、分端口三步走,Hero类用独立HeroDB和配置向导偏移端口,GOM/GEE改DBServer与各网关并分库分微端,Blue改LoginGate微端并用配套配置器出双区列表,同机双服能长期并行。排错优先看端口占用和数据库别名,其次看列表IP端口,最后看补丁资源是否串目录。