# 在 Synology NAS 上安裝並設定 Minecraft Bedrock 伺服器 > 以 `itzg/minecraft-bedrock-server` 映像為例,完整涵蓋安裝、網路、檔案路徑、環境變數、版本鎖定(降版)、UID/GID 權限、備份與疑難排解。 [TOC] --- ## 1. 前置說明(Overview) - **平台**:Synology NAS(DSM 7+ 建議;Docker/Container Manager) - **容器映像**:`itzg/minecraft-bedrock-server`(基岩版 / Bedrock) - **連線埠**:預設 **UDP 19132**(IPv6 19133)。若使用 Host Network,**無需手動對映**;若使用 Bridge,請對映 UDP 19132(必要)與 19133(選用)。 - **資料保存**:將容器 `/data` 對映至 NAS 目錄(例如 `/volume1/docker/mc-bedrock`),以保留世界與設定。 - **版本策略**:若玩家與伺服器版本不符會無法連線。可用 `VERSION` 釘住特定版。 --- ## 2. 安裝 Docker 與下載映像 1. 於 DSM「**套件中心**」安裝 **Docker**(或 DSM 7.2 之後的 **Container Manager**)。 2. 開啟 Docker → **倉庫(Registry)**,搜尋 `minecraft`,選擇 **`itzg/minecraft-bedrock-server`**。 3. 選擇標籤:一般建議用 `latest`(**最新**),或釘住特定版(見 §6 版本鎖定)。 ![](https://hackmd.io/_uploads/rJL9EmLlkg.png) ![](https://hackmd.io/_uploads/HkCLsmIl1l.jpg) --- ## 3. 建立容器:網路與重啟策略 ### 3.1 網路模式 - **Host 模式(建議於內網)**:與 NAS 共用 IP,**省略埠對映**,延遲較低。 - **Bridge 模式**:需**手動對映** `UDP 19132:19132`(以及 `UDP 19133:19133` 若需 IPv6)。 ![](https://hackmd.io/_uploads/S1kwrmLl1l.png) ### 3.2 重啟策略 - 在「**其他設定**」或「**容器設定**」中,建議選 **自動重啟**(`unless-stopped` 或 `always`),確保 NAS 重開後會自動帶起伺服器。 ![](https://hackmd.io/_uploads/H1heHX8lye.png) --- ## 4. 環境變數(Environment Variables) > **必要** - `EULA=TRUE`:接受 EULA 才會啟動。 - `TZ=Asia/Taipei`:時區。 > **常用遊戲設定** - `SERVER_NAME=My Bedrock on NAS` - `GAMEMODE=survival`(`creative`/`survival`/`adventure`) - `DIFFICULTY=easy`(`peaceful`/`easy`/`normal`/`hard`) - `LEVEL_NAME=world` - `ALLOW_CHEATS=false`(`true`/`false`) - `WHITE_LIST=false`(白名單;啟用後需提供 `WHITELIST` 清單) - `OPS=`(管理者玩家名,逗號分隔) - `ONLINE_MODE=true`(Xbox Live 驗證;關閉僅用於測試環境) - `VIEW_DISTANCE=10` - `PLAYER_IDLE_TIMEOUT=30` > **網路與版本** - `SERVER_PORT=19132`(UDP) - `SERVER_PORT_V6=19133`(UDP,選用) - `VERSION=1.21.31.04`(**釘住版本**;或留空/`latest` 追最新版) > **檔案權限(Synology 推薦)** - `UID=<你的 uid>`、`GID=<你的 gid>`(讓容器內檔案屬主對應到 NAS 使用者,避免權限問題;見 §8 取得 UID/GID) ![](https://hackmd.io/_uploads/SJqI9QIx1l.png) > 參考:官方環境變數總覽(Docker Hub) <https://registry.hub.docker.com/r/itzg/minecraft-bedrock-server/> --- ## 5. 檔案路徑對映(Volumes) 將容器 `/data` 對映到 NAS 資料夾(例:`/volume1/docker/mc-bedrock`): - 世界存檔、日誌、`server.properties`、白名單、OPS、備份等都會存在這裡。 - 建議建立**排程備份**(DSM 任務排程)複製此資料夾至另一磁碟或雲端。 ![](https://hackmd.io/_uploads/BJndcXIxyx.jpg) --- ## 6. 版本鎖定與降版(Version Pinning / Downgrade) > **情境**:伺服器自動更新到 `1.21.41.01` 後,玩家(尚未更新)無法連線。 > **解法**:設定 `VERSION` 為玩家一致的版本(例如 `1.21.31.04`)。 **操作步驟** 1. 停止容器 → 編輯 → **環境變數**。 2. 新增/修改 `VERSION=1.21.31.04`。 3. 保存後重新啟動容器。 > 之後伺服器將固定在此版本,不會自動升級,避免**版本不符**導致的連線問題。 ![](https://hackmd.io/_uploads/rkeI4VUgkl.png) --- ## 7. 連線方式與防火牆/NAT - **同網段玩家**:在 Minecraft 客戶端(手機/Windows/主機)新增伺服器: - 伺服器位址:`<NAS 的 IP>` - 埠號:`19132`(UDP) - **跨網路(外網)**: - 路由器設定 **UDP 19132 轉發**到 NAS(或透過 VPN)。 - DSM「**控制台 → 安全性 → 防火牆**」允許 **UDP 19132**。 - 不建議直接對外開放,請至少啟用 **白名單** 或採用 **VPN**。 --- ## 8. 如何取得 Synology NAS 的 UID/GID(權限對應) ### 8.1 透過 SSH(快速) ```bash id # 輸出示例: # uid=1026(user) gid=100(users) groups=100(users),101(administrators) ``` - `uid=1026`:使用者 ID(填到環境變數 `UID`) - `gid=100`:群組 ID(填到環境變數 `GID`) ### 8.2 指定使用者 ```bash id your-username ``` > 設定 `UID/GID` 後,如遇既有檔案屬主不一致,可在 NAS 上修正該資料夾的擁有者/權限。 --- ## 9. Docker 指令與 Compose 範例 ### 9.1 `docker run`(Bridge 模式示例) ```bash docker run -d --name mc-bedrock \ -e EULA=TRUE \ -e TZ=Asia/Taipei \ -e SERVER_NAME="My Bedrock on NAS" \ -e GAMEMODE=survival \ -e DIFFICULTY=easy \ -e LEVEL_NAME=world \ -e SERVER_PORT=19132 \ -e VERSION=1.21.31.04 \ -e UID=1026 -e GID=100 \ -p 19132:19132/udp \ -v /volume1/docker/mc-bedrock:/data \ --restart unless-stopped \ itzg/minecraft-bedrock-server:latest ``` ### 9.2 `docker-compose.yml`(Host 模式示例) ```yaml services: bedrock: image: itzg/minecraft-bedrock-server:latest container_name: mc-bedrock network_mode: host environment: EULA: "TRUE" TZ: "Asia/Taipei" SERVER_NAME: "My Bedrock on NAS" GAMEMODE: "survival" DIFFICULTY: "easy" LEVEL_NAME: "world" VERSION: "1.21.31.04" # 版本釘住 UID: "1026" GID: "100" volumes: - /volume1/docker/mc-bedrock:/data restart: unless-stopped ``` > Synology GUI 建立容器時,以上參數可逐一填入對應欄位。 --- ## 10. 常見問題(FAQ / Troubleshooting) **Q1:玩家找不到伺服器或無法連線?** - 確認網路模式(Host/Bridge)與 **UDP 19132** 是否開放/轉發。 - 內網請直連 NAS IP;外網建議走 VPN 或正確的 Port Forward。 - 檢查 `VERSION` 是否與玩家端遊戲版本一致。 **Q2:權限錯誤導致無法寫入世界或設定?** - 設定 `UID/GID` 對應到 NAS 使用者;檢查 `/volume1/docker/mc-bedrock` 的擁有者與讀寫權限。 **Q3:容器啟動後秒退?** - 通常為 `EULA` 未設為 `TRUE`、路徑未對映或版本/設定無效。查看容器日誌。 **Q4:CPU 架構相容性?** - 大多數 x86_64 機種可直接使用;ARM 機種請留意映像支援度(新款 Synology 多為 x86_64)。 **Q5:如何備份世界?** - 直接備份 `/volume1/docker/mc-bedrock`;建議排程壓縮或快照,且在**伺服器停止**或使用容器內提供的**保存/停服流程**後再備份,避免存檔不一致。 --- ## 11. 安全與效能建議 - **安全**: - 非必要不要對外開放;必要時使用白名單或 VPN。 - `ONLINE_MODE=true`(Xbox Live 驗證)可降低匿名濫用風險。 - **效能**: - 使用 Host 網路可微幅降低延遲。 - 適度調整 `VIEW_DISTANCE`、`PLAYER_IDLE_TIMEOUT` 與人數上限。 --- ###### tags: `Synology` `Minecraft` `Bedrock` `Docker` `NAS` `Gaming` `HomeLab`