AzerothCore Debian 12 安装指南
这是将 AzerothCore 安装到 Debian 12 服务器、保护它以及从 Windows PC 启用一键维护的快速入门指南。
目录
要求
油灰
用于向服务器发送命令的 Windows 程序。
Debian 12
安装了 Debian 12 的服务器。(例如:OVH 的 4gb/4core VPS)
选修的
文件齐拉
用于与服务器之间传输文件的 Windows 程序。在SSH 设置期间用于将生成的密钥文件复制到您的 PC。
HeidiSQL
用于连接服务器 SQL 数据库的 Windows 程序。本指南中未使用。如果您想使用 HeidiSQL 连接数据库,请阅读此内容
Debian 设置
首次登录
使用PuTTY通过托管服务提供商提供的 IP 地址和登录凭据连接到您的 Debian 服务器。(如果您以 root 身份登录,请先创建具有 sudo 权限的新用户并切换到该用户。)
复制以下代码块并将其粘贴到 PuTTY 终端中,右键单击,然后按回车键。
更改默认 SSH 端口
sudo sed -i 's/^#Port 22\+$/Port 55022/' /etc/ssh/sshd_config
sudo systemctl restart sshd
请记住从现在开始使用 55022 作为 SSH 端口。
设置防火墙
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 55022
sudo ufw allow 3724
sudo ufw allow 8085
sudo ufw enable
获取依赖项
sudo apt update && sudo apt install git cmake make gcc g++ clang libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev lsb-release gnupg wget p7zip-full screen fail2ban -y
获取 MySQL
mkdir -p ~/mysqlpackages && cd ~/mysqlpackages
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config_0.8.32-1_all.deb
sudo apt update && sudo apt install libmysqlclient-dev mysql-server -y
sudo mysql_secure_installation
验证密码组件:N
更改root密码:N
删除匿名用户:Y
禁止远程 root 登录: Y
删除测试数据库:Y
重新加载权限表:Y
设置 SQL 数据库
sudo mysql -u root -p
输入上一步设置的root密码。
DROP USER IF EXISTS 'acore'@'localhost';
CREATE USER 'acore'@'localhost' IDENTIFIED BY 'SQLPASSWORD';
GRANT ALL PRIVILEGES ON * . * TO 'acore'@'localhost';
CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;
exit
将SQLPASSWORD更改为更安全的内容。
SSH 设置
这是一个可选步骤,涉及创建密钥文件并禁用基于密码的 SSH 登录以提高 Debian 服务器和 SQL 数据库的安全性。
密钥生成
Debian 公钥
ssh-keygen -t ed25519 -C "Debian12"
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
Windows 私钥
使用Filezilla连接到服务器并导航至
home/USERNAME/ssh/将文件复制
id_ed25519到您的电脑并将其加载到puttygen.exe(位于 PuTTY 文件夹中)生成私钥
.ppk文件。将此文件存储在安全的地方并进行备份。
基于密钥的登录设置
油灰
文件齐拉
HeidiSQL
禁用密码登录
确认基于密钥的登录有效后,禁用密码登录。
sudo sed -i -E 's/#?PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo rm /etc/ssh/sshd_config.d/*
sudo service ssh restart
AzerothCore 安装
克隆存储库
git -C ~/ clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch azerothcore
添加反作弊模块
git -C ~/azerothcore/modules clone https://github.com/azerothcore/mod-anticheat
获取数据文件
mkdir -p ~/server/data && cd ~/server/data
wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip
7z x data.zip && rm data.zip
构建核心
mkdir -p ~/azerothcore/build && cd ~/azerothcore/build
cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/server/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=db-only -DSCRIPTS=static -DMODULES=static
make -j $(nproc) install
编辑配置
cp -n ~/server/etc/authserver.conf.dist ~/server/etc/authserver.conf
cp -n ~/server/etc/worldserver.conf.dist ~/server/etc/worldserver.conf
cp -n ~/azerothcore/modules/mod-anticheat/conf/Anticheat.conf.dist ~/server/etc/Anticheat.conf
sudo sed -i -E 's|^DataDir = .*|DataDir = "/home/USERNAME/server/data"|' ~/server/etc/worldserver.conf
sudo sed -i -E 's|^LogsDir = .*|LogsDir = "/home/USERNAME/server/logs"|' ~/server/etc/*.conf
sudo sed -i -E 's/= "127.0.0.1;3306;acore;[^;]*;/= "127.0.0.1;3306;acore;SQLPASSWORD;/' ~/server/etc/*.conf
将USERNAME更改为您的 Debian 用户。
将SQLPASSWORD更改为 acore 数据库用户的密码。
启动服务器
mkdir -p ~/server/logs
screen -AmdS auth ~/server/bin/authserver
screen -AmdS world ~/server/bin/worldserver
screen -r world
创建GM账户
account create USERNAME PASSWORD
account set gmlevel USERNAME 3 -1
使用 Ctrl+A -> Ctrl+D 退出世界服务器屏幕
设置领域 IP
sudo mysql -u acore -p
输入 acore 数据库用户的密码。
UPDATE acore_auth.realmlist SET address = '0.0.0.0' WHERE id = 1;
exit
将0.0.0.0更改为您的 Debian12 服务器的公网 IP 地址。
结束!
现在,您应该能够通过将您的领域列表设置为 Debian12 服务器的公共 IP 地址来登录 AzerothCore。例如:
set realmlist 0.0.0.0
维护
创建别名命令
touch ~/.bash_aliases
echo "alias acoreupdate='
screen -S world -p 0 -X stuff "saveall^m";
screen -X -S "world" quit;
git -C ~/azerothcore/modules/mod-anticheat pull;
git -C ~/azerothcore pull;
cd ~/azerothcore/build;
cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/server/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=db-only -DSCRIPTS=static -DMODULES=static;
make -j $(nproc) install;
screen -AmdS world ~/server/bin/worldserver;
screen -r world;'" > ~/.bash_aliases
source ~/.bashrc
现在我们可以保存/退出世界服务器,从 GitHub 中提取最新更改,构建更新的核心,并使用一个命令重新启动世界服务器。
更新 AzerothCore
acoreupdate
常见问题
Auth/Worldserver 甚至无法启动。
确保 acore SQL 用户的密码与配置中的密码匹配
登录成功但无法进入领域。
仔细检查领域地址。
值得了解的是本指南未涵盖的内容。
“set realmlist logon.server.com”的域名和 DNS 设置
Wordpress 注册站点和 acore-cms 插件 SOAP 连接。
使用 cron 和 rclone 自动将数据库备份到 Google Drive。
其他资源
托管于 GitHub Pages — 由Git-Wiki v2.8.6提供支持
评论区