- Published on
Minecraft Server架構與開發筆記
Minecraft 雲端伺服器系統架構書
本專案利用 Docker 容器化技術,打造一個高可管理性、具備即時監控通知,且支援內網穿透的 Minecraft 伺服器架構。
系統整體架構圖

核心容器組件說明
1. 遊戲核心:itzg/minecraft-server
- 定位:開源且功能強大的 Minecraft 伺服器 Docker 映像檔。
- 優勢:
- 極佳的伺服器運行管控能力。
- 環境變數設定友善,可一鍵切換與部署 Forge、Fabric 等模組伺服器。
2. 監控與串接:Node.js
定位:系統的控制與通知中樞,負責狀態串接與即時通知。
開發動機:
說明:免去頻繁遠端進 VPS 或 PC 主機下指令的麻煩,解決無法即時觀察運行情況的痛點。透過自動化通知,避免需要時刻擔心伺服器運行狀態。
- 實作功能:
- 串接 Webhook:實時發送伺服器運行狀態(如:開服成功、異常警告)。
- 輕量化 Web 監控介面:視覺化確認伺服器當前狀態。
- 實作功能:
3. 安全外網穿透:ngrok
- 定位:監控介面的對外通道。
- 優勢:
- 搭配 Node.js 使用,直接對應指定頁面的 Port。
- 無需設定實體 IP、免去動態 DNS(浮動 IP)與對外 Port Forwarding 的煩惱,相對安全。
4. 遊戲連線穿透:playit (Docker Image)
- 定位:專為遊戲設計的內網穿透工具,供外部玩家連線。
開發踩坑筆記 (Troubleshooting)
- 目前調查到的版本為舊版 Image,雖能正常開啟,但在設定 Port 時發現映射機制異常(例如:設定 22575 但實測一直被映射到 66750)。
- 目前解法:直接查閱該容器的 log,查看系統隨機分派了哪個 Port,再手動對應調整。
為什麼選擇這個架構?
- 維運成本低:透過 Docker 封裝,方便管理伺服器運行,升級或調整配置也較為便利。
- 告別遠端焦慮:Node.js 監控與 Webhook 機制,讓伺服器狀態一手掌握,不需一直連線回主機觀察。
- 網路環境簡化:網路穿透(ngrok / playit)全部容器化,不用處理複雜的實體網路與動態 IP 設定。