快轉到主要內容

Linux系統如何以Docker架設Minecraft基岩版伺服器 (Bedrock Dedicated Server)

Linux系統 Self-hosting自架 Minecraft Bedrock Docker
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

為了方便玩家建立伺服器,Mojang推出了Minecraft基岩版官方伺服器軟體「Bedrock Dedicated Server」,簡稱BDS,可以輕鬆在個人電腦或者伺服器開設多人遊戲。

BDS由官方維護,會即時對應Minecraft基岩版的最新版本。Mojang官方經營的Minecraft Realms亦採用了BDS的技術。

跟其他伺服器軟體比起來,BDS屬於原味生存(vanilla)的伺服器,玩家可以把現有的世界放到伺服器,可以裝模組(Add-On),但只有基本的玩家管理功能,專為小型伺服器設計。如果你需要插件(plugin)之類的大型伺服器管理功能,請改用其他 基岩版伺服器軟體

Mojang官方發表的BDS軟體可以直接在Linux或Window執行,也有外國組織將BDS打包成Docker映像檔。本文示範如何使用Docker容器技術架設BDS伺服器,方便我們統一部署到各種機器上。

1. 環境
#

  • 系統:Ubuntu 22.04 LTS 安裝教學
  • CPU: 4核心x86架構CPU
  • RAM:4GB (官方建議值)
  • 硬碟空間:10GB

2. 撰寫Docker-compose
#

我使用itzg組織維護的映像檔,該映像檔基於Mojang官方發表的最新BDS版本所建置。

注意:Mojang官方發表的BDS二進位檔僅支援x86_64架構,itzg打包的Docker映像檔雖然支援x86與ARM架構,但是ARM的映像檔內部是用Box64轉譯的,效能會有所下降。

  1. 請先安裝 Docker

  2. 新增存放世界資料的目錄,這裡就是伺服器的根目錄了。

cd ~
mkdir minecraft_bds_server
cd minecraft_bds_server
  1. 新增docker-compose.yml
vim docker-compose.yml
  1. 填入以下內容。
version: '3.4'

services:
  bds:
    image: itzg/minecraft-bedrock-server
    environment:
      EULA: "TRUE" # 自動同意EULA
      GAMEMODE: survival # 預設新世界的模式
      DIFFICULTY: normal # 預設新世界難易度
    ports:
      - "19132:19132/udp"
    volumes:
      - /home/user/minecraft_bds_server:/data # 將容器內的遊戲世界/data資料,儲存到目前的目錄
    stdin_open: true
    tty: true
  1. 啟動服務
sudo docker compose up -d
  1. 開放防火牆19132 UDP通訊埠
sudo ufw allow 19132/udp

sudo ufw reload
  1. ip addr查看Linux電腦的區域IP:
# 範例輸出,IP為192.168.0.5

wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.0.5/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0
  1. 於同一區域網路下的電腦,開啟Minecraft基岩版,點選多人遊戲 → 新增伺服器,輸入<Linux電腦區域IP>:19132嘗試連線。在伺服器沒有任何世界檔案的情況下,會自動建立一個新世界。

  2. 輸入sudo docker ps -a指令可看到目前伺服器運作中。

ivon@localhost:~/下載/bedrock_server> sudo docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED         STATUS                    PORTS                                           NAMES
043fd84e9ec8   itzg/minecraft-bedrock-server   "/usr/local/bin/entr…"   3 minutes ago   Up 52 seconds (healthy)   0.0.0.0:19132->19132/udp, :::19132->19132/udp   bedrock_server_my_bedrock_server_1
  1. 使用logs指令查看伺服器輸出的訊息,例如玩家加入會顯示ID,加入失敗也會顯示原因。
sudo docker container logs -f "容器ID"
  1. 如果要停止伺服器:
cd ~/minecraft_bds_server
sudo docker compose down

3. 調整Minecraft BDS伺服器設定
#

調整BDS伺服器設定之前請先停止伺服器。

  1. BDS伺服器內含server.properties,定義了伺服器的行為、OP帳號、ban人的規則。

  2. 你可以用純文字編輯器調整:

cd cd ~/minecraft_bds_server
vim server.properties
  1. 如果你要使用自己的世界並裝模組,參考 這篇作法,先在Minecraft基岩版的單人界面啟用Add-On,再將遊戲世界的目錄放到BDS伺服器的目錄。

4. 開放外部連線的作法
#

如果您的伺服器沒有固定的公共IP,又想讓區域網路外部連線進來,那麼就在所有電腦(含Minecraft BDS伺服器的電腦本身)安裝 內網穿透軟體,進行連線。

相關文章

如何在Ubuntu系統以Docker架設Minecraft Java版伺服器
Linux系統 Self-hosting自架 Minecraft Docker
LANraragi,自架漫畫管理軟體,支援自動上E-hentai標籤
Linux系統 Self-hosting自架 E-Hentai Tachiyomi Anime Docker
開源友好的主機供應商「PikaPods」,一鍵架設Docker雲端服務
Linux系統 Self-hosting自架 Nextcloud Docker Podman

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。