在Ubuntu 22.04上从零搭建TrinityCore 3.3.5魔兽私服(含NPCBots和公网部署)
在Ubuntu 22.04上构建TrinityCore 3.3.5魔兽私服全流程指南
1. 环境准备与基础配置
搭建一个稳定的魔兽世界私服需要从系统环境开始准备。Ubuntu 22.04 LTS作为长期支持版本,提供了稳定的基础环境。以下是详细的准备工作:
系统要求:
- Ubuntu 22.04 LTS(推荐使用服务器版)
- 至少4GB内存(编译过程需要较大内存)
- 50GB可用磁盘空间(地图数据占用较大)
- 稳定的网络连接(源码和资源下载需要)
首先更新系统并安装必要的开发工具:
sudo apt update && sudo apt upgrade -y sudo apt install -y git clang cmake make gcc g++ libmysqlclient-dev \ libssl-dev libbz2-dev libreadline-dev libncurses-dev \ libboost-all-dev mysql-server p7zip配置编译器使用clang以获得更好的性能:
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100提示:如果使用非root账户操作,所有命令前需添加sudo。建议创建一个专用用户(如wow)来管理服务器。
数据库服务建议使用MariaDB 10.6+,兼容性更好:
sudo apt install -y mariadb-server sudo mysql_secure_installation2. 源码获取与编译
TrinityCore的源码管理需要特别注意版本选择。3.3.5a(巫妖王之怒)是一个稳定且功能完善的版本。
获取指定版本的源码:
git clone -b 3.3.5 --depth 1 https://github.com/TrinityCore/TrinityCore cd TrinityCore如果GitHub访问困难,可以使用国内镜像:
git clone -b 3.3.5 --depth 1 https://gitcode.com/gh_mirrors/TrinityCore.gitNPCBots集成(可选但推荐): NPCBots为单人游戏提供了AI队友支持,极大丰富了游戏体验。
wget https://github.com/trickerer/Trinity-Bots/raw/master/NPCBots.patch patch -p1 < NPCBots.patch编译配置与安装:
mkdir build && cd build cmake ../ -DCMAKE_INSTALL_PREFIX=/opt/trinitycore make -j $(nproc) sudo make install编译参数说明:
-j $(nproc):使用所有CPU核心加速编译DCMAKE_INSTALL_PREFIX:指定安装目录
3. 数据库配置与初始化
数据库是私服运行的核心,正确的配置能避免很多后期问题。
创建专用数据库用户和库:
CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity'; CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE `world` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON `auth`.* TO 'trinity'@'localhost'; GRANT ALL PRIVILEGES ON `characters`.* TO 'trinity'@'localhost'; GRANT ALL PRIVILEGES ON `world`.* TO 'trinity'@'localhost';导入基础数据库结构:
mysql -u root -p < /opt/trinitycore/sql/create/create_mysql.sql注意:只需要导入这一个SQL文件,worldserver启动时会自动完成其他表的初始化。
4. 资源文件准备与配置
地图、VMaps和MMaps是游戏运行必需的资源文件,需要单独下载和处理。
获取资源文件(约5GB):
mkdir -p /opt/trinitycore/data wget https://tc.arctium.io/data/3.3.5a/data.zip -O /tmp/data.zip unzip /tmp/data.zip -d /opt/trinitycore/data配置worldserver.conf关键参数:
DataDir = "/opt/trinitycore/data" LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth" WorldDatabaseInfo = "127.0.0.1;3306;trinity;trinity;world" CharacterDatabaseInfo = "127.0.0.1;3306;trinity;trinity;characters" # NPCBots配置(如已集成) NpcBot.Enable = 1 NpcBot.MaxBots = 1,2,3,4,5,6,7,8,95. 服务器启动与账户管理
启动顺序必须先authserver后worldserver:
cd /opt/trinitycore/bin ./authserver & ./worldserver在worldserver控制台中创建管理员账户:
account create admin password account set gmlevel admin 3 -1 account set password admin newpassword oldpassword常用GM命令参考:
.revive- 复活角色.levelup 10- 提升10级.additem 物品ID- 添加物品.tele 地图ID X Y Z- 传送
6. 网络部署与访问配置
实现公网访问需要正确配置realmlist表:
USE auth; UPDATE realmlist SET address = '你的公网IP' WHERE id = 1;防火墙配置:
sudo ufw allow 8085/tcp # TrinityCore默认端口 sudo ufw allow 3724/tcp # 认证端口对于家庭网络,还需要在路由器上设置端口转发(8085和3724)。
7. 常见问题排查
地图文件缺失错误: 检查worldserver.conf中DataDir路径是否为绝对路径,确保maps、vmaps目录存在且包含相应文件。
数据库连接问题: 确认mysql用户权限和worldserver.conf中的连接信息匹配,检查MariaDB是否监听127.0.0.1。
NPCBots不工作: 确认编译时patch应用成功,worldserver.conf中NpcBot.Enable = 1,并检查启动日志是否有相关错误。
登录卡在"已连接": 通常是realmlist.address配置错误或防火墙阻止了端口,检查IP和端口设置。
8. 性能优化与维护
服务器优化参数:
# worldserver.conf PlayerLimit = 100 MaxCoreStuckTime = 60 SocketSelectTime = 10000定期维护命令:
# 清理旧日志 find /opt/trinitycore/logs -type f -mtime +7 -delete # 数据库优化 mysqlcheck -u trinity -p --optimize --all-databases备份策略:
# 完整备份脚本 mysqldump -u trinity -p --all-databases > trinity_backup_$(date +%F).sql tar czvf trinity_data_$(date +%F).tar.gz /opt/trinitycore/{data,etc}