在Ubuntu 22.04上从零搭建TrinityCore 3.3.5魔兽私服:保姆级避坑指南(含公网部署)
2026/5/31 7:28:14 网站建设 项目流程

在Ubuntu 22.04上从零搭建TrinityCore 3.3.5魔兽私服:保姆级避坑指南(含公网部署)

魔兽世界怀旧服的热度持续攀升,许多玩家和技术爱好者都希望搭建自己的私服。本文将带你从零开始,在Ubuntu 22.04系统上完整部署TrinityCore 3.3.5版本服务器,涵盖从环境准备到公网部署的全过程,特别针对常见陷阱提供解决方案。

1. 环境准备与依赖安装

搭建TrinityCore服务器首先需要确保系统环境满足要求。Ubuntu 22.04 LTS是最推荐的系统版本,因其长期支持特性和稳定性。以下是必须安装的开发工具和库:

sudo apt update 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

注意:如果使用非root账户,所有命令前都需要添加sudo。

配置编译器默认使用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

常见问题排查:

  • 若遇到libboost版本冲突,可尝试指定版本安装:sudo apt install libboost1.74-dev
  • MySQL安装后建议运行安全脚本:sudo mysql_secure_installation

2. 源码获取与编译

TrinityCore的源码托管在GitHub,建议直接克隆3.3.5分支:

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.git

编译配置与安装步骤:

mkdir build && cd build cmake ../ -DCMAKE_INSTALL_PREFIX=/home/$(whoami)/server make -j $(nproc) make install

关键参数说明:

  • -DCMAKE_INSTALL_PREFIX:指定服务器安装路径
  • -j $(nproc):使用所有CPU核心加速编译

3. 数据库配置与初始化

TrinityCore需要三个数据库:auth(认证)、characters(角色)和world(游戏世界)。初始化步骤如下:

  1. 登录MySQL:
sudo mysql -u root -p
  1. 执行创建脚本(假设源码在/home/wow/TrinityCore):
SOURCE /home/wow/TrinityCore/sql/create/create_mysql.sql;

create_mysql.sql内容摘要:

CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity'; CREATE DATABASE `world` DEFAULT CHARACTER SET utf8mb4; CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8mb4; CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8mb4; -- 授权语句省略...

避坑指南:

  • 确保使用utf8mb4字符集以避免特殊字符问题
  • 如果使用MariaDB,可能需要手动调整认证插件:
    ALTER USER 'trinity'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('trinity');

4. 地图数据与配置文件

地图数据是独立于源码的必备资源。从官方推荐源下载3.3.5a版本的地图文件:

wget https://tc.arctium.io/data/3.3.5a/maps_vmaps_dbc.7z 7z x maps_vmaps_dbc.7z -o/home/wow/server/data

配置文件位于server/etc/目录,需要重命名并编辑:

cd /home/wow/server/etc cp worldserver.conf.dist worldserver.conf cp bnetserver.conf.dist bnetserver.conf

关键配置项修改:

配置项推荐值说明
DataDir"/home/wow/server/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"世界数据库连接
Instance.IgnoreRaid1允许单人进入团队副本

5. 服务器启动与账户管理

启动顺序必须先认证服务器后世界服务器:

cd /home/wow/server/bin ./authserver & ./worldserver &

在worldserver控制台创建游戏账户:

account create test test account set gmlevel test 3 -1

命令说明:

  • 第一个"test"是账号名,第二个是密码
  • "3"表示GM等级,"-1"应用于所有服务器

6. 网络配置与公网部署

要让服务器可被局域网或公网访问,必须修改realmlist表:

USE auth; UPDATE realmlist SET address = '你的公网IP' WHERE id = 1;

多网络环境解决方案:

  1. 纯局域网环境

    UPDATE realmlist SET address = '192.168.x.x';
  2. 公网+局域网共存

    INSERT INTO realmlist (name, address, localaddress, port) VALUES ('LAN Realm', '192.168.x.x', '127.0.0.1', 8085);
  3. 使用域名(推荐公网部署)

    UPDATE realmlist SET address = 'yourdomain.com';

端口转发配置示例:

sudo iptables -t nat -A PREROUTING -p tcp --dport 8085 -j DNAT --to-destination 192.168.x.x:8085 sudo iptables -A FORWARD -p tcp --dport 8085 -d 192.168.x.x -j ACCEPT

7. 高级配置与优化

性能调优参数:

参数推荐值影响范围
MaxCoreStuckTime60服务器无响应超时
PlayerLimit100同时在线玩家数
SaveRespawnTimeImmediately1立即保存重生时间
Rate.XP.Kill1.0经验值倍率

添加机器人(NPCBots):

  1. 下载补丁:
wget https://github.com/trickerer/Trinity-Bots/raw/master/NPCBots.patch
  1. 应用补丁:
cd ~/TrinityCore patch -p1 < NPCBots.patch
  1. 重新编译并配置:
NpcBot.Enable = 1 NpcBot.MaxBots = 1,2,3,4,5,6,7,8,9

8. 日常维护与监控

自动启动脚本(systemd服务):

创建/etc/systemd/system/trinitycore.service

[Unit] Description=TrinityCore World Server After=network.target mysql.service [Service] Type=simple User=wow WorkingDirectory=/home/wow/server/bin ExecStart=/home/wow/server/bin/worldserver Restart=always [Install] WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reload sudo systemctl enable trinitycore sudo systemctl start trinitycore

数据库备份脚本:

#!/bin/bash DATE=$(date +%Y%m%d) mysqldump -u trinity -ptrinity auth > /backup/auth_$DATE.sql mysqldump -u trinity -ptrinity characters > /backup/characters_$DATE.sql mysqldump -u trinity -ptrinity world > /backup/world_$DATE.sql

实际部署中发现,使用绝对路径配置DataDir能解决90%的地图加载问题。对于公网部署,建议搭配Cloudflare等CDN服务来缓解DDoS风险,同时定期检查服务器日志中的异常登录尝试。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询