基岩版-我的世界服务器升级

作者20253周前 (08-04)其他51

1. 前言

PC端启动Minecraft Launcher后进入基岩版我的世界,如果有更新会自动更新到最新版本,更新后再连接自己部署的游戏服务器,则会无法连接并提示“主机使用的是较旧版本的《我的世界》。每个人都应该更新到最新版本的《我的世界》,然后重试。”

操作环境:

  • 本地系统:Windows

  • 服务器部署环境:Ubuntu 20.04 server 64bit

  • SSH远程连接工具:FinalShell

  • 升级版本:基岩版1.21.0.03 升级至 1.21.3.01

这次是第二次升级,上次升级是从1.20升级到1.21,在网上看了好几篇教程,有些写的比较简略,但总体操作下来也没出什么差错,但后续游戏版本肯定还会继续更新,写下这篇笔记主要是为了以后升级时自己能拿来参考。但既然都写下markdown了,干脆直接写详细点直接挂网上和个人wordpress上。因此,这边笔记会写的尽可能细,非程序员应该也能看懂怎么操作。

By the way,b站文本编辑器功能好少,markdown的代码块没有,连续多段引用好像也不适配,所以,阅读性可能较差。

cut-off

2. 停服备份

(1)首先通过以下命令查找MC服务器的PID(进程号),如下图中“./bedrock_server”就是基岩服务器进程,而“4165432”则是PID进程号。

 ps -ef | grep server

(2)通过以下命令 kill -9 PID,结束对应的服务

 # 注意,下面要用自己查找出来的 PID

 kill -9 4165432

此时再通过 ps -ef | grep server 查找会发现,原来的 ./bedrock_server 没显示了,说明游戏已经被停服了

(3)找到游戏服务器所在的路径,如我的游戏服务器文件放置在 /opt/mcbe 下

如果忘记自己的服务器部署的位置,可以尝试用以下命令查找,下图红框部分就是结果。

 # 从根目录开始搜索,查找 bedrock_server 文件

 find / -name "bedrock_server"   # 记得双引号

(4)使用 cp 命令备份整个游戏文件夹,这一部其实也可以不做,主要是为了待会覆盖文件时如果出现异常也不至于丢失数据。

 # 复制整个文件夹,副本文件夹名称为 mcbe_bak

 cp -r /opt/mcbe /opt/mcbe_bak

(5)重命名 mcbe 文件夹。解释:待会下载的新版本服务器文件将解压成为新的 mcbe 文件夹,仅将配置文件和地图从旧的 mcbe 文件夹中覆盖过去。

“换基底”:类似于我升级微信,仅升级了微信软件的功能,但我的个人数据则直接迁移到新版本的微信中。

# 回到 mcbe 所在的父级文件夹路径下

cd /opt 

 # 将 mcbe 文件夹 改名为 mcbe_old  (前提:原先不存在名为 mcbe_old的文件夹)

 mv mcbe mcbe_old

cut-off

3. 下载新版本服务器文件

(1)打开网址:https://www.minecraft.net/zh-hans/download/server/bedrock

会提示跳转到网易的网站,我们选择留在当前页面即可。

(2)复制下载链接。在下载按钮处右键,选择“复制链接地址”,操作流程如下图:

(3)在finalshell中 使用 wget 命令下载。(如果没有安装 wget 可以是使用 sudo apt install wget 命令安装。)

执行命令前记得进入用于存放游戏文件的目录下,如我游戏文件存放于 /opt 下的 mcbe 文件夹, 即应该先通过 cd /opt 命令进入和游戏文件夹所处的同一级。

 cd /opt

 # 下面的网址记得换掉,不然就下载成老版本的了。

 wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.21.3.01.zip

题外话:如果使用wget下载速度过慢,如何强行停止下载?停止下载后要干什么?后删除掉下载一半的文件:rm [文件名]如果上一步 wget 下载不了,也可以在本机上下载压缩包后上传到服务器后再解压。打钩,下载
将下载后的 zip文件拖动到服务器的文件列表中(部分SSH工具可能不支持)

(4)解压

由于下载下来的文件是 zip,这里要用到 unzip 命令,这里简单介绍一下。

语法:unzip [-d] 参数

  • -d,指定要解压去的位置

  • 参数,被解压的zip压缩包文件

由于我游戏文件存放在 mcbe 文件夹中,因此我要将 压缩包解压到这个文件夹里。但我们刚刚重命名了原来的 mcbe 文件夹为 mcbe_old,所以需要再创建一个新的 mcbe 文件夹。

 # 创建 新的 mcbe 文件夹

 mkdir /opt/mcbe

 # 解压 zip压缩包到 mcbe 文件夹内

 unzip bedrock-server-1.21.3.01.zip -d /opt/mcbe

解压完毕,文件夹内容如图:

cut-off

4. 迁移数据

接下来就该从旧的游戏服务器文件夹 mcbe_old 将 我们的配置,地图迁移到新的文件夹mcbe中了。

需要从 mcbe_old 迁移的文件和文件夹包括:

  • worlds (地图文件夹)

  • permissions.json(用户权限,设置了哪些人为管理员)

  • server.properties(游戏配置文件)

  • allowlist.json(白名单,哪些人可以进入服务器。如果在server.properties中设置了 allow-list=true 则需要同步,否则不需要)

  • behavior_packs(行为包,如果没有自己安装mod就不用)

  • resource_packs(资源包,如果没有自己安装mod就不用)

移动文件和文件夹还是会用到刚刚所说的 mv 命令,语法如下:

mv 参数1 参数2

  • 参数1:被移动的文件或文件夹

  • 参数2:要移动去的地方,如果目标不存在,则进行改名

执行命令:

 # 以下命令以 当前命令行位于 /opt 为例,可以用 pwd 命令查看目前命令行位于哪里

 mv mcbe_old/worlds mcbe/  # 解释:将地图文件夹从 mcbe_old/worlds 移动到 新的服务器文件夹 mcbe 下。下同

 mv mcbe_old/permissions.json mcbe/

 mv mcbe_old/server.properties mcbe/

 # 如果需要移动 behavior_packs 等其他文件和文件夹,仿照上面即可

cut-off

5. 启动服务器

(1)首先进入到游戏服务器文件夹内:

cd /opt/mcbe

(2)执行以下命令。该命令不会在前台输出内容,同时也不会占用前台输入,并将服务器的实时日志输出到 /opt/mcbe/log.txt 中。

nohup bash -c 'LD_LIBRARY_PATH=. ./bedrock_server' >> /opt/mcbe/log.txt 2>&1 &

执行后可以看到输出了一串数字,这个是PID,可以用于结束服务器,正如本文开头所提到的。

启动后日志内容:

(3)接下来就可以顺利进入服务器了

cut-off

6. 收尾

确认游戏服务器可以正常进入并运行后,就可以选择性删除不需要的旧版本数据和备份文件夹了:

rm -rf /opt/mcbe_bak

(2)删除已经解压完的压缩包

rm -f /opt/bedrock-server-1.21.3.01.zip


链接:本文链接

相关文章

一些网址搜集

Jack's 新学习基地https://nstudy.org/openwrt固件下载地址https://firmware-selector.openwrt.org/ 7~10代核显驱动:htt...

QNAP威联通NAS怎么通过HBS3设置定时备份计划至外部存储?

QNAP威联通NAS怎么通过HBS3设置定时备份计划至外部存储?

给大家介绍一个威联通nas中非常好用的备份工具,HBS3(也叫做hybrid backup sync),可以通过它,定期的将NAS中的数据备份至外部存储,包括NAS本机的其他存储文件夹、外接硬盘或者公...

zerotier搭建虚拟局域网,自建planet

zerotier搭建虚拟局域网,自建planet

https://github.com/xubiaolin/docker-zerotier-planet 项目地址基于该开源项目 自建planet节点,更快速,更安全本教程依据docker-z...

MacOS程序员配置清单

作为一个程序员,我来分享一下我的装机经历。网络工具原神,启动!安装原神并启动(上网助手),这个不细说。zerotier(局域网内网穿透)proxyman(抓包)homebrew官网 Mac所...

热点主机是 Windows,连接的电脑是 Ubuntu,两者互访

热点主机是 Windows,连接的电脑是 Ubuntu,两者互访

如果连接的电脑是 Ubuntu(或其他 Linux 系统),而热点主机是 Windows,要让两者互访(文件共享、Ping 等),需要额外调整 Ubuntu 的网络配置和共享设置。以下是具体步骤确保...

UNRAID 上部署多个 Streamlit 应用

✅ 部署多个 Streamlit 实例的关键点项目要做的事情示例(第二个实例)📁 应用目录每个应用要有独立的目录/mnt/user/appdata/streamlit_app2/📄 app.py 内容...