Ubuntu 20.04 LTS 服务器系统怎么架设传奇?分步实操指南

来源: 作者: 点击:
一、Ubuntu 20.04 前期准备(系统与工具)
系统基础确认与配置
验证版本:远程连接后执行lsb_release -a,确认输出 “Release: 20.04”“Codename: focal”,确保为 64 位系统(执行uname -m,显示 “x86_64” 即符合)。
关闭不必要服务:执行systemctl stop apport systemctl disable apport(关闭错误报告服务,避免占用资源),并创建专属目录:mkdir -p /usr/local/legend/server /usr/local/legend/data(分别存服务端、数据库文件,便于管理)。
必备工具清单(Ubuntu 20.04 适配版)
远程工具:Xshell(命令行操作)、WinSCP(可视化传文件,Windows 与 Ubuntu 互传);
传奇服务端:选择 “Linux Ubuntu 兼容版”(如 1.76 复古端,避免 Windows 端,会出现 “无法执行二进制文件” 错误);
数据库:MariaDB 10.3(Ubuntu 20.04 默认源自带版本,兼容性优于高版本 MySQL);
依赖库:gcc、libc6-dev、net-tools、php(服务端编译、Web 支持必需,通过 apt 安装);
编辑器:Notepad++(本地修改配置文件,支持 Ubuntu 编码,避免中文乱码);
登录器:侠客登录器 Linux 版(生成客户端可识别的.exe 文件,支持跨系统连接)。
二、Ubuntu 20.04 环境搭建(核心步骤)
更新源并安装依赖
先更新 apt 源(确保下载最新依赖):sudo apt update -y;
批量安装必备依赖:sudo apt install -y gcc libc6-dev net-tools apache2 mariadb-server php php-mysql;
验证安装:执行apache2 -v(显示 Apache 版本)、mysql -V(显示 MariaDB 版本)、php -v(显示 PHP 版本,需 5.6+),确认无报错。
配置 MariaDB 数据库(传奇专用)
启动数据库并设开机自启:sudo systemctl start mariadb sudo systemctl enable mariadb;
初始化数据库(设置 root 密码,删除安全风险项):
执行sudo mysql_secure_installation,按提示操作:
输入 root 初始密码(默认空,直接回车);
设新 root 密码(建议含字母 + 数字,如 “leg123db”);
依次输入 “Y” 确认:删除匿名账号、禁止 root 远程登录(本地架设够用)、删除测试数据库、刷新权限。
创建传奇数据库与账号:
登录数据库:sudo mysql -u root -p(输入刚设的密码);
建库:create database legend_db character set utf8;;
授权账号:grant all privileges on legend_db.* to 'legend_user'@'localhost' identified by '你的密码';(替换 “你的密码” 为自定义密码);
刷新权限:flush privileges;;
退出:exit;。
导入服务端 SQL 文件:
用 WinSCP 将服务端自带的db.sql上传至/usr/local/legend/data,执行sudo mysql -u legend_user -p legend_db < /usr/local/legend/data/db.sql,输入密码完成导入。
三、Ubuntu 20.04 传奇服务端部署
服务端文件传输与解压
通过 WinSCP 将 Ubuntu 兼容版传奇服务端压缩包(如legend_server.tar.gz)上传至/usr/local/legend/server;
执行解压命令(指定目录,避免文件混乱):sudo tar -zxvf /usr/local/legend/server/legend_server.tar.gz -C /usr/local/legend/server;
赋予执行权限(Ubuntu 权限严格,不设会启动失败):
sudo chmod +x /usr/local/legend/server/*.sh
sudo chmod +x /usr/local/legend/server/GameSrv /usr/local/legend/server/LoginSrv。
修改服务端核心配置
编辑 IP 与端口:
执行sudo vi /usr/local/legend/server/Config/ServerInfo.conf,按i进入编辑模式,将ServerIP改为服务器公网 IP(本地测试用127.0.0.1),ServerPort设为 7000(默认未占用端口),按Esc后输入:wq保存退出。
调整游戏参数:
编辑/usr/local/legend/server/Config/GameConfig.conf,修改经验倍率(如ExpRate=5)、金币掉落率(GoldRate=3),保存方式同上。
启动服务端并验证
后台启动服务端(避免关闭远程工具后进程终止):
cd /usr/local/legend/server
sudo nohup ./StartServer.sh &
验证进程:执行sudo ps aux | grep GameSrv,若显示GameSrv和LoginSrv进程(如root 1234 0.0 0.1 12345 6789 ? S 12:34 0:00 ./GameSrv),说明启动成功;
若启动失败:查看日志sudo cat nohup.out,若提示 “缺少 libstdc++.so.6”,执行sudo apt install -y libstdc++6补充依赖。
四、登录器适配与 Ubuntu 防火墙配置
生成兼容登录器
通过 WinSCP 将 Linux 登录器生成工具(如LoginMaker)上传至/usr/local/legend/server,赋予权限:sudo chmod +x /usr/local/legend/server/LoginMaker;
执行生成命令(替换 “你的公网 IP” 为实际 IP):
cd /usr/local/legend/server
sudo ./LoginMaker -ip 你的公网IP -port 7000 -out /usr/local/legend/server/LegendLogin.exe;
下载登录器:用 WinSCP 将生成的LegendLogin.exe下载至本地,复制到传奇客户端根目录(如D:\LegendClient)。
开放传奇所需端口(ufw 防火墙)
Ubuntu 20.04 默认启用 ufw 防火墙,需开放 7000 端口(服务端通信)和 80 端口(若需 Web 注册页面):
sudo ufw allow 7000/tcp
sudo ufw allow 80/tcp
启用防火墙并验证:
sudo ufw enable(首次启用会提示 “命令可能中断现有 SSH 连接”,输入 “y” 确认);
sudo ufw status(显示 “7000/tcp ALLOW Anywhere”“80/tcp ALLOW Anywhere” 即配置成功)。
五、Ubuntu 20.04 架设常见问题解决
服务端启动后进程秒消失
查日志:sudo cat /usr/local/legend/server/nohup.out,若显示 “数据库连接失败”,核对ServerInfo.conf中数据库账号密码(是否与legend_user的密码一致);
若显示 “权限被拒绝”,重新执行sudo chmod +x赋予所有服务端文件执行权限(包括子目录):sudo chmod -R +x /usr/local/legend/server。
客户端无法连接服务器
排查步骤:
本地测试:在 Ubuntu 服务器执行curl http://localhost:7000,若返回 “连接被拒绝”,检查服务端是否启动;
端口监听:sudo netstat -tuln | grep 7000,若无结果,说明端口未监听,重新配置ServerInfo.conf的端口;
公网访问:若为云服务器,需在控制台安全组开放 7000 端口(Ubuntu 防火墙与云安全组需同时配置)。
Apache 服务启动失败(需 Web 支持时)
查错误日志:sudo cat /var/log/apache2/error.log,若提示 “端口 80 被占用”,执行sudo lsof -i :80查看占用进程,用sudo kill -9 进程ID结束占用;
重启 Apache:sudo systemctl restart apache2,再执行sudo systemctl status apache2确认 “active (running)”。
PHP 解析失败(注册页面显示代码)
确认 Apache 已加载 PHP 模块:sudo a2enmod php7.4(Ubuntu 20.04 默认 PHP 版本为 7.4,替换为实际版本);
重启 Apache:sudo systemctl restart apache2,再访问注册页面(如http://服务器IP/register.php),即可正常显示。