Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

如何使用 AzerothCore 搭建魔兽世界服务器

搭建魔兽世界服务器需要安装服务器模拟软件、配置数据库、准备游戏数据,并连接各个服务器组件。研究这一过程时,AzerothCore 是最知名的开源项目之一,它模拟的是《魔兽世界:巫妖王之怒》3.3.5a 版本的服务器环境。

AzerothCore 可在 Linux、Windows 和 macOS 上运行。本指南将重点介绍如何按照项目当前的源代码安装流程,在 Ubuntu 26.04 LTS 上安装 AzerothCore。

我们将介绍必要的命令、数据库配置、网络设置以及常见的安装问题。

重要提示:AzerothCore 是一个独立的开源项目,并非暴雪官方服务器。暴雪的许可条款对未经授权的服务器模拟和连接作出了限制。本指南仅用于技术教育,以及您拥有必要权利和许可的环境。本指南不提供游戏客户端、专有资源,也不授予运营未经授权服务的许可。

什么是 AzerothCore?

AzerothCore 是一款基于《巫妖王之怒》3.3.5a 环境的开源 MMORPG 服务器模拟器。

它重现了角色管理、身份验证、任务、生物和游戏世界交互等服务器端系统。

该软件使用三个主要组件:

  • Authserver:处理登录身份验证和服务器选择。
  • Worldserver:管理游戏世界活动、角色和游戏玩法系统。
  • MySQL 数据库:存储身份验证记录、角色和世界信息。

这两个服务器程序都与 MySQL 通信,并且可以在同一台机器上运行。

AzerothCore 提供服务器软件,但不提供获得许可的魔兽世界游戏客户端,也不授予重新分发暴雪资源的权利。

什么是 AzerothCore

魔兽世界服务器的配置要求

AzerothCore 的配置要求取决于安装方式和工作负载。编译软件通常比运行小型测试环境需要更多资源。

对于 Linux 开发或测试环境,可以参考以下起步配置:

资源建议配置
CPU4 个或更多 vCPU
内存编译时需要 8 GB 或更多
存储60–100 GB SSD 或 NVMe
操作系统Ubuntu 26.04 LTS
数据库MySQL 8.4 LTS
编译器GCC 15+ 或 Clang 18+

这些硬件配置是实用的起步参考值,并非官方最低要求,也不代表能够保证支持特定数量的玩家。

本教程使用 Ubuntu 26.04 LTS,其软件仓库提供受支持的 MySQL 8.4 软件包。

安装过程还需要管理员访问权限,并要求您熟悉基本的 Linux 命令。

步骤 1:准备 Linux 服务器

通过 SSH 连接到您的 Linux 环境:

ssh admin@YOUR_SERVER_IP

将 admin 替换为您的用户名,将 YOUR_SERVER_IP 替换为服务器的实际地址。

更新系统:

sudo apt update
sudo apt upgrade

接下来,安装文档中列出的 Ubuntu 26.04 所需依赖项:

sudo apt install git cmake make gcc g++ clang \
libstdc++-16-dev default-libmysqlclient-dev \
libssl-dev libbz2-dev libreadline-dev \
libncurses-dev mysql-server libboost-all-dev tmux

检查 MySQL 是否正在运行:

sudo systemctl status mysql

您还可以检查编译器和数据库的版本:

clang --version
mysql --version

继续之前,请确认它们满足 AzerothCore 当前的要求。

请使用普通 Linux 账户编译和运行 AzerothCore,不要以 root 身份运行该程序。

步骤 2:下载并编译 AzerothCore

从 GitHub 下载官方源代码:

git clone https://github.com/azerothcore/azerothcore-wotlk.git \
--branch master --single-branch ~/azerothcore

进入项目目录并创建单独的构建目录:

cd ~/azerothcore
mkdir build
cd build

使用 CMake 配置构建:

cmake .. \
-DCMAKE_INSTALL_PREFIX="$HOME/azerothcore/env/dist/" \
-DCMAKE_C_COMPILER=/usr/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
-DTOOLS_BUILD=all \
-DSCRIPTS=static \
-DMODULES=static

如果配置成功,编译 AzerothCore:

make -j2

-j2 选项将编译限制为两个并行任务。与使用所有可用 CPU 线程相比,这可以减轻内存压力。

如果服务器内存有限,编译因内存不足而失败,请尝试 make -j1。

编译完成后,安装二进制文件:

make install

安装后的文件现在应位于:

~/azerothcore/env/dist/

bin 目录包含服务器程序和编译好的工具。

步骤 3:配置 MySQL 数据库

AzerothCore 使用三个数据库:

  • acore_auth —— 身份验证和账户信息。
  • acore_characters —— 角色和玩家数据。
  • acore_world —— 游戏世界信息。

对于全新安装,AzerothCore 提供了用于创建数据库和数据库用户的 SQL 脚本。

运行:

sudo mysql < ~/azerothcore/data/sql/create/create_mysql.sql

仅在全新安装时使用此初始化脚本。该脚本还会重新创建默认数据库用户,可能影响现有配置。

该脚本会创建一个使用默认密码的 acore 账户。使用此安装环境前,请更改该密码。

打开 MySQL:

sudo mysql

更改账户密码:

ALTER USER 'acore'@'localhost'
IDENTIFIED BY 'YOUR_STRONG_PASSWORD';

将占位内容替换为安全且唯一的密码。请妥善保管密码,并更新配置文件中对应的数据库凭据。

退出 MySQL:

EXIT;

AzerothCore 内置自动数据库更新工具,会在相关服务器进程启动时初始化并更新所需的表。

您不需要手动导入每个数据库更新文件。

步骤 4:准备所需的游戏数据

AzerothCore 需要与 3.3.5a 环境兼容的游戏世界数据。

这些数据不同于开源服务器代码,处理专有资源和许可问题时需要格外谨慎。

主要的数据目录包括:

目录用途
dbc游戏配置和参考数据
maps地形和地图信息
vmaps碰撞和视线数据
mmaps导航和移动数据

AzerothCore 提供提取工具,可用于从您拥有必要使用权的兼容客户端安装中准备这些数据。

提取过程会使用 map_extractor、vmap4_extractor、vmap4_assembler 和 mmaps_generator 等工具。请参阅官方 Linux 服务器搭建说明,了解适合您环境的提取流程。

完成提取后,将所需目录放入配置的数据位置。

默认配置通常要求这些目录与已安装的 worldserver 二进制文件位于同一目录下,即:

~/azerothcore/env/dist/bin/

启动世界服务器之前,请确认所需目录均已存在。

注意:开源模拟器的许可不授予下载、分享或重新分发魔兽世界专有客户端文件的权限。

步骤 5:配置 Authserver 和 Worldserver

AzerothCore 为这两项服务都提供了示例配置文件。

进入配置目录:

cd ~/azerothcore/env/dist/etc/

创建工作副本:

cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf

使用您习惯的文本编辑器打开配置文件。

例如:

nano worldserver.conf

找到数据库连接设置。

其格式如下:

LoginDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_auth"
WorldDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_world"
CharacterDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_characters"

将 YOUR_PASSWORD 替换为之前设置的数据库密码。

同时在 authserver.conf 中配置 LoginDatabaseInfo。

每个条目都指定 MySQL 主机、端口、用户名、密码和数据库名称。

接下来,检查 worldserver.conf 中的 DataDir 选项。

如果所需的游戏数据目录与已安装的世界服务器二进制文件位于同一目录,默认相对路径可能已经适用。否则,请将 DataDir 设置为正确的目录。

继续之前,请保存配置文件。

步骤 6:启动世界服务器和身份验证服务器

AzerothCore 提供用于管理服务器进程的启动脚本。

进行交互式测试时,可以使用 tmux,让每个进程分别在独立的终端会话中运行。

首先,为世界服务器创建一个会话:

tmux new -s wow-world

在该会话中运行:

cd ~/azerothcore
./acore.sh run-worldserver

首次启动时,AzerothCore 可能会提示您创建数据库表或填充表数据。请按照提示操作,并等待初始化完成。

检查输出中是否存在数据库连接问题或缺失的游戏数据文件。

若要在不关闭进程的情况下从 tmux 会话中分离,请按 Ctrl+B,然后按 D。

启动第二个会话:

tmux new -s wow-auth

然后运行:

cd ~/azerothcore
./acore.sh run-authserver

此时,两个服务器进程应分别在各自的会话中运行。

您可以使用以下命令列出会话:

tmux ls

对于需要长期运行的部署,请使用 AzerothCore 文档中介绍的服务管理方式,而不要只依赖交互式终端会话。

步骤 7:创建测试账户

世界服务器成功启动后,您可以通过其控制台创建账户。

重新连接到世界服务器会话:

tmux attach -t wow-world

在世界服务器控制台中输入:

account create testuser YOUR_STRONG_PASSWORD

将示例用户名和密码替换为您选定的凭据。

AzerothCore 还支持为账户设置不同的权限级别。

例如,可以使用其账户管理命令授予管理员权限:

account set gmlevel testuser 3 -1

级别 3 授予管理员权限,-1 则表示将该设置应用于所有服务器。

仅为确实需要的账户授予较高权限。

这些是 AzerothCore 控制台命令,不是普通的 Linux shell 命令。

步骤 8:了解服务器网络设置

AzerothCore 默认使用两个 TCP 端口:

端口服务
3724身份验证服务器
8085世界服务器

它还在 acore_auth 数据库的 realmlist 表中保存服务器连接信息。

进行本地测试时,地址可以保持为 127.0.0.1。对于获得授权的远程测试环境,服务器地址必须与获准使用的客户端能够访问的地址一致,并且需要相应地配置网络访问。

您可以通过 MySQL 查看现有的服务器配置:

sudo mysql

然后:

USE acore_auth;
SELECT id, name, address FROM realmlist;

AzerothCore 的网络文档介绍了服务器地址和网络设置的工作方式。

不要将数据库端口暴露在公共互联网上。如果获得授权的环境需要远程访问,请通过适当的防火墙或专用网络规则限制访问。

AzerothCore 面向历史版本 WoW 3.3.5a 的客户端协议。现代魔兽世界客户端不能与该版本互换使用。客户端兼容本身并不意味着获准连接非官方服务器。

搭建魔兽世界服务器时的常见问题

即使软件编译成功,配置问题也可能导致服务无法启动。

问题检查项目
数据库连接失败MySQL 运行状态、数据库凭据、用户权限
Worldserver 无法加载地图dbc、maps 或 vmaps 文件缺失或位置不正确
服务器不可用Authserver 运行状态和 realmlist 配置
连接被拒绝服务器进程、监听端口、防火墙
编译失败编译器版本、依赖项、可用内存
意外崩溃启动日志、软件版本兼容性、资源限制

例如,可以使用以下命令检查可用内存和存储空间:

free -h
df -h

如果您正在排查构建失败的问题,请重新运行相关命令,并阅读第一个有实质意义的错误,而不是只关注最后的失败提示。

如果问题持续存在,请查阅 AzerothCore 的常见错误文档。

保持 AzerothCore 更新和安全

AzerothCore 持续发布开发更新,因此安装要求和配置选项可能会发生变化。

更新现有环境之前:

  1. 备份 MySQL 数据库和自定义配置。
  2. 查看项目最新的安装和更新说明。
  3. 正常停止相关服务。
  4. 在需要时更新源代码并重新构建。
  5. 等待文档中说明的数据库更新完成。
  6. 检查服务器进程并查看其日志。

您还应保持操作系统安全更新、保护管理员凭据、限制不必要的网络访问,并测试恢复流程。

不要完全禁用自动安全更新。应规划维护时段,并协调可能导致 MySQL 或其他服务重启的更新。

常见问题

可以在 Linux 上搭建 WoW 服务器吗?

可以。AzerothCore 支持 Linux,并提供编译和配置其开源服务器软件的文档。使用专有游戏资源或连接 WoW 客户端,还涉及额外的权利和许可问题。

AzerothCore 支持现代版本的魔兽世界吗?

不支持。AzerothCore WotLK 项目面向历史版本的魔兽世界 3.3.5a 环境,现代正式服游戏客户端无法直接兼容。

AzerothCore 支持 MariaDB 吗?

不支持。AzerothCore 已于 2024 年 9 月停止支持 MariaDB。其当前文档推荐使用 MySQL 8.4 LTS。

需要独立服务器吗?

不一定。开发或测试环境可以在性能足够的虚拟机上运行。资源需求取决于编译过程、已安装的模块、运行中的服务和工作负载。

运营魔兽世界私人服务器合法吗?

暴雪的最终用户许可协议对未经授权的服务器模拟和连接作出了限制。开源服务器软件并不授予使用暴雪游戏客户端、美术资源或其他专有内容的权利。任何考虑使用模拟器环境的人都应查阅相关许可协议,并取得所有必要的许可。

总结

使用 AzerothCore 搭建魔兽世界服务器,远不只是下载模拟器并运行两条命令。

要建立一个能够正常运行的技术环境,需要兼容的软件、MySQL 配置、适当的游戏数据、正确配置的身份验证服务和世界服务,以及合适的网络设置。

按照项目当前的文档操作,并在进入下一阶段前验证每一步,您就能更好地理解 MMORPG 服务器基础设施的工作原理,同时避免许多常见的安装错误。

请始终区分开源服务器技术与使用该技术所需的专有内容及相关许可。

Table of Content

Hosting that grows with you

Give your next website or application the resources and control it needs.

Explore VPS hosting →

每家服务商都宣称速度快、运行稳定、功能强大,要选出最佳 WordPress 主机服务并不容易。但正确的选择并不 […]

开办网站托管公司,无需投资昂贵的服务器,也无需自建数据中心。有了可靠的托管服务提供商、专业的网站和自动化计费软 […]

VPS 主机转售让主机服务公司无需购买昂贵的硬件或管理数据中心,就能以自己的品牌销售虚拟专用服务器。服务器由基 […]

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

滚动至顶部