手把手教你在centos上搭建Minecraft(基巖版)服務(wù)器

一、概述:

  1. 事前準(zhǔn)備:一臺云服務(wù)器或搭載了centos操作系統(tǒng)的個人設(shè)備,如虛擬機(jī)(本文假定你已經(jīng)了解并且購買了云服務(wù)器,并且對Linux操作命令有一定了解)

  2. 搭建方式:方式有兩種,我先講解一下使用官方的BDS如何搭建。再講解如何使用LiteLoaderBDS搭建(該方法支持所有Linux環(huán)境)。
    我個人是推薦使用LiteLoaderBDS來搭建的,因為可擴(kuò)展性更高,提供高度自定義的api,可自由安裝插件和自行編寫插件,支持熱更新插件,以及更好的社區(qū)環(huán)境,具體可參考LiteLoaderBDS。
    若你想直接參考LiteLoaderBDS搭建方式,則直接查閱第五步。

ps: 最近好像搭服務(wù)器的人越來越多了,我本想著這篇文章可以留作筆記供日后再想開服時作為參考的,可在我寫完這篇文章之后,我發(fā)現(xiàn)在我的服務(wù)器上出現(xiàn)了一系列異常的情況,比如內(nèi)存泄漏,服務(wù)端假死等。為了不讓后來的朋友們踩這個坑,我在此聲明一下:目前該文章的搭建方法在centos服務(wù)器中可能會存在嚴(yán)重的內(nèi)存泄露問題,即內(nèi)存只增不減直至爆滿崩服,無法判斷該問題是由Liteloader加載器造成還是BDS官方服務(wù)端造成。我推薦各位直接在云服務(wù)器中安裝windows server操作系統(tǒng)來搭建該服務(wù)器,這將使你的服務(wù)器運行起來更加穩(wěn)定。運行過程中請避免使用鼠標(biāo)點擊cmd終端窗口,該操作將大概率會使你的服務(wù)器進(jìn)入假死狀態(tài)。如果在搭建過程中遇到問題歡迎在評論區(qū)留言,我看到后會第一時間解答。

二、下載官方服務(wù)器包:

  1. 進(jìn)入官網(wǎng)下載,進(jìn)去之后有個彈窗,告訴你去下網(wǎng)易國服版,我們點擊那個很隱秘的按鈕把他關(guān)掉。
    image.png

    往下翻選擇ubuntu server,勾選協(xié)議,鼠標(biāo)右鍵點擊download按鈕,復(fù)制下載地址:
    image.png
  2. 接下來使用遠(yuǎn)程連接工具連接云服務(wù)器,并執(zhí)行命令 dnf install wget -y下載wget工具,等待安裝完成(dnf是從centos8開始就自帶的包管理工具,比yum更方便更好用,會自動下載安裝所屬依賴,若你的服務(wù)器為centos7,則可手動安裝dnf:yum install dnf -y,再執(zhí)行上述命令,若你不想用dnf,也可直接使用yum來安裝)。
  3. 創(chuàng)建文件夾mkdir mcbe,進(jìn)入文件夾cd mcbe
  4. 接下來在這個文件夾中執(zhí)行:wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.18.12.01.zip,這個地址是你剛才在官網(wǎng)所復(fù)制的地址。注意版本號:1.18.12.01 對應(yīng)的是你游戲客戶端的版本號,檢查自己客戶端的版本號,你可以修改這個地址中對應(yīng)版本號與你客戶端版本號保持一致,這將下載對應(yīng)版本的服務(wù)器包。
    等待下載完成后解壓包:unzip bedrock-server-1.18.12.01.zip,若沒有unzip工具,執(zhí)行dnf install unzip -y安裝即可。

三、使用docker創(chuàng)建ubuntu容器運行環(huán)境:

因官方包只支持在ubuntu環(huán)境下運行,在centos下運行會缺少公共依賴庫,當(dāng)然也可通過特殊方法解決這個問題,但是太過麻煩,所以我們干脆使用docker容器創(chuàng)建運行環(huán)境,這樣不僅解決了運行環(huán)境的問題,也方便管理,并且還可以在多個容器下創(chuàng)建多個服務(wù)器。

  1. 安裝docker:dnf install docker-ce -y
  2. 啟動docker服務(wù):systemctl start docker
  3. 設(shè)置開機(jī)自啟動docker服務(wù):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鏡像創(chuàng)建容器:
    docker run -dit -p 6666:6666/udp -v /mcbe:/mcbe --restart=always ubuntu:latest /bin/bash
    直接復(fù)制該命令并執(zhí)行即可。
  • docker run指創(chuàng)建一個容器。
  • -d意思是進(jìn)程守護(hù)模式默認(rèn)不會進(jìn)入容器,-it打開標(biāo)準(zhǔn)輸入偽終端,這三個參數(shù)缺一不可。
  • -p 6666:6666表示將容器內(nèi)的服務(wù)器端口(后面的6666),映射到宿主機(jī)的6666端口(前面的6666),注意:這兩個端口號最好保持一致,若不一致,即使宿主機(jī)映射端口被開放也將觸發(fā)bug(游戲內(nèi)服務(wù)器列表顯示延遲紅點,但其實可以進(jìn)入服務(wù)器的bug,也不知道是不是bug,但為了這個問題我處理了很久),Minecraft基巖版服務(wù)器使用的是udp協(xié)議故加上/udp。
  • -v /mcbe:/mcbe表示將宿主機(jī)中的mcbe文件夾(第二步創(chuàng)建的)映射(掛載)到容器中的mcbe文件夾中,方便我們直接在宿主機(jī)管理并配置服務(wù)器。若你需要創(chuàng)建多個服務(wù)器,則重復(fù)按照以上方法創(chuàng)建多個容器,然后將mcbe文件夾復(fù)制出多份,且名稱不重復(fù)即可。多個容器映射不同的文件夾,即(mcbe1,mcbe2)等,具體請自行摸索,或查看相關(guān)文檔。
  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

復(fù)制打印出來的容器id,我的是 5a9e86570a47

  1. 進(jìn)入容器:docker exec -it 5a9e86570a47 /bin/bash
    image.png

四、修改配置并啟動服務(wù)器:

  1. 更新包管理工具apt update
  2. 安裝vim編輯器 apt install vim -y
  3. 安裝tmux會話管理器 apt install tmux -y
  4. 進(jìn)入mcbe文件夾中 cd mcbe
  5. 編輯服務(wù)器配置文件 vim server.properties :按下i進(jìn)入編輯模式,
    image.png
  • 若你希望玩困難模式,則將:difficulty=easy 修改為 difficulty=hard

  • 將掛機(jī)踢出修改為player-idle-timeout=0(無論掛機(jī)多久,不踢出,單位為分鐘)

  • 最大線程修改為:max-threads=0(0為盡可能保持最大線程)

  • 修改服務(wù)器端口:server-port=6666(這里的端口號需和容器開啟時設(shè)置的端口號一致,默認(rèn)為19132)

  • 開啟白名單:allow-list=true

  • 按下Esc并輸入:wq保存退出
    其他配置請查看mcbe文件夾下的bedrock_server_how_to.html英文文檔,或百度其他。

  1. 執(zhí)行tmux命令創(chuàng)建新會話
  2. 在該會話下執(zhí)行LD_LIBRARY_PATH=. ./bedrock_server命令啟動服務(wù)器。若看到該打印信息表示啟動成功:
    image.png
  3. 按下<ctrl+b>接著按d退出該會話并保持后臺運行,下次如果想進(jìn)入會話查看則直接執(zhí)行 tmux attach。
  4. 退出容器:exit(退出后容器仍然保持后臺運行)。下次進(jìn)入還是使用命令:docker exec -it 5a9e86570a47 /bin/bash

一些關(guān)于tmux的其他命令:

  • 新建會話并取名 tmux new -s <session-name>
  • 查看會話列表: tmux ls
  • 殺死會話進(jìn)程: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服務(wù):systemctl start docker
  3. 設(shè)置開機(jī)自啟動docker服務(wù):systemctl enable docker
  • 官方對LiteLoaderBDS的描述:

LiteLoaderBDS 是一個非官方的 Minecraft 服務(wù)端插件加載器,為基巖版官方服務(wù)端Bedrock Dedicated Server(以下簡稱BDS)提供插件開發(fā)支持 和 插件加載服務(wù),彌補(bǔ)了官方行為包開發(fā)接口長期以來存在的一些不足。

  1. 拉取LiteLoader鏡像,執(zhí)行: docker pull shrbox/liteloaderbds。
    該鏡像占用2.6G的大小,下載下來有些費勁,如果你跟我一樣下載速度很慢,則需要更換docker鏡像源,如果你下載的速度夠快,則忽略以下步驟:
    • 執(zhí)行命令 vim /etc/docker/daemon.json編輯daemon.json文件,默認(rèn)該文件是不存在的,不過我們?nèi)匀豢梢詧?zhí)行該命令,因為vim會自動幫我們創(chuàng)建這個文件。
    • 按下i進(jìn)入編輯模式,然后寫入以下配置信息:
      {
        "registry-mirrors": ["https://registry.docker-cn.com"]
      }
      
      https://registry.docker-cn.com為中國官方鏡像源。
      接下來按Esc退出編輯模式,然后按下并輸入:wq然后回車,退出保存。
    • 重啟docker服務(wù)systemctl restart docker,接著再執(zhí)行docker pull shrbox/liteloaderbds命令,就會發(fā)現(xiàn)下載速度蹭蹭往上漲了。
  2. 拉下來鏡像之后,創(chuàng)建容器: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 參數(shù)后面跟的是 liteloaderbds:/home/bds/bds,表示創(chuàng)建具名掛載卷liteloaderbds,映射到容器內(nèi)/home/bds/bds路徑下,該路徑為服務(wù)器程序包所處位置,掛載后方便我們在宿主機(jī)上直接操作服務(wù)器的配置文件。

  1. 創(chuàng)建完成后,我們對掛載卷做一個軟連接。進(jìn)入到屬主目錄,或其他你存放東西的目錄。
    cd ~ ,然后執(zhí)行命令:ln -s /var/lib/docker/volumes/liteloaderbds/_data/ ./liteloader,這樣以后就可以直接在屬主目錄下對服務(wù)器文件進(jìn)行操作,我們打印列表查看一下:

    image.png

    發(fā)現(xiàn)軟連接創(chuàng)建成功,cd _data進(jìn)入查看一下:
    image.png

    列表中就是該容器創(chuàng)建的服務(wù)器文件了。

  2. 在當(dāng)前目錄下編輯服務(wù)器配置文件 vim server.properties :按下i進(jìn)入編輯模式:

    image.png

    • 若你希望玩困難模式,則將:difficulty=easy 修改為 difficulty=hard
    • 將掛機(jī)踢出修改為player-idle-timeout=0(無論掛機(jī)多久,不踢出,單位為分鐘)
    • 最大線程修改為:max-threads=0(盡可能保持最大線程)
    • 修改服務(wù)器端口:server-port=6666(這里的端口號需和容器開啟時設(shè)置的端口號一致,默認(rèn)為19132)
    • 按下Esc并輸入:wq保存退出
  3. 修改完以后啟動容器:docker container start liteloader

  4. 其他的命令:

    • 強(qiáng)制停止服務(wù)器(不推薦):docker container stop liteloader
    • 進(jìn)入控制臺(服務(wù)器終端):docker attach liteloader
    • 退出控制臺:按下 Ctrl + P + Q。如果按下 Ctrl + C,服務(wù)器進(jìn)程將會終止。
  5. 插件的使用:在社區(qū)下載插件,并將插件直接放入服務(wù)器目錄下的plugins文件夾中即可,然后執(zhí)行docker container restart liteloader重啟容器即可,這里我推薦一個提供插件的社區(qū)minebbs,可自行查找下載。

  6. liteloader的一些終端命令:

    • ll list
      列出 當(dāng)前加載的所有插件列表

    • ll load ./plugins/xxxx.js
      熱加載 位于指定路徑的插件。路徑是相對于 BDS 根目錄的相對路徑。

    • ll unload xxxx.lua
      熱卸載 在插件列表中名為 xxxx.lua 的插件

    • ll reload xxxx.dll
      重新加載 在插件列表中名為 xxxx.dll 的插件

    • ll reload
      重新加載 插件列表中的所有插件

    • ll version
      輸出當(dāng)前安裝的 LL 版本

    • ll upgrade
      手動檢查 LiteLoaderBDS 自動更新

六、最后工作:

進(jìn)入自己的云服務(wù)器后臺=>防火墻配置頁,開放6666端口(我這里是騰訊云,阿里云應(yīng)該叫‘安全組’)

image.png
注意:協(xié)議為:UDP
接下來進(jìn)入游戲,服務(wù)器=>添加服務(wù)器,服務(wù)器名稱隨便填,服務(wù)器地址:輸入云服務(wù)器的公網(wǎng)ip,端口:6666,保存后若能成功進(jìn)入游戲,則表示服務(wù)器搭建成功。

七、終端指令:

設(shè)置管理員:
op "玩家ID"

開啟死亡不掉落:
gamerule keepInventory true

顯示坐標(biāo):
gamerule showcoordinates true

加入白名單:
allowlist add 玩家名稱

從白名單移除:
allowlist remove 玩家名稱

每次刪除或加入之后需重載白名單:
allowlist reload

八、總結(jié):

在centos上搭建Minecraft基巖版服務(wù)器稍微麻煩了一些,Windows搭建的話直接把包下載下來執(zhí)行可執(zhí)行文件就ok了,其他相關(guān)信息、搭建方式、插件下載以及服務(wù)器的配置教程請前往社區(qū)查找:minebbs。

有任何技術(shù)方面的問題或者想加入我的服務(wù)器一起玩耍的,都可以添加我的微信:bishu0913。

轉(zhuǎn)載請注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容