手把手教你在centos上搭建Minecraft(基岩版)服务器

一、概述:

  1. 事前准备:一台云服务器或搭载了centos操作系统的个人设备,如虚拟机(本文假定你已经了解并且购买了云服务器,并且对Linux操作命令有一定了解)

  2. 搭建方式:方式有两种,我先讲解一下使用官方的BDS如何搭建。再讲解如何使用LiteLoaderBDS搭建(该方法支持所有Linux环境)。
    我个人是推荐使用LiteLoaderBDS来搭建的,因为可扩展性更高,提供高度自定义的api,可自由安装插件和自行编写插件,支持热更新插件,以及更好的社区环境,具体可参考LiteLoaderBDS
    若你想直接参考LiteLoaderBDS搭建方式,则直接查阅第五步。

ps: 最近好像搭服务器的人越来越多了,我本想着这篇文章可以留作笔记供日后再想开服时作为参考的,可在我写完这篇文章之后,我发现在我的服务器上出现了一系列异常的情况,比如内存泄漏,服务端假死等。为了不让后来的朋友们踩这个坑,我在此声明一下:目前该文章的搭建方法在centos服务器中可能会存在严重的内存泄露问题,即内存只增不减直至爆满崩服,无法判断该问题是由Liteloader加载器造成还是BDS官方服务端造成。我推荐各位直接在云服务器中安装windows server操作系统来搭建该服务器,这将使你的服务器运行起来更加稳定。运行过程中请避免使用鼠标点击cmd终端窗口,该操作将大概率会使你的服务器进入假死状态。如果在搭建过程中遇到问题欢迎在评论区留言,我看到后会第一时间解答。

二、下载官方服务器包:

  1. 进入官网下载,进去之后有个弹窗,告诉你去下网易国服版,我们点击那个很隐秘的按钮把他关掉。
    image.png

    往下翻选择ubuntu server,勾选协议,鼠标右键点击download按钮,复制下载地址:
    image.png
  2. 接下来使用远程连接工具连接云服务器,并执行命令 dnf install wget -y下载wget工具,等待安装完成(dnf是从centos8开始就自带的包管理工具,比yum更方便更好用,会自动下载安装所属依赖,若你的服务器为centos7,则可手动安装dnf:yum install dnf -y,再执行上述命令,若你不想用dnf,也可直接使用yum来安装)。
  3. 创建文件夹mkdir mcbe,进入文件夹cd mcbe
  4. 接下来在这个文件夹中执行: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容器创建运行环境,这样不仅解决了运行环境的问题,也方便管理,并且还可以在多个容器下创建多个服务器。

  1. 安装docker:dnf install docker-ce -y
  2. 启动docker服务:systemctl start docker
  3. 设置开机自启动docker服务:systemctl enable docker
  4. 拉取ubuntu镜像:docker pull ubuntu
  5. 查看镜像:
[root@mihu ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       latest    54c9d81cbb44   4 weeks ago   72.8MB
  1. 使用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)等,具体请自行摸索,或查看相关文档
  1. 查看容器:
[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

  1. 进入容器:docker exec -it 5a9e86570a47 /bin/bash
    image.png

四、修改配置并启动服务器:

  1. 更新包管理工具apt update
  2. 安装vim编辑器 apt install vim -y
  3. 安装tmux会话管理器 apt install tmux -y
  4. 进入mcbe文件夹中 cd mcbe
  5. 编辑服务器配置文件 vim server.properties :按下i进入编辑模式,
    image.png
  • 若你希望玩困难模式,则将: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英文文档,或百度其他。

  1. 执行tmux命令创建新会话
  2. 在该会话下执行LD_LIBRARY_PATH=. ./bedrock_server命令启动服务器。若看到该打印信息表示启动成功:
    image.png
  3. 按下<ctrl+b>接着按d退出该会话并保持后台运行,下次如果想进入会话查看则直接执行 tmux attach
  4. 退出容器: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
若未安装请操作以下步骤:

  1. 安装docker:dnf install docker-ce -y
  2. 启动docker服务:systemctl start docker
  3. 设置开机自启动docker服务:systemctl enable docker
  • 官方对LiteLoaderBDS的描述:

LiteLoaderBDS 是一个非官方的 Minecraft 服务端插件加载器,为基岩版官方服务端Bedrock Dedicated Server(以下简称BDS)提供插件开发支持 和 插件加载服务,弥补了官方行为包开发接口长期以来存在的一些不足。

  1. 拉取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命令,就会发现下载速度蹭蹭往上涨了。
  2. 拉下来镜像之后,创建容器: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路径下,该路径为服务器程序包所处位置,挂载后方便我们在宿主机上直接操作服务器的配置文件。

  1. 创建完成后,我们对挂载卷做一个软连接。进入到属主目录,或其他你存放东西的目录。
    cd ~ ,然后执行命令:ln -s /var/lib/docker/volumes/liteloaderbds/_data/ ./liteloader,这样以后就可以直接在属主目录下对服务器文件进行操作,我们打印列表查看一下:

    image.png

    发现软连接创建成功,cd _data进入查看一下:
    image.png

    列表中就是该容器创建的服务器文件了。

  2. 在当前目录下编辑服务器配置文件 vim server.properties :按下i进入编辑模式:

    image.png

    • 若你希望玩困难模式,则将:difficulty=easy 修改为 difficulty=hard
    • 将挂机踢出修改为player-idle-timeout=0(无论挂机多久,不踢出,单位为分钟)
    • 最大线程修改为:max-threads=0(尽可能保持最大线程)
    • 修改服务器端口:server-port=6666(这里的端口号需和容器开启时设置的端口号一致,默认为19132)
    • 按下Esc并输入:wq保存退出
  3. 修改完以后启动容器:docker container start liteloader

  4. 其他的命令:

    • 强制停止服务器(不推荐):docker container stop liteloader
    • 进入控制台(服务器终端):docker attach liteloader
    • 退出控制台:按下 Ctrl + P + Q。如果按下 Ctrl + C,服务器进程将会终止。
  5. 插件的使用:在社区下载插件,并将插件直接放入服务器目录下的plugins文件夹中即可,然后执行docker container restart liteloader重启容器即可,这里我推荐一个提供插件的社区minebbs,可自行查找下载。

  6. 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端口(我这里是腾讯云,阿里云应该叫‘安全组’)

image.png
注意:协议为:UDP
接下来进入游戏,服务器=>添加服务器,服务器名称随便填,服务器地址:输入云服务器的公网ip,端口:6666,保存后若能成功进入游戏,则表示服务器搭建成功。

七、终端指令:

设置管理员:
op "玩家ID"

开启死亡不掉落:
gamerule keepInventory true

显示坐标:
gamerule showcoordinates true

加入白名单:
allowlist add 玩家名称

从白名单移除:
allowlist remove 玩家名称

每次删除或加入之后需重载白名单:
allowlist reload

八、总结:

在centos上搭建Minecraft基岩版服务器稍微麻烦了一些,Windows搭建的话直接把包下载下来执行可执行文件就ok了,其他相关信息、搭建方式、插件下载以及服务器的配置教程请前往社区查找:minebbs

有任何技术方面的问题或者想加入我的服务器一起玩耍的,都可以添加我的微信:bishu0913。

转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容