0%

基于 Ubuntu 18.04 搭建 Minecraft Bedrock(我的世界基岩版)服务器

在B站up主Gabbie的粉丝群里帮水友们搭建了一个我的世界基岩版服务器,可以让大家的PC、手机等多个平台一起联机。
搭建这种非私人、游玩的人数稍微多一些(虽然也就十来个)的游戏服务器和私人、一两个朋友一起玩的服务器是不一样的,更需要注重性能优化、崩溃自动重启、自动备份等维护方面的工作。
这篇文章也会记录这部分。

下面记录一下搭建服务器的过程。

Minecraft Bedrock(我的世界基岩版)服务器安装

首先安装必要的工具

1
2
sudo apt update
sudo apt install wget screen unzip
  • wget:一般 ubuntu 服务器都自带,用于下载文件。
  • screen:用于后台运行服务。
  • unzip:用于解压服务器文件。

接下来下载并安装服务器:
首先,进入minecraft基岩版下载官网
bedrock官网

因为使用 Ubuntu 服务器,因此要选择右侧的下载,点击同意用户须知后 Download 按键变为绿色,
右键复制链接地址(写这篇文章时最新版本为1.18.32,因此使用该版本作为例子),然后打开服务器命令行

1
2
3
4
5
6
7
8
9
10
# 新建服务器文件夹
mkdir Minecraft_BE

cd Minecraft_BE

# 下载服务器文件压缩包
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.18.32.02.zip

# 解压服务器文件
unzip bedrock-server-1.18.32.02.zip

然后,可以选择修改文件夹内的 server.properties 文件来更改服务器的配置,这里挑选几个配置进行说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 服务器名,随意
server-name=The Gabbie Gang

# 游戏模式和难度
gamemode=survival
difficulty=hard

# 是否允许作弊,注意一旦开启,该世界将永远不能获得成就
allow-cheats=false

# 最大玩家数
max-players=30

# 是否开启白名单模式,开启后要手动添加可加入的用户
allow-list=true

# 端口
server-port=19132

# 玩家持续挂机被踢出的时间,设置为0后可以一直挂机
player-idle-timeout=0

至此,服务器已经安装完成,接下来是可选的存档转移工作。
服务器文件夹内 worlds 文件夹内即为存档文件,默认名字为 “Bedrock level”,
将其他基岩版服务器的 “Bedrock level” 文件夹拷贝到该文件夹下覆盖就完成了存档转移。

服务器文件夹内的 allowlist.json 和 permissions.json 也可以一并转移,分别对应白名单和玩家权限。

自动化启动与维护

自动化启动依赖于 systemctl ,首先编写配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
sudo vim /etc/systemd/system/minecraft_BE@.service

#以下为写在 minecraft_BE@.service 文件中的内容
[Unit]
Description=Minecraft Bedrock Server: %i
After=network.target

[Service]
WorkingDirectory=/home/xulouzhe/Minecraft_BE

User=xulouzhe
Group=xulouzhe

Restart=always

ExecStart=/usr/bin/screen -L -Logfile /home/xulouzhe/Log/MC_BE.log -DmS mc_be-%i ./bedrock_server

ExecStop=/usr/bin/screen -p 0 -S mc_be-survival -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS. SAVING ALL MAPS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc_be-survival -X eval 'stuff "save-all"\015'
ExecStop=/usr/bin/screen -p 0 -S mc_be-survival -X eval 'stuff "stop"\015'


[Install]
WantedBy=multi-user.target

注意!!!文件中的 /home/xulouzhe/Minecraft_BE 要改成你的服务器文件所在文件夹,
/home/xulouzhe/Log/MC_BE.log 要改成你想存储的日志文件地址;xulouzhe要改成你的用户和群组名。

然后启动服务器并配置开机自动运行

1
2
3
4
5
# 运行服务器
sudo systemctl start minecraft_BE@survival

# 设置自动启动
sudo systemctl enable minecraft_BE@survival

然后就可以连接服务器游玩了!(注意关闭服务器防火墙对应端口)
接下来是自动备份和定时重启服务器的设置,需要修改具体的路径,时间配置可以自学cron命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 打开 Linux 定时任务编辑页面
crontab -e

# 在其中加入如下命令
# 每天凌晨3:55自动存档,具体路径和时间需要修改
55 3 * * * tar -C /home/xulouzhe/Minecraft_BE/worlds/ -zcf /home/xulouzhe/Backup/MC_BE_Backup.tar.gz 'Bedrock level/'

# 重启需要sudo权限,因此使用sudo运行
sudo crontab -e

# 在其中加入如下命令
# 周一凌晨4:00重启服务器
0 4 * * 1 systemctl restart minecraft_BE@survival

控制台命令使用

输入以下命令进入服务器控制台

1
screen -r mc_be-survival

然后可以输入控制台命令(开头不需要斜杠),完成后按 ctrl a + d 退出控制台。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 添加用户为管理员
op 用户名

# 添加用户名至白名单
whitelist add 用户名

# 修改单用户游戏模式为创造,可以用用于造命令方块且成就不会无效
gamemode c 用户名

# 修改单用户游戏模式为生存
gamemode s 用户名

# 清除地上的方块
kill @e[type=item]

至此,服务器搭建全部完成。