一、概述:
事前準(zhǔn)備:一臺(tái)云服務(wù)器或搭載了centos操作系統(tǒng)的個(gè)人設(shè)備菲语,如虛擬機(jī)(本文假定你已經(jīng)了解并且購買了云服務(wù)器妄辩,并且對Linux操作命令有一定了解)
搭建方式:方式有兩種,我先講解一下使用官方的BDS如何搭建山上。再講解如何使用LiteLoaderBDS搭建(該方法支持所有Linux環(huán)境)眼耀。
我個(gè)人是推薦使用LiteLoaderBDS來搭建的,因?yàn)榭蓴U(kuò)展性更高佩憾,提供高度自定義的api哮伟,可自由安裝插件和自行編寫插件,支持熱更新插件妄帘,以及更好的社區(qū)環(huán)境楞黄,具體可參考LiteLoaderBDS。
若你想直接參考LiteLoaderBDS搭建方式抡驼,則直接查閱第五步鬼廓。
ps: 最近好像搭服務(wù)器的人越來越多了,我本想著這篇文章可以留作筆記供日后再想開服時(shí)作為參考的婶恼,可在我寫完這篇文章之后桑阶,我發(fā)現(xiàn)在我的服務(wù)器上出現(xiàn)了一系列異常的情況,比如內(nèi)存泄漏勾邦,服務(wù)端假死等蚣录。為了不讓后來的朋友們踩這個(gè)坑,我在此聲明一下:目前該文章的搭建方法在centos服務(wù)器中可能會(huì)存在嚴(yán)重的內(nèi)存泄露問題眷篇,即內(nèi)存只增不減直至爆滿崩服萎河,無法判斷該問題是由Liteloader加載器造成還是BDS官方服務(wù)端造成。我推薦各位直接在云服務(wù)器中安裝windows server操作系統(tǒng)來搭建該服務(wù)器,這將使你的服務(wù)器運(yùn)行起來更加穩(wěn)定虐杯。運(yùn)行過程中請避免使用鼠標(biāo)點(diǎn)擊cmd終端窗口玛歌,該操作將大概率會(huì)使你的服務(wù)器進(jìn)入假死狀態(tài)。如果在搭建過程中遇到問題歡迎在評論區(qū)留言擎椰,我看到后會(huì)第一時(shí)間解答支子。
二、下載官方服務(wù)器包:
- 進(jìn)入官網(wǎng)下載达舒,進(jìn)去之后有個(gè)彈窗值朋,告訴你去下網(wǎng)易國服版,我們點(diǎn)擊那個(gè)很隱秘的按鈕把他關(guān)掉巩搏。
image.png
往下翻選擇ubuntu server昨登,勾選協(xié)議,鼠標(biāo)右鍵點(diǎn)擊download按鈕贯底,復(fù)制下載地址:
image.png - 接下來使用遠(yuǎn)程連接工具連接云服務(wù)器丰辣,并執(zhí)行命令
dnf install wget -y
下載wget工具,等待安裝完成(dnf是從centos8開始就自帶的包管理工具禽捆,比yum更方便更好用笙什,會(huì)自動(dòng)下載安裝所屬依賴,若你的服務(wù)器為centos7胚想,則可手動(dòng)安裝dnf:yum install dnf -y
得湘,再執(zhí)行上述命令,若你不想用dnf顿仇,也可直接使用yum來安裝)。 - 創(chuàng)建文件夾
mkdir mcbe
摆马,進(jìn)入文件夾cd mcbe
- 接下來在這個(gè)文件夾中執(zhí)行:
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.18.12.01.zip
臼闻,這個(gè)地址是你剛才在官網(wǎng)所復(fù)制的地址。注意版本號(hào):1.18.12.01
對應(yīng)的是你游戲客戶端的版本號(hào)囤采,檢查自己客戶端的版本號(hào)述呐,你可以修改這個(gè)地址中對應(yīng)版本號(hào)與你客戶端版本號(hào)保持一致,這將下載對應(yīng)版本的服務(wù)器包蕉毯。
等待下載完成后解壓包:unzip bedrock-server-1.18.12.01.zip
乓搬,若沒有unzip工具,執(zhí)行dnf install unzip -y
安裝即可代虾。
三进肯、使用docker創(chuàng)建ubuntu容器運(yùn)行環(huán)境:
因官方包只支持在ubuntu環(huán)境下運(yùn)行,在centos下運(yùn)行會(huì)缺少公共依賴庫棉磨,當(dāng)然也可通過特殊方法解決這個(gè)問題江掩,但是太過麻煩,所以我們干脆使用docker容器創(chuàng)建運(yùn)行環(huán)境,這樣不僅解決了運(yùn)行環(huán)境的問題环形,也方便管理策泣,并且還可以在多個(gè)容器下創(chuàng)建多個(gè)服務(wù)器。
- 安裝docker:
dnf install docker-ce -y
- 啟動(dòng)docker服務(wù):
systemctl start docker
- 設(shè)置開機(jī)自啟動(dòng)docker服務(wù):
systemctl enable docker
- 拉取ubuntu鏡像:
docker pull ubuntu
- 查看鏡像:
[root@mihu ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 54c9d81cbb44 4 weeks ago 72.8MB
- 使用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)建一個(gè)容器萨咕。-d
意思是進(jìn)程守護(hù)模式默認(rèn)不會(huì)進(jìn)入容器,-it
打開標(biāo)準(zhǔn)輸入偽終端火本,這三個(gè)參數(shù)缺一不可危队。-p 6666:6666
表示將容器內(nèi)的服務(wù)器端口(后面的6666),映射到宿主機(jī)的6666端口(前面的6666)发侵,注意:這兩個(gè)端口號(hào)最好保持一致交掏,若不一致,即使宿主機(jī)映射端口被開放也將觸發(fā)bug(游戲內(nèi)服務(wù)器列表顯示延遲紅點(diǎn)刃鳄,但其實(shí)可以進(jìn)入服務(wù)器的bug盅弛,也不知道是不是bug,但為了這個(gè)問題我處理了很久)叔锐,Minecraft基巖版服務(wù)器使用的是udp協(xié)議故加上/udp
挪鹏。-v /mcbe:/mcbe
表示將宿主機(jī)中的mcbe文件夾(第二步創(chuàng)建的)映射(掛載)到容器中的mcbe文件夾中,方便我們直接在宿主機(jī)管理并配置服務(wù)器愉烙。若你需要?jiǎng)?chuàng)建多個(gè)服務(wù)器讨盒,則重復(fù)按照以上方法創(chuàng)建多個(gè)容器,然后將mcbe文件夾復(fù)制出多份步责,且名稱不重復(fù)即可返顺。多個(gè)容器映射不同的文件夾,即(mcbe1蔓肯,mcbe2)等遂鹊,具體請自行摸索,或查看相關(guān)文檔蔗包。
- 查看容器:
[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
- 進(jìn)入容器:
docker exec -it 5a9e86570a47 /bin/bash
image.png
四、修改配置并啟動(dòng)服務(wù)器:
- 更新包管理工具
apt update
- 安裝vim編輯器
apt install vim -y
- 安裝tmux會(huì)話管理器
apt install tmux -y
- 進(jìn)入mcbe文件夾中
cd mcbe
- 編輯服務(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
(這里的端口號(hào)需和容器開啟時(shí)設(shè)置的端口號(hào)一致秦躯,默認(rèn)為19132)開啟白名單:
allow-list=true
按下
Esc
并輸入:wq
保存退出
其他配置請查看mcbe文件夾下的bedrock_server_how_to.html
英文文檔,或百度其他裆装。
- 執(zhí)行
tmux
命令創(chuàng)建新會(huì)話 - 在該會(huì)話下執(zhí)行
LD_LIBRARY_PATH=. ./bedrock_server
命令啟動(dòng)服務(wù)器宦赠。若看到該打印信息表示啟動(dòng)成功:
image.png - 按下
<ctrl+b>
接著按d
退出該會(huì)話并保持后臺(tái)運(yùn)行陪毡,下次如果想進(jìn)入會(huì)話查看則直接執(zhí)行tmux attach
。 - 退出容器:
exit
(退出后容器仍然保持后臺(tái)運(yùn)行)勾扭。下次進(jìn)入還是使用命令:docker exec -it 5a9e86570a47 /bin/bash
一些關(guān)于tmux的其他命令:
- 新建會(huì)話并取名
tmux new -s <session-name>
- 查看會(huì)話列表:
tmux ls
- 殺死會(huì)話進(jìn)程:
tmux kill-session -t <session-name>
- 切換會(huì)話:
tmux switch -t <session-name>
- 重命名會(huì)話:
tmux rename-session -t <old-session-name> <new-session-name>
五毡琉、使用LiteLoaderBDS搭建方式:
搭建前提:已安裝docker
若未安裝請操作以下步驟:
- 安裝docker:
dnf install docker-ce -y
- 啟動(dòng)docker服務(wù):
systemctl start docker
- 設(shè)置開機(jī)自啟動(dòng)docker服務(wù):
systemctl enable docker
- 官方對LiteLoaderBDS的描述:
LiteLoaderBDS
是一個(gè)非官方的 Minecraft 服務(wù)端插件加載器,為基巖版官方服務(wù)端Bedrock Dedicated Server
(以下簡稱BDS)提供插件開發(fā)支持 和 插件加載服務(wù)妙色,彌補(bǔ)了官方行為包開發(fā)接口長期以來存在的一些不足桅滋。
- 拉取LiteLoader鏡像,執(zhí)行:
docker pull shrbox/liteloaderbds
身辨。
該鏡像占用2.6G的大小丐谋,下載下來有些費(fèi)勁,如果你跟我一樣下載速度很慢煌珊,則需要更換docker鏡像源号俐,如果你下載的速度夠快,則忽略以下步驟:- 執(zhí)行命令
vim /etc/docker/daemon.json
編輯daemon.json文件定庵,默認(rèn)該文件是不存在的吏饿,不過我們?nèi)匀豢梢詧?zhí)行該命令,因?yàn)関im會(huì)自動(dòng)幫我們創(chuàng)建這個(gè)文件蔬浙。 - 按下
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
命令官疲,就會(huì)發(fā)現(xiàn)下載速度蹭蹭往上漲了。
- 執(zhí)行命令
- 拉下來鏡像之后亮隙,創(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
注意:這個(gè)命令一個(gè)字母也不要錯(cuò)袁余。
-v
參數(shù)后面跟的是 liteloaderbds:/home/bds/bds
,表示創(chuàng)建具名掛載卷liteloaderbds
咱揍,映射到容器內(nèi)/home/bds/bds
路徑下,該路徑為服務(wù)器程序包所處位置棚饵,掛載后方便我們在宿主機(jī)上直接操作服務(wù)器的配置文件煤裙。
-
創(chuàng)建完成后,我們對掛載卷做一個(gè)軟連接噪漾。進(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ù)器文件了豹障。 -
在當(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
(這里的端口號(hào)需和容器開啟時(shí)設(shè)置的端口號(hào)一致昵仅,默認(rèn)為19132) - 按下
Esc
并輸入:wq
保存退出
- 若你希望玩困難模式冯事,則將:
修改完以后啟動(dòng)容器:
docker container start liteloader
-
其他的命令:
- 強(qiáng)制停止服務(wù)器(不推薦):
docker container stop liteloader
- 進(jìn)入控制臺(tái)(服務(wù)器終端):
docker attach liteloader
- 退出控制臺(tái):按下
Ctrl + P + Q
。如果按下Ctrl + C
累魔,服務(wù)器進(jìn)程將會(huì)終止摔笤。
- 強(qiáng)制停止服務(wù)器(不推薦):
插件的使用:在社區(qū)下載插件,并將插件直接放入服務(wù)器目錄下的
plugins
文件夾中即可垦写,然后執(zhí)行docker container restart liteloader
重啟容器即可吕世,這里我推薦一個(gè)提供插件的社區(qū)minebbs,可自行查找下載梯投。-
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
手動(dòng)檢查 LiteLoaderBDS 自動(dòng)更新
六晚伙、最后工作:
進(jìn)入自己的云服務(wù)器后臺(tái)=>防火墻配置頁吮龄,開放6666端口(我這里是騰訊云,阿里云應(yīng)該叫‘安全組’)
接下來進(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)載請注明出處喇嘱。