一、概述:
事前准备:一台云服务器或搭载了centos操作系统的个人设备,如虚拟机(本文假定你已经了解并且购买了云服务器,并且对Linux操作命令有一定了解)
搭建方式:方式有两种,我先讲解一下使用官方的BDS如何搭建。再讲解如何使用LiteLoaderBDS搭建(该方法支持所有Linux环境)。
我个人是推荐使用LiteLoaderBDS来搭建的,因为可扩展性更高,提供高度自定义的api,可自由安装插件和自行编写插件,支持热更新插件,以及更好的社区环境,具体可参考LiteLoaderBDS。
若你想直接参考LiteLoaderBDS搭建方式,则直接查阅第五步。
ps: 最近好像搭服务器的人越来越多了,我本想着这篇文章可以留作笔记供日后再想开服时作为参考的,可在我写完这篇文章之后,我发现在我的服务器上出现了一系列异常的情况,比如内存泄漏,服务端假死等。为了不让后来的朋友们踩这个坑,我在此声明一下:目前该文章的搭建方法在centos服务器中可能会存在严重的内存泄露问题,即内存只增不减直至爆满崩服,无法判断该问题是由Liteloader加载器造成还是BDS官方服务端造成。我推荐各位直接在云服务器中安装windows server操作系统来搭建该服务器,这将使你的服务器运行起来更加稳定。运行过程中请避免使用鼠标点击cmd终端窗口,该操作将大概率会使你的服务器进入假死状态。如果在搭建过程中遇到问题欢迎在评论区留言,我看到后会第一时间解答。
二、下载官方服务器包:
- 进入官网下载,进去之后有个弹窗,告诉你去下网易国服版,我们点击那个很隐秘的按钮把他关掉。
往下翻选择ubuntu server,勾选协议,鼠标右键点击download按钮,复制下载地址:
- 接下来使用远程连接工具连接云服务器,并执行命令
dnf install wget -y
下载wget工具,等待安装完成(dnf是从centos8开始就自带的包管理工具,比yum更方便更好用,会自动下载安装所属依赖,若你的服务器为centos7,则可手动安装dnf:yum install dnf -y
,再执行上述命令,若你不想用dnf,也可直接使用yum来安装)。 - 创建文件夹
mkdir mcbe
,进入文件夹cd mcbe
- 接下来在这个文件夹中执行:
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.18.12.01.zip
,这个地址是你刚才在官网所复制的地址。注意版本号:1.18.12.01
对应的是你游戏客户端的版本号,检查自己客户端的版本号,你可以修改这个地址中对应版本号与你客户端版本号保持一致,这将下载对应版本的服务器包。
等待下载完成后解压包:unzip bedrock-server-1.18.12.01.zip
,若没有unzip工具,执行dnf install unzip -y
安装即可。
三、使用docker创建ubuntu容器运行环境:
因官方包只支持在ubuntu环境下运行,在centos下运行会缺少公共依赖库,当然也可通过特殊方法解决这个问题,但是太过麻烦,所以我们干脆使用docker容器创建运行环境,这样不仅解决了运行环境的问题,也方便管理,并且还可以在多个容器下创建多个服务器。
- 安装docker:
dnf install docker-ce -y
- 启动docker服务:
systemctl start docker
- 设置开机自启动docker服务:
systemctl enable docker
- 拉取ubuntu镜像:
docker pull ubuntu
- 查看镜像:
[root@mihu ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 54c9d81cbb44 4 weeks ago 72.8MB
- 使用ubuntu镜像创建容器:
docker run -dit -p 6666:6666/udp -v /mcbe:/mcbe --restart=always ubuntu:latest /bin/bash
直接复制该命令并执行即可。
docker run
指创建一个容器。-d
意思是进程守护模式默认不会进入容器,-it
打开标准输入伪终端,这三个参数缺一不可。-p 6666:6666
表示将容器内的服务器端口(后面的6666),映射到宿主机的6666端口(前面的6666),注意:这两个端口号最好保持一致,若不一致,即使宿主机映射端口被开放也将触发bug(游戏内服务器列表显示延迟红点,但其实可以进入服务器的bug,也不知道是不是bug,但为了这个问题我处理了很久),Minecraft基岩版服务器使用的是udp协议故加上/udp
。-v /mcbe:/mcbe
表示将宿主机中的mcbe文件夹(第二步创建的)映射(挂载)到容器中的mcbe文件夹中,方便我们直接在宿主机管理并配置服务器。若你需要创建多个服务器,则重复按照以上方法创建多个容器,然后将mcbe文件夹复制出多份,且名称不重复即可。多个容器映射不同的文件夹,即(mcbe1,mcbe2)等,具体请自行摸索,或查看相关文档。
- 查看容器:
[root@mihu ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a9e86570a47 ubuntu:latest "/bin/bash" 23 seconds ago Up 21 seconds 0.0.0.0:6666->19132/udp, :::6666->19132/udp jovial_taussig
复制打印出来的容器id,我的是 5a9e86570a47
- 进入容器:
docker exec -it 5a9e86570a47 /bin/bash
四、修改配置并启动服务器:
- 更新包管理工具
apt update
- 安装vim编辑器
apt install vim -y
- 安装tmux会话管理器
apt install tmux -y
- 进入mcbe文件夹中
cd mcbe
- 编辑服务器配置文件
vim server.properties
:按下i
进入编辑模式,
若你希望玩困难模式,则将:
difficulty=easy
修改为difficulty=hard
将挂机踢出修改为
player-idle-timeout=0
(无论挂机多久,不踢出,单位为分钟)最大线程修改为:
max-threads=0
(0为尽可能保持最大线程)修改服务器端口:
server-port=6666
(这里的端口号需和容器开启时设置的端口号一致,默认为19132)开启白名单:
allow-list=true
按下
Esc
并输入:wq
保存退出
其他配置请查看mcbe文件夹下的bedrock_server_how_to.html
英文文档,或百度其他。
- 执行
tmux
命令创建新会话 - 在该会话下执行
LD_LIBRARY_PATH=. ./bedrock_server
命令启动服务器。若看到该打印信息表示启动成功:
- 按下
<ctrl+b>
接着按d
退出该会话并保持后台运行,下次如果想进入会话查看则直接执行tmux attach
。 - 退出容器:
exit
(退出后容器仍然保持后台运行)。下次进入还是使用命令:docker exec -it 5a9e86570a47 /bin/bash
一些关于tmux的其他命令:
- 新建会话并取名
tmux new -s <session-name>
- 查看会话列表:
tmux ls
- 杀死会话进程:
tmux kill-session -t <session-name>
- 切换会话:
tmux switch -t <session-name>
- 重命名会话:
tmux rename-session -t <old-session-name> <new-session-name>
五、使用LiteLoaderBDS搭建方式:
搭建前提:已安装docker
若未安装请操作以下步骤:
- 安装docker:
dnf install docker-ce -y
- 启动docker服务:
systemctl start docker
- 设置开机自启动docker服务:
systemctl enable docker
- 官方对LiteLoaderBDS的描述:
LiteLoaderBDS
是一个非官方的 Minecraft 服务端插件加载器,为基岩版官方服务端Bedrock Dedicated Server
(以下简称BDS)提供插件开发支持 和 插件加载服务,弥补了官方行为包开发接口长期以来存在的一些不足。
- 拉取LiteLoader镜像,执行:
docker pull shrbox/liteloaderbds
。
该镜像占用2.6G的大小,下载下来有些费劲,如果你跟我一样下载速度很慢,则需要更换docker镜像源,如果你下载的速度够快,则忽略以下步骤:- 执行命令
vim /etc/docker/daemon.json
编辑daemon.json文件,默认该文件是不存在的,不过我们仍然可以执行该命令,因为vim会自动帮我们创建这个文件。 - 按下
i
进入编辑模式,然后写入以下配置信息:{ "registry-mirrors": ["https://registry.docker-cn.com"] }
https://registry.docker-cn.com
为中国官方镜像源。
接下来按Esc
退出编辑模式,然后按下并输入:wq
然后回车,退出保存。 - 重启docker服务
systemctl restart docker
,接着再执行docker pull shrbox/liteloaderbds
命令,就会发现下载速度蹭蹭往上涨了。
- 执行命令
- 拉下来镜像之后,创建容器:
docker create --name liteloader -p 6666:6666/udp -v liteloaderbds:/home/bds/bds -i -t shrbox/liteloaderbds
[root@mihu _data]# docker create --name liteloader -p 6666:6666/udp -v liteloaderbds:/home/bds/bds -i -t shrbox/liteloaderbds
a02453350504ec839c1c4c5775abc4cf07778ecb4c4e243493394425cc79c72d
注意:这个命令一个字母也不要错。
-v
参数后面跟的是 liteloaderbds:/home/bds/bds
,表示创建具名挂载卷liteloaderbds
,映射到容器内/home/bds/bds
路径下,该路径为服务器程序包所处位置,挂载后方便我们在宿主机上直接操作服务器的配置文件。
-
创建完成后,我们对挂载卷做一个软连接。进入到属主目录,或其他你存放东西的目录。
cd ~
,然后执行命令:ln -s /var/lib/docker/volumes/liteloaderbds/_data/ ./liteloader
,这样以后就可以直接在属主目录下对服务器文件进行操作,我们打印列表查看一下:
发现软连接创建成功,cd _data
进入查看一下:
列表中就是该容器创建的服务器文件了。 -
在当前目录下编辑服务器配置文件
vim server.properties
:按下i
进入编辑模式:
- 若你希望玩困难模式,则将:
difficulty=easy
修改为difficulty=hard
- 将挂机踢出修改为
player-idle-timeout=0
(无论挂机多久,不踢出,单位为分钟) - 最大线程修改为:
max-threads=0
(尽可能保持最大线程) - 修改服务器端口:
server-port=6666
(这里的端口号需和容器开启时设置的端口号一致,默认为19132) - 按下
Esc
并输入:wq
保存退出
- 若你希望玩困难模式,则将:
修改完以后启动容器:
docker container start liteloader
-
其他的命令:
- 强制停止服务器(不推荐):
docker container stop liteloader
- 进入控制台(服务器终端):
docker attach liteloader
- 退出控制台:按下
Ctrl + P + Q
。如果按下Ctrl + C
,服务器进程将会终止。
- 强制停止服务器(不推荐):
插件的使用:在社区下载插件,并将插件直接放入服务器目录下的
plugins
文件夹中即可,然后执行docker container restart liteloader
重启容器即可,这里我推荐一个提供插件的社区minebbs,可自行查找下载。-
liteloader的一些终端命令:
ll list
列出 当前加载的所有插件列表ll load ./plugins/xxxx.js
热加载 位于指定路径的插件。路径是相对于 BDS 根目录的相对路径。ll unload xxxx.lua
热卸载 在插件列表中名为 xxxx.lua 的插件ll reload xxxx.dll
重新加载 在插件列表中名为 xxxx.dll 的插件ll reload
重新加载 插件列表中的所有插件ll version
输出当前安装的 LL 版本ll upgrade
手动检查 LiteLoaderBDS 自动更新
六、最后工作:
进入自己的云服务器后台=>防火墙配置页,开放6666端口(我这里是腾讯云,阿里云应该叫‘安全组’)
接下来进入游戏,服务器=>添加服务器,服务器名称随便填,服务器地址:输入云服务器的公网ip,端口:6666,保存后若能成功进入游戏,则表示服务器搭建成功。
七、终端指令:
设置管理员:
op "玩家ID"
开启死亡不掉落:
gamerule keepInventory true
显示坐标:
gamerule showcoordinates true
加入白名单:
allowlist add 玩家名称
从白名单移除:
allowlist remove 玩家名称
每次删除或加入之后需重载白名单:
allowlist reload
八、总结:
在centos上搭建Minecraft基岩版服务器稍微麻烦了一些,Windows搭建的话直接把包下载下来执行可执行文件就ok了,其他相关信息、搭建方式、插件下载以及服务器的配置教程请前往社区查找:minebbs。
有任何技术方面的问题或者想加入我的服务器一起玩耍的,都可以添加我的微信:bishu0913。
转载请注明出处。