欢迎光临散文网 会员登陆 & 注册

我的世界基岩版服务器架设(Ubuntu Server)

2023-08-10 19:39 作者:花樱茉莉  | 我要投稿

        这篇文章将从零开始讲述搭建《我的世界-基岩版》服务器的过程及所有细节。我一贯认为,只有自己拥有的服务器,才是可靠的服务器。所以我便花了几天时间捣鼓了一下这个东西,写这篇文章的主要目的也算是一个备忘录,防止自己忘记。在开始前,我需要强调一下,这个基岩版服务端只支持X86/X64架构的CPU,并不支持ARM架构。换句话来说,这个服务端不能架设在树莓派上。以下是本文的目录

  • 选择服务器

  • 安装基岩版服务端

  • 基岩版服务器设置

  • 设置定时备份

  • 设置定时关机+备份

  • 指令及用法

选择服务器

    这个选择空间还是很大的,我主要是提一些建议。首先服务器的配置决定了同时在线人数和地图的加载速度。这里所说的配置包括了核心数,内存大小和服务器带宽。当然,配置越高越好(哈哈,有钱任性 ^_^)。不过,经实测,1个核心加1G内存(1核1G)也能流畅游玩,但有概率爆内存。在内存小的情况下,强烈推荐定时关机,这样相当于给服务器清一下内存。还有一点要注意,如果是租服务器,注意选择离自己物理位置近的服务器。这有助于降低游戏内的延迟,具体表现在地形的生成速度(游戏内传送后生成地形所需的时间)。

大部分人的服务器主要分为两种情况

  1. 家用PC

  2. 租借服务器VPS

    对于家用电脑,可以安装许多类型的系统,例如Windows,Windows Server,Linux类别的Ubuntu或Ubuntu server。如果使用Windows系统的话,那就太简单了。把文件从官网下载下来,点击运行就行了。推荐使用Windows10专业版。首先选择win10的原因是因为其相比win11更稳定。选择专业版是因为其带有一个非常好用的功能,那就是《远程桌面连接》。局域网环境下,延迟低的离谱。只有专业版的电脑才能成为受控方。可以使用家庭版系统通过这个软件远程控制安装专业版系统的服务器。接下来谈谈网络问题,家庭网络属于一个局域网,通常来讲无法在公网上访问到,这时候就需要通过端口映射的方法使服务器能被处在公网的玩家访问到。有些人说,家里的网络是动态ip (DHCP),需要用各种软件映射或者是申请公网ip。确实,这应该是有道理的,但我没研究过。一般来说,用家里的电脑开服务器一般是试一试和玩一玩的心态。如果要长时间的开服务器,那还是得租正规的服务器才行呀。所以说,对于这种家庭服务器,能在公网访问到一小段时间就够了。这就很简单了,运用路由器上的端口映射功能。比如小米路由器的端口转发。

端口转发

    这里有好几种可以选择。如果只有个别端口需要转发,就使用第一个添加规则。例如我的世界基岩版,就是udp协议19132端口,把这个映射出去就行了。可以在百度上搜ip地址,看到自己目前的公网ip。其实动态ip也不会变得太频繁。

    租借服务器所涉及到的范围就更加广泛了。首先要考虑到的是选择国内服务器还是国外服务器。国内服务器的优势是地理位置近,所以延迟低。但其缺点很明显,国内服务器十分昂贵,同规格比国外服务器贵多了,还有就是带宽。国内1Mbps的服务器的带宽简直匪夷所思。国外的服务器的往往延迟比较高,但其他都是优点了。首先,价格便宜,带宽量大管饱,500Mbps,1Gbps,2Gbps都很常见。平时能遇到的服务器提供商主要有腾讯云,阿里云,甲骨文(Orcale),亚马逊云等等。

    甲骨文有免费的服务器,但是很难申请到。往往在最后一步验证完信用卡后就出错。我的建议是一定要用真实的信息。不要挂代理。保证自己填写的地址与信用卡地址和ip都能对应上。还有,好像因为国内的薅羊毛的太狠了,用国内的卡基本上也很难申请到了。我失败了好几次,最后是用美国信用卡一次成功的。所以更推荐在海外的人尝试。

    注册时选的区域就是服务器的区域,免费账户不能同时开多个地区的服务器。如果注册成功了,那有这个账号就太香了。可以同时使用2台1核1G内存的AMD服务器(带宽:480Mbps)和1台4核24G内存的ARM服务器(带宽:2Gbps)或2台2核12G的ARM服务器(带宽:1Gbps)。我选的是日本大阪的区域,可能太火热的原因,ARM服务器没库存了。不过两台AMD服务器已经非常舒服了。对于这种服务器,Linux基本成为唯一的选择,毕竟Windows server吃性能不说,它本身也是收费的。

安装基岩版服务端

操作系统:Ubuntu Server 22.04.2 LTS

  1. 通过服务器提供商打开服务器,并安装Ubuntu系统。保存好私钥。(放行端口22)

  2. 电脑安装Tabby,这是开源的终端。可以在GitHub上下载。

  3. 通过SSH的方式连接服务器。根据服务器后台查看用户名,一般是ubuntu。

SSH连接

    4. 等待连接成功,准备工作完成。(下图是局域网连接我的虚拟机,示范用)

连接成功

    5. 获取管理员权限。

        1. sudo passwd root

        2. su root


获取管理员权限

    6. 更新软件包列表(sudo apt-get update

    7. 安装压缩软件与解压缩软件

        1. apt-get install zip(在本版本系统中会同时安装zip和unzip)

        2. apt-get install unzip(这个在本版本系统中是非必要的)

    8. 此版本系统自带screen(在关闭ssh后维持程序运行的软件),不需要额外安装。

        1. apt-get install screen (非必要)

    9. 安装服务端网络通信依赖库(apt-get install libcurl4-openssl-dev)重要,不可缺少!!

    10. 新建存放服务器的文件夹

        1. cd /home(打开home文件夹)

        2. mkdir minecraft(新建名称为minecraft的文件夹)

        3. cd ./minecraft(打开minecraft文件夹)

    11. 从官网下载基岩版服务器(wget 链接)链接获取方式如下

服务器链接

    12. 解压文件(unzip 文件名)可以通过ls查看文件名,或者直接按TAB,自动补全。

ls指令

    13. 如果需要删除压缩包,使用这个命令(rm ./文件名

    14. 防止关闭ssh就失效,新建名为minecraft的虚拟窗口(screen -S minecraft)大小写有影响

    15. 运行游戏(LD_LIBRARY_PATH=. ./bedrock_server)运行这个指令时要保证在正确的服务端目录下。

启动成功


    16. 如果无法连接,记得检查服务器运营商后台管理界面是否放行了19132的udp端口。或者是被系统防火墙拦截了(通常来说,新系统默认没开防火墙)。具体可参考后面的指令及用法。

    17. CTRL+ C关闭服务器

基岩版服务器设置

    服务器可以修改的主要有三个文件allowlist.json,permissions.json,server.properties。第一个是白名单,很少用到。第二个文件是给与权限,需要什么就加什么。第三个是修改服务器的参数,可以设置种子,服务器类型等参数,具体就让ChatGPT解释了,而且网上很容易查到。

permissions.json
server.properties

修改这些文件需要用到vim工具。

vim ./permissions.json 打开文件,刚打开可以复制黏贴,但不能编辑。按 i 进入编辑模式,按Esc退出编辑模式。

:wq 保存并退出 :q! 不保存并强制退出

设置定时备份

    作为服务器,这是定时自动备份是很重要的一部分。这个备份方法适用于内存大,不关服务器的热备份。脚本我参考了网上的教程并自己做了一些修改。

  1. “崭新开始” (sudo reboot

  2. 进入管理员账户 (su root

  3. 打开服务端文件夹(cd /home/minecraft

  4. 新建sh结尾的脚本文件(vim autoBackup.sh

  5. 黏贴脚本

mkdir -p /home/minecraft/backup

find /home/minecraft/backup -mtime +14 -type f -name "*.zip" -exec rm -rf {} \; 

sleep 2

mkdir -p /home/minecraft/backup/temp        

echo 'mkdir done' 

mkdir -p /home/minecraft/backup/temp/mcserver

cp -r /home/minecraft/worlds/* /home/minecraft/backup/temp/mcserver

sleep 2

echo 'copy done'

zip -q -r /home/minecraft/backup/mcserver$(date +%Y%m%d).zip /home/minecraft/backup/temp/mcserver #可能显示两行,但这是zip命令的一部分,同一行

echo 'zip done' 

sleep 2

rm -rf /home/minecraft/backup/temp

echo 'all done'

exit

具体每行意思如下,偷懒了,由ChatGPT为我们讲解。

autoBackup.sh讲解
autoBackup.sh

    6. 设置一下格式,不然之后可能出错。(:set fileformat=unix

    7. 保存并退出(:wq

    8. 给脚本赋予运行权限(chmod +x autoBackup.sh

    9. 测试一下(./autoBackup.sh)应该出现以下画面,再用cd命令去看看是否有zip生成。如果是我推荐的Tabby软件,可以去软件右上角的SFTP直接看看有没有生成这个备份文件。

autoBackup运行
查看文件

    10. 成功以后,开始设定定时任务。

    11. 打开定时任务,选1(crontab -e

    12. 输入命令,即每天三点启动脚本

3点启动

    13. 按F2,Y保存,Enter退出


设置定时关机+备份

    在服务器内存不充裕的情况下,定时关机是很有必要的。因为关机就会涉及到开机,需要重启基岩服务端。我所设想的方案是让服务器定时关机,在重启后自动运行脚本,执行备份加启动服务端。以下步骤承接《基岩版服务器设置》结束的那一步。

  1. “崭新开始” (sudo reboot

  2. 进入管理员账户 (su root

  3. 打开服务端文件夹(cd /home/minecraft

  4. 新建sh结尾的脚本文件(vim autorun.sh

  5. 黏贴脚本

mkdir -p /home/minecraft/backup

find /home/minecraft/backup -mtime +14 -type f -name "*.zip" -exec rm -rf {} \;

sleep 2

mkdir -p /home/minecraft/backup/temp

echo 'mkdir done'

mkdir -p /home/minecraft/backup/temp/mcserver

cp -r /home/minecraft/worlds/* /home/minecraft/backup/temp/mcserver

sleep 2

echo 'copy done'

zip -q -r /home/minecraft/backup/mcserver$(date +%Y%m%d).zip /home/minecraft/backup/temp/mcserver

echo 'zip done'

sleep 2

rm -rf /home/minecraft/backup/temp

echo 'backup finished'


sleep 2

screen -dmS minecraft

sleep 2

screen -x -S minecraft -p 0 -X stuff "cd /home/minecraft"

screen -x -S minecraft -p 0 -X stuff '\n'

screen -x -S minecraft -p 0 -X stuff "sudo LD_LIBRARY_PATH=. ./bedrock_server"

screen -x -S minecraft -p 0 -X stuff '\n'

echo 'server opened'

echo 'all done'

exit 0


autorun.sh

同样,由ChatGPT为我们讲解。

autorun.sh讲解

    6. 设置一下格式,不然之后可能出错。(:set fileformat=unix

    7. 保存并退出(:wq

    8. 给脚本赋予运行权限(chmod +x autorun.sh

    9. 测试一下(./autorun.sh

    10. 如果产生备份文件并且启动了服务端就成功了。可通过top指令查看是否真的成功了。

    11. 设置定时关机-打开脚本(crontab -e

    12. 键入以下代码,3点关机,启动时打开脚本。

定时关机打开脚本

    13. 按F2,Y保存,Enter退出

    14. 可以关机重启,验证脚本是否自动执行。(不登录SSH干预的情况下,尝试用手机或电脑我的世界连接服务器,验证服务器是否已经启动)


指令及用法

这里简单介绍一下一些常用指令或快捷方式。

Tabby终端的一些技巧

  1. 用方向键能自动填以前输入过的指令

  2. 右键是黏贴

  3. 右上角的SFTP能看到文件夹结构

Ubuntu server一些命令及技巧

  1. Ctrl+C 关闭当前程序

  2. Ctrl+Z 隐藏当前程序

  3. sudo passwd root 设置root账户密码

  4. su root 切换成root用户

  5. su ubuntu 切换成名为ubuntu的用户

  6. top 展示正在运行的程序(本身也是程序,用技巧1关闭)

  7. kill <pid> 杀死进程

  8. sudo ufw enable 开启防火墙

  9. sudo ufw reload 重启防火墙

  10. sudo ufw status 查看防火墙状态

  11. sudo ufw disable 关闭防火墙

  12. sudo ufw allow 22 允许22号端口

  13. sudo ufw allow 22/tcp 允许22号端口的tcp协议

  14. sudo ufw delete allow 22 关闭22号端口

  15. sudo reboot 重启

  16. cd .. 返回上一层目录

  17. cd /home 绝对路径打开home文件夹

  18. cd ./ubuntu 相对路径打开ubuntu文件夹,以当前的目录为起点打开这个路径的文件夹

  19. rm 路径    删除一个文件

  20. rm -rf 路径    删除一个文件夹及里面所有东西

  21. mkdir 路径    新建一个文件夹

  22. touch 文件名    新建一个文件

  23. vim 文件名    打开或新建,并编辑这个文件

    1. 刚进入允许复制黏贴

    2. i 进入编辑模式,无法复制黏贴

    3. Esc 退出编辑模式

    4. :wq    保存并退出

    5. :wq!    保存并强制退出

    6. :q    退出

    7. :q!    强制退出

    8. :set fileformat=unix    改格式,当脚本在Windows写好拖入Linux中时,这个很重要。

    24. crontab -e    打开定时任务

    25. crontab -l    列出定时任务

    26. crontab -r    关闭定时任务

    27. F2 退出crontab编辑页

    28. screen -S 名称    打开名为《名称》的窗口

    29. screen -ls    显示当前所有窗口

    30. screen -r 名称    恢复窗口

    31. screen中输入exit是关闭screen

    32. chmod +x 文件名    赋予一个文件运行权限,让这个文件变为可执行文件。

    33. cp 源文件 目标文件夹    复制文件

    34. mv 源文件 目标文件夹    移动文件

    35. ls 展示当前文件夹所有文件

参考资料

  1.  Linux 文件与目录管理 https://www.runoob.com/linux/linux-file-content-manage.html

  2. ubuntu防火墙ufw使用教程 https://www.cnblogs.com/zqifa/p/ubuntu-ufw-1.html

  3. Linux Crontab 定时任务 https://www.runoob.com/w3cnote/linux-crontab-tasks.html

  4. 一 搭建服务器 - Minecraft 基岩版服务器搭建 https://zhuanlan.zhihu.com/p/379638625?utm_id=0

  5. Ubuntu-vim 命令 https://blog.csdn.net/weixin_45774972/article/details/121231190

  6. Linux使用:screen https://nscc.mrzhenggang.com/screen/#%E8%83%8C%E6%99%AF

  7. MC-BE基岩版服务器搭建与日常维护 https://www.cnblogs.com/xzajyjs/p/15418260.html

  8. sleep: invalid time interval ‘1s\r’ https://blog.csdn.net/taw19960426/article/details/109629004

  9. Linux下设置/查看/取消定时任务 https://blog.csdn.net/linhai1028/article/details/80261700

  10. crontab用法与实例 https://www.linuxprobe.com/how-to-crontab.html

  11. Ubuntu自启动Screen并执行命令 https://blog.csdn.net/qq_41424132/article/details/119939024

  12. Linux chmod命令 https://www.runoob.com/linux/linux-comm-chmod.html

AI绘画真厉害!!

美图一张(Pixiv ID 110629353)


我的世界基岩版服务器架设(Ubuntu Server)的评论 (共 条)

分享到微博请遵守国家法律