传奇手游架设的本质是把服务端程序、数据库和客户端三块拼起来,整个过程分五个阶段:准备服务器环境、安装数据库与网页服务、配置服务端文件、导入数据启动服务、修改客户端指向服务器地址。按顺序一步步拆开讲。
**一、服务器选择与环境准备**
服务器配置方面,和朋友一起玩的私人服选2核4G内存、5M带宽就够用,游戏服务端跑起来大约占2.5G内存,4G是起步门槛。想容纳100人左右在线,直接上4核8G、10M带宽,人一多打架就卡,配置不够没人愿意玩。硬盘50G SSD足够系统加源码加数据库。购买时选按量付费或月付,别一上来就买一年,配置环境过程中很可能遇到各种问题,先买个把月试试水,全部跑通了再考虑续费。
操作系统推荐CentOS 7.6,这是服务器领域经久不衰的稳定版本,相关教程和问题解决方案最多,社区支持好。购买云服务器时在镜像市场直接选这个版本就行。安装好后第一件事是通过SSH工具(FinalShell、Xshell都行)连上服务器,顺手执行yum update -y做系统更新,避免因版本过低导致兼容性问题。
**二、宝塔面板安装与基础环境部署**
宝塔面板是图形化管理工具,把复杂的Linux命令操作转成网页点击操作,极大降低运维门槛。在服务器终端复制执行以下命令安装:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装过程大约两三分钟,屏幕滚动代码不用管。完成后终端会显示宝塔登录地址、用户名和随机密码,立刻把这些信息复制保存到本地记事本,特别是那个带安全入口的地址,格式通常是http://你的服务器IP:8888/一串随机字符,必须带上才能访问。
浏览器打开宝塔面板,第一次登录点高级再继续访问就行。登录后会弹出环境安装推荐窗口,按以下版本选择安装:Nginx 1.18作为Web服务器,MySQL 5.6作为数据库,PHP 5.6作为编程语言环境,phpMyAdmin 4.4作为数据库管理工具。安装过程可能需要几分钟,等待完成即可。
安装完成后通过宝塔菜单终端关闭系统防火墙:systemctl stop firewalld.service 和 systemctl disable firewalld.service。然后在宝塔安全组中开放所有端口1到65535,或者至少开放7000到7500的游戏端口范围和3306数据库端口。
**三、服务端文件上传与IP替换**
将下载好的服务端压缩包通过宝塔上传到服务器根目录,上传成功后解压。解压完成后给文件授予777权限:chmod -R 777 /data/ 和 chmod -R 777 /www/wwwroot/game。
解压路径不能包含中文和空格,统一放在根目录下的纯英文路径中。路径中有中文会导致服务端初始化时直接报错。
接下来修改源码中的IP地址。把默认IP全部替换成你自己的服务器IP,单机自己玩就全部填127.0.0.1,想让手机连同一WiFi玩就填电脑的内网IP。需要修改的文件因版本不同有差异,常见的有这几个:服务端配置文件里的gateway_cfg.lua和session_cfg.lua,路径通常在/data/sbin/resource/config/目录下。网站目录下的api接口文件也需要检查,用Notepad++打开后搜索所有旧IP地址并替换。
**四、数据库配置与导入**
传奇手游服务端通常同时使用两种数据库。MongoDB负责存储账号、会话这类数据,MySQL负责存储角色、装备、背包等游戏数据。安装MongoDB时版本不要追新,用3.4.x或3.6.x的老版本反而更稳定,兼容性更好,安装路径不要有中文和空格,直接装在根目录下。
MySQL使用phpStudy集成环境,它把Apache网页服务、MySQL和PHP打包在一起,一键就能启动和停止。打开phpStudy,把Apache和MySQL两个服务点开,指示灯变绿说明运行正常。部分服务端在Windows环境下操作,打开phpstudy_pro后启动MySQL和Apache,正常为2个蓝灯,出现红灯则说明配置有问题。
数据库操作分两步。先确认MySQL的root密码,很多一键端默认密码是123456或root。然后用Navicat或phpMyAdmin连接数据库,导入服务端自带的SQL数据文件。导入完成后找到cc-game-mili库中的kuafus表和servers表,把里面的IP字段值改为自己的服务器IP。
**五、启动服务端**
按顺序启动各个服务模块。先启动数据库服务,再启动会话服务,然后启动游戏网关,最后启动世界服务。Windows环境下的一键端通常有批量启动脚本,依次执行启动一区、启动二区、启动跨服即可,每次启动后等待1到5秒,游戏启动完成。
启动过程中盯着命令行窗口看,没有红色报错信息就说明跑起来了。可以用netstat命令查看端口监听状态,确认服务确实在运行。如果MongoDB启动失败,先用相同配置文件以前台模式启动MongoDB,验证配置无误且端口27017无冲突。
**六、客户端IP修改与签名**
安卓客户端是一个APK文件,用360压缩或好压打开,找到存放服务器地址的配置文件。常见路径是/assets/kuniu/src/YMConfig.lua,或者/res/values/strings.xml,具体看版本。把文件拖出来,用Notepad++打开,把里面的旧IP地址改成你的服务器IP,保存后再拖回APK压缩包替换原文件。修改该文件不要用系统自带记事本,以免出现无法加密的情况。
部分版本的客户端使用加密配置文件,需要用专门的列表加密工具处理。把客户端APK中的ktsbk_config_android.data文件解压到加密工具目录下,打开命令提示符,执行解密命令1.exe -d ktsbk_config_android.data,解密后用Notepad++修改IP和端口,再执行1.exe -e ktsbk_config_android.data加密文件,最后将加密后的文件替换掉客户端中的原文件。
改完的APK不能直接安装,需要重新签名。用ApkToolBox这类签名工具,选修改后的APK文件点签名,等完成就行。签名后的APK装到手机或模拟器上,输入任意账号密码就能登录。
苹果客户端使用PlistEditor工具修改,路径为/Payload/Legend.app/Info.plist,将里面的IP改成服务器IP后重新打包签名。
**七、外网开放与端口映射**
如果想让外网的朋友连进来,需要先确认网络环境。打开浏览器搜索“IP”查看当前公网地址,然后登录路由器后台在WAN口状态查看路由器获取的IP地址。两个地址一致说明有公网IPv4地址,可以直接用端口映射。WAN口显示的是10.x、172.x或192.x开头的地址,说明网络处于运营商的内网环境,必须使用内网穿透工具。
有公网IP的情况下,登录路由器管理界面,地址通常是192.168.1.1或192.168.0.1。在高级设置中找到虚拟服务器或端口转发选项,新建一条映射规则,外部端口填写与服务端一致的号码,内部IP地址填写运行服务端的电脑局域网地址,内部端口同样填写服务端端口号,协议选TCP或同时勾选TCP/UDP。保存后重启路由器确保规则生效。
没有公网IP的用户使用cpolar或花生壳这类内网穿透工具。下载Windows版本注册登录后创建TCP隧道,本地地址填127.0.0.1加服务端端口号,隧道类型选TCP。创建成功后工具会分配一个公网访问地址,把服务端配置文件和数据库里的IP全部替换成这个外网地址即可。
**八、常见问题排查**
玩家无法连接时,先检查防火墙是否开放了7000端口,再确认服务端IP是否正确绑定,最后查看服务端日志是否有报错信息。
数据库连接超时的情况下,修改MySQL配置中的wait_timeout和interactive_timeout参数延长超时时间,max_allowed_packet调到256M。
网关反复重试连接,检查启动顺序是否正确,再检查端口是否被占用。执行netstat -ano | findstr "7000 7100 7200"查看返回结果最后一列的PID,在任务管理器中结束对应进程。
M2Server启动后提示禁止链接127.0.0.1,删除C盘根目录下的PDOXUSRS.NET文件,然后重新启动服务端。
进游戏后黑屏或花屏,是客户端版本与服务端不匹配,换用与服务端版本对应的客户端重新安装。补丁文件夹名称不一致也会导致花屏,核对登录器配置中的补丁名称后重命名。
架设过程中最容易被忽略的是路径问题。服务端和客户端都统一放在根目录下的纯英文文件夹中,可以避开大部分因中文路径引发的启动失败。数据库配置完成后重启一次服务器再启动服务端,能避免大部分因驱动未加载导致的问题。
传奇手游架设从环境配置到客户端修改全流程实操教程
来源:
作者:
点击:

