Win11架设传奇:权限兼容与数据库配置实操

来源: 作者: 点击:
Win11下架设传奇,卡住多数人的不是服务端本身,而是系统默认的安全策略与旧版组件的兼容断层。老引擎和DBC2000这套组合在Win7时代跑得通,到了Win11上会被UAC权限、内存完整性、32位ODBC重定向和Defender实时防护同时拦截,表现就是引擎闪退、数据库连不上、端口静默拒绝。处理顺序应该从系统层开始,再进入服务端。

系统预处理的第一步是关掉两个会直接杀死服务端进程的功能。核心隔离里的内存完整性默认开启,会把DBServer.exe这类未签名旧程序判定为异常并阻断,在设置中进入隐私和安全性、Windows安全中心、设备安全性、内核隔离详情,关闭内存完整性后重启。快速启动同样需要关闭,它会让上次关机时的进程残留占住端口,下次启动时M2Server报端口占用,控制面板电源选项里取消勾选启用快速启动即可。Defender的实时防护需要把整个服务端目录加入排除项,否则LoginSrv.exe和M2Server.exe会被当作可疑文件隔离,排查时可以暂时关闭实时防护做测试。

UAC的处理不止是右键管理员运行。Win11的权限管控比Win10严格得多,右键管理员运行只能解决单次启动,数据库写入仍然可能被拦。彻底的做法是对MirServer文件夹做安全属性层面的开放:右键属性、安全、编辑,添加Everyone账户并勾选完全控制,让DBServer进程获得对DB目录的稳定写入权。服务端路径本身不能含中文,`D:\MirServer`这样的纯英文短路径最稳妥,中文目录会导致老旧引擎无法解析非ASCII路径而闪退。

DBC2000的配置需要区分安装和运行两个阶段。安装包必须选带SP4补丁的版本,原版在Win11上可能装到一半无声退出。对setup.exe右键属性、兼容性,勾选以兼容模式运行并选Windows XP (Service Pack 3),同时勾选以管理员身份运行,再双击安装。安装完成后找到dbcommander.exe或BDE Administrator的启动文件,重复同样的兼容性和管理员设置,否则打开BDE Administrator时可能无响应。建别名时在Databases上右键New、STANDARD,名称填HeroDB,PATH指向`D:\MirServer\Mud2\DB`,改完必须右键别名执行Apply,不点Apply等于没保存。

Win11上最容易漏掉的是ODBC的位数问题。系统默认打开的是64位ODBC管理器,而GOM引擎需要的是32位驱动,正确入口是直接运行`C:\Windows\SysWOW64\odbcad32.exe`。在这个32位管理器里建DSN时,高级选项中将字符集强制设为936,否则M2Server会出现“无法读取人物数据”的报错,根源是字符集不匹配导致中文乱码。这一步很多教程跳过不写,但Win11 64位环境下不经过SysWOW64入口配置,别名建了引擎也认不到。

引擎启动闪退的另一个高频原因是运行库缺失。Win11预装的是高版本VC++运行库,传奇引擎依赖的旧版组件不在其中,典型报错是缺失msvcr120.dll或msvcr100.dll。需要手动补齐两块:.NET Framework 3.5在控制面板的程序和功能里通过启用或关闭Windows功能在线安装;DirectX 9.0c最终用户运行时从微软官网下载安装,地图加载和特效渲染依赖它。引擎主程序如GameSrv.exe、LoginSrv.exe也需要右键属性兼容性,勾选以Windows 7兼容模式运行并勾选管理员权限,老版本GOM和GEE引擎在Win11下不加这一步多数会静默闪退。

端口放行不能只关防火墙了事。Win11的Defender防火墙对非标准端口的拦截是静默的,不报错,表现只是客户端连接超时。需要用管理员权限的命令提示符创建入站规则,把传奇实际使用的端口段放进去,命令格式为`netsh advfirewall firewall add rule name="Mir2Server" dir=in action=allow protocol=TCP localport=7000-7200`,UDP规则按同样方式补一条。如果引擎配置文件里改过默认端口,规则里的端口段要同步修改。

登录器在Win11 22H2之后的版本上存在独立的兼容断层。老登录器基于早期.NET Framework开发,22H2之后的内核变更会导致配置器参数保存失败或登录器闪退,处理方式是对登录器exe右键属性兼容性,选Windows XP SP3兼容模式并勾选管理员运行。如果登录器涉及驱动加载,Win11 24H2的HVCI会直接拦截,这不是Defender误报的问题,需要为驱动文件做测试签名或换用不依赖驱动层的新版登录器。单机架设优先用服务端自带的登录器配置器生成本地列表版本,避免外连列表地址在Win11网络栈下解析异常。