当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

服务器系统架设传奇环境差异云主机常见故障排查处理

热度:
服务器系统和本地电脑架设的最大区别,在于系统权限、安全策略、网络管控、资源限制,很多在本地电脑可以正常启动的版本,放到服务器上直接启动异常或者外部无法连接,优先区分系统版本,老版本引擎适配2012、2016系统,部分老引擎在2019、2022系统上面会出现兼容报错,启动之后M2直接闪退。

系统缺少运行库是最先碰到的问题,服务器系统默认精简组件,没有自带常用运行库,打开引擎直接弹出缺少dll提示。把引擎配套的运行库包全部安装,包含VC系列组件,安装完成之后重启服务器,部分组件安装之后不重启不会生效。DBC数据库工具在服务器系统安装的时候,权限管控更严格,安装完成新建数据库别名,需要确认BDE服务正常运行,出现210D、2501这类数据库报错,找到PDOXUSRS.NET文件删除,重新配置数据库别名,别名路径不能放在受保护的系统目录。

服务器权限管控严格,就算管理员账号登录,直接双击引擎程序依旧会读写失败,所有网关、M2、数据库工具,右键选择以管理员身份运行。不要直接放在C盘系统目录,系统目录的权限隔离会阻止引擎读取脚本、DB文件,服务端目录放到D盘或者数据盘,文件夹路径全程英文,不要中文和空格。服务器的UAC默认级别更高,修改ini配置、脚本文件保存的时候,容易出现保存失败,提示权限不足,提前给整个服务端目录设置完全控制权限。

网络层面分为两层管控,一层是系统自带防火墙,一层是平台后台安全组,两个都要放行端口,只开防火墙,安全组没有添加规则,外部依旧无法连通。整理好登录网关、游戏网关、微端、网页列表用到的端口,在安全组添加入站放行规则,协议选择TCP,再到服务器防火墙高级规则里面新建入站规则,放行对应端口。测试的时候先用本机回环测试,服务器本地127.0.0.1可以正常开门,再用外网IP测试,本地都连不通,不用去排查外部网络。

IP配置很容易混淆,服务器网卡IP是内网地址,平台分配的是外网IP,引擎配置向导里面外网IP填写平台给到的公网地址,监听地址填写服务器本机内网IP,两个不要填反。登录器列表里面填写外网IP,端口和网关保持一致,IP填错之后,会出现列表读取成功,点登录不开门。动态IP的服务器,IP变动之后,引擎配置、登录器列表都要同步更新,不然玩家无法连接。

服务器默认的DEP数据执行保护,会拦截引擎程序,表现为打开M2瞬间直接关闭。打开系统高级设置,找到数据执行保护,把引擎主程序、各个网关程序添加到排除列表,保存之后重启服务器。部分服务器自带安全防护程序,会自动识别引擎程序进行隔离,隔离之后exe文件损坏或者直接删除,把整个Mirserver目录加入防护白名单,不要在服务器上面随意安装多款防护工具,多重拦截会不断引发异常。

内存和资源限制,低配服务器内存偏小,多开网关、加载大量脚本和素材之后,容易出现引擎自动闪退、打怪卡顿、多人连接之后断线。查看任务管理器,观察M2和各个网关占用内存,内存不足的情况下,关闭多余插件,精简地图刷新、怪物数量配置,降低资源消耗。服务器磁盘性能也会影响运行,机械盘读取DB、地图素材速度慢,进图卡顿、读取皮肤配置报错,优先使用高速磁盘存放服务端文件。

远程桌面操作有一个常见问题,远程断开之后,部分系统会自动关闭用户会话,会话关闭,引擎所有进程跟着终止。需要设置远程桌面会话时间,修改组策略,设置断开会话不结束进程,或者使用工具后台托管引擎,不要直接在远程桌面里面打开引擎,一关远程就掉线。托管工具要选择适配服务器系统的版本,托管之后观察控制台日志,确认网关持续监听端口。

编码和文件大小写问题,服务器系统对文件识别更严格,脚本、列表txt保存编码必须是ANSI,UTF8编码的列表文件,登录器读取失败。文件名大小写不一致,也会出现素材读取失败,本地电脑不区分大小写,服务器部分环境会严格区分,素材文件名和配置里面写的名称保持完全一致。

多区架设的时候,每个区使用独立端口,不能端口重复,每个分区一套独立的服务端目录,独立数据库别名,不要共用一套DB和网关,端口冲突会造成多个区互相干扰,时好时坏。合区工具在服务器运行,同样需要管理员权限,合区前完整备份数据库文件,服务器磁盘损坏或者意外重启,很容易造成数据库文件损坏。

插件和授权适配,部分引擎授权绑定服务器标识,放到服务器上授权失效,本地电脑可以正常启动,上传服务器之后弹出授权异常。上传版本的时候,不要直接打包压缩包上传之后解压,部分传输工具会损坏exe和db文件,上传完成核对文件大小,文件大小不一致,就是传输损坏,重新上传。

调试顺序固定,先在服务器本地使用127.0.0.1测试单机,确认引擎启动、注册账号、创建角色、NPC功能全部正常,再去放行安全组和防火墙,测试外网连接。本地测试正常外网不通,只需要处理安全组、防火墙、IP端口配置;本地本身就报错,优先处理系统依赖、权限、兼容、文件损坏问题,不要直接在网络上面反复调试。
[顶部]