CentOS搭建Minecraft基岩版服务器记录

Minecraft Java 版的服务器选择十分多样,除了官方的 Vanilla 服务器,还有 Bukkit,Spigot 等选择。如果需要增加功能,官方服可以安装 Mod,非官方服也可以安装插件。然而,Minecraft 基岩版的服务器却是截然不同的情况,第三方服务器支持安装插件,但却有诸如原生不支持生成实体的致命缺陷;官方服务器虽然很多功能还未完善,但至少能提供一个完整的游戏体验。根据官方的说法,Linux 版的基岩服务器只支持 Ubuntu 系统。不幸的是,我现有的服务器均为 CentOS 系统,最粗暴的办法是使用 Docker 运行 Ubuntu 来模拟环境,但这样拐弯抹角的方法让管理变得麻烦了。经过我的一番摸索,我找到一个可以让基岩版服务器在 CentOS 上运行的方法,记录如下。

首先,之所以 Minecraft 基岩版服务器不能在 CentOS 上运行,是因为 CentOS 缺少它需要的依赖库。网上有的方案选择手工安装软件包来补齐这些库,缺点是过程很麻烦,甚至还有覆盖系统自带依赖的风险;我参考的方案则是将缺失的依赖库复制到服务器目录下,再用 LD_PRELOAD 在运行时动态链接。然而,我依照方法操作之后,依然无法运行服务器,报错:

-bash: ./libnghttp2.so.14: No such file or directory

看来还是少了 libnghttp2 这个库。于是我从 Docker 的 Ubuntu 容器中复制了一份出来,服务器终于可以正常运行了。我整理了一下这些库,打包上传到了 GitHub

以下是完整的服务器安装教程:

新建目录:

mkdir bedrock-server
cd bedrock-server

下载、解压服务器:

wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.16.0.2.zip
yum install unzip -y
unzip bedrock-server-1.16.0.2.zip
rm -f bedrock-server-1.16.0.2.zip

下载、解压库:

wget https://github.com/tomzhu1024/bedrock-server-libraries/raw/master/packed.tar.gz
tar -xzvf packed.tar.gz
rm -f packed.tar.gz
chmod +x start.sh

启动服务器:

./start.sh