總覽
您將在本實驗室中設定一個遊戲應用程式:Minecraft 伺服器。
這個 Minecraft 伺服器軟體將透過 Compute Engine 執行個體運作。
您會使用搭載 10 GB 開機磁碟、2 個虛擬 CPU (vCPU) 和 4 GB RAM 的 e2-medium 機型。根據預設,這種機型執行的是 Debian Linux。
為了確保有充足的空間能夠存放 Minecraft 伺服器的世界資料,您還需要將高效能的 50 GB 永久固態硬碟 (SSD) 連接至執行個體。這個專屬 Minecraft 伺服器最多可支援 50 名玩家。
目標
在本實驗室中,您將瞭解如何執行下列工作:
- 自訂應用程式伺服器
- 安裝及設定必要的軟體
- 設定網路存取權
- 安排定期備份
設定和需求
每個實驗室都會提供新的 Google Cloud 專案和一組資源,讓您在時限內免費使用。
-
按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的臨時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。
-
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}}
您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}}
您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。
注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
-
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。
工作 1:建立 VM
這項工作中,您會建立 VM 來託管 Minecraft 伺服器及安裝軟體。
使用進階選項定義 VM
- 前往 Google Cloud 控制台的「導覽選單」
,依序點按「Compute Engine」>「VM 執行個體」。
- 點按「建立執行個體」。
- 指定下列屬性,其他設定則保留預設值:
屬性 |
值 (依指示輸入值或選取選項) |
名稱 |
mc-server |
區域 |
|
可用區 |
|
-
點按「OS 和儲存空間」。
-
確認開機磁碟映像檔顯示為 Debian GNU/Linux 12 (bookworm)。如果不是,請點按「變更」,從「版本」下拉式清單中選擇正確版本,然後按一下「選取」。
-
點按「新增磁碟」。
-
指定下列屬性,其他設定則保留預設值:
屬性 |
值 (依指示輸入值或選取選項) |
名稱 |
minecraft-disk |
磁碟來源類型 |
空白磁碟 |
磁碟設定 |
SSD 永久磁碟 |
大小 (GB) |
50 |
加密 |
Google 代管的加密金鑰 |
-
點選「儲存」。系統會隨即建立磁碟,並自動將磁碟連接至建立完成的 VM。
-
點選「網路」。
-
指定下列屬性,其他設定則保留預設值:
屬性 |
值 (依指示輸入值或選取選項) |
網路標記 |
minecraft-server |
網路介面 |
點選「預設」並編輯介面 |
外部 IPv4 位址 |
保留靜態外部 IP 位址 |
名稱 |
mc-server-ip |
-
依序點按「保留」>「完成」。
-
點按「安全性」。
-
指定下列屬性,其他設定則保留預設值:
屬性 |
值 (依指示輸入值或選取選項) |
身分及 API 存取權 > 存取權範圍 |
對各個 API 設定存取權 |
儲存空間 |
讀寫 |
- 點按「建立」。
工作 2:準備資料磁碟
這項工作中,您會格式化並掛接 Minecraft 磁碟。
建立目錄,然後格式化並掛接磁碟
磁碟已連接至執行個體,但尚未掛接或進行格式化。
- 點選 mc-server 的「SSH」選項,開啟終端機並進行連線。
- 如要建立當做資料磁碟掛接點的目錄,請執行以下指令:
sudo mkdir -p /home/minecraft
- 如要將磁碟格式化,請執行以下指令:
sudo mkfs.ext4 -F -E lazy_itable_init=0,\
lazy_journal_init=0,discard \
/dev/disk/by-id/google-minecraft-disk
結果 (這是輸出內容範例):
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 13107200 4k blocks and 3276800 inodes
Filesystem UUID: 3d5b0563-f29e-4107-ad1a-ba7bf11dcf7c
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
- 請執行下列指令來掛接磁碟:
sudo mount -o discard,defaults /dev/disk/by-id/google-minecraft-disk /home/minecraft
磁碟掛接完成後不會顯示任何輸出內容。
點選「檢查我的進度」可確認自己是否已達成目標。
建立 VM 並準備資料磁碟
工作 3:安裝並執行應用程式
這項工作中,您會安裝並執行 Minecraft 應用程式。Minecraft 伺服器會在 Java Virtual Machine (JVM) 上運作,因此您必須先執行 Java Runtime Environment (JRE)。伺服器不需要圖形使用者介面,所以要使用無頭版本的 JRE。
這麼做可減少 JRE 的機器資源用量,確保 Minecraft 伺服器有足夠的空間,可視需要增加自身的資源用量。
安裝 Java Runtime Environment (JRE) 和 Minecraft 伺服器
- 在 mc-server 的 SSH 終端機中,如要更新 VM 上的 Debian 存放區,請執行以下指令:
sudo apt-get update
- 存放區更新完成後,如要安裝無頭 JRE,請執行以下指令:
sudo apt-get install -y default-jre-headless
- 如要前往已掛接永久磁碟的目錄,請執行以下指令:
cd /home/minecraft
- 如要安裝 wget,請執行以下指令:
sudo apt-get install wget
-
如果系統提示您繼續操作,請輸入「Y」。
-
如要下載目前 Minecraft 伺服器的 JAR 檔案 (1.11.2 JAR),請執行以下指令:
sudo wget https://launcher.mojang.com/v1/objects/d0d0fe2b1dc6ab4c65554cb734270872b72dadd6/server.jar
初始化 Minecraft 伺服器
- 如要初始化 Minecraft 伺服器,請執行以下指令:
sudo java -Xmx1024M -Xms1024M -jar server.jar nogui
結果 (輸出內容範例):
[21:01:54] [main/ERROR]: Failed to load properties from file: server.properties
[21:01:54] [main/WARN]: Failed to load eula.txt
[21:01:54] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
注意:您必須接受《使用者授權協議》(EULA) 的條款,Minecraft 伺服器才能運作。
點選「檢查我的進度」可確認自己是否已達成目標。
安裝 Java Runtime Environment (JRE) 和 Minecraft 伺服器
- 如要查看系統在 Minecraft 伺服器首次初始化時建立的檔案,請執行以下指令:
sudo ls -l
附註:您可以編輯 server.properties
檔案,變更 Minecraft 伺服器的預設行為。
- 如要編輯《使用者授權協議》,請執行以下指令:
sudo nano eula.txt
- 將檔案最後一行的
eula=false
變更為 eula=true
。
- 依序按下 Ctrl+O 和 Enter 鍵儲存檔案,然後按下 Ctrl+X 退出 nano。
注意:目前請先不要重新啟動 Minecraft 伺服器,您將在下一個程序中使用其他技巧。
建立虛擬終端機畫面,啟動 Minecraft 伺服器
如果您這時再次啟動 Minecraft 伺服器,伺服器會在 SSH 工作階段的生命週期結束時終止運作。也就是說,如果您關閉 SSH 終端機,就會一併關閉伺服器。如要避免這個問題,您可以透過 screen
應用程式建立虛擬終端機。這類終端機可在「卸離」後成為背景程序,或是在「重新連接」後成為前景程序。當虛擬終端機卸離至背景後,無論您處於登入或登出狀態,該終端機都會繼續執行。
- 如要安裝
screen
,請執行以下指令:
sudo apt-get install -y screen
- 如要在
screen
虛擬終端機中啟動 Minecraft 伺服器,請執行以下指令,並使用 -S
旗標為終端機 mcs
命名:
sudo screen -S mcs java -Xmx1024M -Xms1024M -jar server.jar nogui
結果 (輸出內容範例):
...
[21:06:06] [Server-Worker-1/INFO]: Preparing spawn area: 83%
[21:06:07] [Server-Worker-1/INFO]: Preparing spawn area: 85%
[21:06:07] [Server-Worker-1/INFO]: Preparing spawn area: 86%
[21:06:08] [Server-Worker-1/INFO]: Preparing spawn area: 88%
[21:06:08] [Server-Worker-1/INFO]: Preparing spawn area: 89%
[21:06:09] [Server-Worker-1/INFO]: Preparing spawn area: 91%
[21:06:09] [Server-Worker-1/INFO]: Preparing spawn area: 93%
[21:06:10] [Server-Worker-1/INFO]: Preparing spawn area: 95%
[21:06:10] [Server-Worker-1/INFO]: Preparing spawn area: 98%
[21:06:11] [Server-Worker-1/INFO]: Preparing spawn area: 99%
[21:06:11] [Server thread/INFO]: Time elapsed: 55512 ms
[21:06:11] [Server thread/INFO]: Done (102.484s)! For help, type "help"
從 screen 卸離並關閉 SSH 工作階段
- 如要卸離 screen 終端機,請依序按下 Ctrl+A 和 Ctrl+D。終端機會繼續在背景執行。如要重新連接終端機,請執行以下指令:
sudo screen -r mcs
- 如有需要,請依序按下 Ctrl+A 和 Ctrl+D 退出 screen 終端機。
- 如要退出 SSH 終端機,請執行以下指令:
exit
恭喜!您已成功設定及自訂 VM,並且安裝及設定了應用程式軟體:Minecraft 伺服器!
工作 4:允許用戶端流量
這項工作中,您會設定防火牆規則,允許用戶端連線至 Minecraft 伺服器。目前伺服器具有外部靜態 IP 位址,但尚未設定防火牆規則,因此無法接收流量。
Minecraft 伺服器預設會使用 TCP 通訊埠 25565。
建立防火牆規則
- 前往 Google Cloud 控制台的「導覽選單」
,依序點按「虛擬私有雲網路」>「防火牆」。
- 點按「建立防火牆規則」。
- 指定下列屬性,其他設定則保留預設值:
屬性 |
值 (依指示輸入值或選取選項) |
名稱 |
minecraft-rule |
目標 |
指定的目標標記 |
目標標記 |
minecraft-server |
來源篩選器 |
IPv4 範圍 |
來源 IPv4 範圍 |
0.0.0.0/0 |
通訊協定和通訊埠 |
指定的通訊協定和通訊埠 |
- 針對「TCP」,請指定通訊埠 25565。
- 點選「建立」。使用者現在可以透過自己的 Minecraft 用戶端存取您的伺服器了。
驗證伺服器的可用性
- 前往 Cloud 控制台的「導覽選單」
,點按「虛擬私有雲網路」。
- 在左側窗格點按「IP 位址」。
- 找出並複製 mc-server VM 的外部 IP 位址。
- 使用 Minecraft Server Status 網站測試 Minecraft 伺服器。
附註:如果上述網站無法使用,您可以改用其他網站或以下 Chrome 擴充功能:
點選「檢查我的進度」可確認自己是否已達成目標。
允許用戶端流量
工作 5:安排定期備份
這項工作中,您會進行一系列設定,讓系統將 Minecraft 世界資料備份至 Cloud Storage。備份應用程式資料是常見的活動。
建立 Cloud Storage bucket
- 前往 Google Cloud 控制台的「導覽選單」
,依序點按「Compute Engine」>「VM 執行個體」。
- 點按 mc-server 的「SSH」選項。
- 建立全域不重複的值區名稱,並儲存在環境變數 YOUR_BUCKET_NAME 中。如要確保名稱不重複,您可以使用專案 ID。請執行下列指令:
export YOUR_BUCKET_NAME=<在這裡輸入值區名稱>
- 使用 echo 進行驗證:
echo $YOUR_BUCKET_NAME
- 如要使用 Cloud SDK 的 gcloud storage 工具建立值區,請執行下列指令:
gcloud storage buckets create gs://$YOUR_BUCKET_NAME-minecraft-backup
注意:如果這項指令執行失敗,代表建立的值區名稱可能重複了。在這種情況下,請選擇其他值區名稱並更新環境變數,然後再次嘗試建立值區。
附註:如要讓這個環境變數永久存在,您可以執行以下指令將其新增至根層級的 .profile 中:
echo YOUR_BUCKET_NAME=$YOUR_BUCKET_NAME >> ~/.profile
建立備份指令碼
- 在 mc-server SSH 終端機中前往主目錄:
cd /home/minecraft
- 如要建立指令碼,請執行以下指令:
sudo nano /home/minecraft/backup.sh
- 複製下列指令碼並貼到檔案中:
#!/bin/bash
screen -r mcs -X stuff '/save-all\n/save-off\n'
/usr/bin/gcloud storage cp -R ${BASH_SOURCE%/*}/world gs://${YOUR_BUCKET_NAME}-minecraft-backup/$(date "+%Y%m%d-%H%M%S")-world
screen -r mcs -X stuff '/save-on\n'
- 依序按下 Ctrl+O 和 Enter 鍵儲存檔案,然後按下 Ctrl+X 退出 nano 編輯器。
附註:這個指令碼會儲存伺服器世界資料目前的狀態,並暫停伺服器的自動儲存功能。接著,指令碼會備份伺服器的世界資料目錄 (world),並將內容存放在 Cloud Storage bucket 中已加上時間戳記的目錄 (<timestamp>-world)。指令碼完成資料備份後,就會重新啟用 Minecraft 伺服器的自動儲存功能。
- 如要將指令碼設為可執行狀態,請執行以下指令:
sudo chmod 755 /home/minecraft/backup.sh
測試備份指令碼並安排 Cron 工作
- 在 mc-server SSH 終端機中執行備份指令碼:
. /home/minecraft/backup.sh
- 指令碼執行完成後,請返回 Cloud 控制台。
- 在「導覽選單」
依序點按「Cloud Storage」>「bucket」,確認備份檔案已編寫完成。
- 點按備份 bucket 名稱,您應該會看到名稱包含日期和時間戳記的資料夾。確認備份作業可順利進行後,您可以安排 Cron 工作,讓系統自動執行備份作業。
- 在 mc-server SSH 終端機中,開啟 Cron 資料表進行編輯:
sudo crontab -e
- 如果系統提示您選取編輯器,請輸入與 nano 對應的數字,然後按下 Enter 鍵。
- 在 Cron 資料表底部,貼上以下這一行:
0 */4 * * * /home/minecraft/backup.sh
附註:這一行會指示 Cron 每 4 小時備份一次。
- 依序按下 Ctrl+O 和 Enter 鍵儲存 Cron 資料表,然後按下 Ctrl+X 退出 nano。
附註:完成上述步驟後,系統每個月會在 Cloud Storage 中進行約 300 次備份作業,因此建議您定期刪除備份檔案,以免產生費用。Cloud Storage 提供物件生命週期管理功能,可讓您為物件設定存留時間 (TTL)、封存舊版物件,或是降低物件的儲存空間級別,藉此管理費用。
點選「檢查我的進度」可確認自己是否已達成目標。
安排定期備份
工作 6:維護伺服器
這項工作中,您會連線到伺服器,並將其關閉來進行維護。
透過 SSH 連線至伺服器,接著停止伺服器並關閉 VM
- 在 mc-server SSH 終端機中執行以下指令:
sudo screen -r -X stuff '/stop\n'
- 前往 Google Cloud 控制台的「導覽選單」
,依序點按「Compute Engine」>「VM 執行個體」。
- 選取「mc-server」。
- 點選「Stop」。
- 在確認對話方塊中,點選「Stop」進行確認。
系統會將您登出 SSH 工作階段。
附註:如要再次啟動執行個體,請前往執行個體頁面並點選「啟動」。如要再次啟動 Minecraft 伺服器,您可以依照先前做過的步驟與執行個體建立 SSH 連線,重新掛接永久磁碟,然後在新的 screen 終端機中啟動 Minecraft 伺服器。
透過開機和關機指令碼自動執行伺服器維護作業
如果不想手動掛接永久磁碟,並透過 screen 啟動伺服器安裝作業,您可以改用中繼資料指令碼,建立開機指令碼和關機指令碼,讓系統自動處理這項流程。
-
點選「mc-server」。
-
點選「編輯」。
-
在「中繼資料」部分,點選「+ 新增項目」並指定下列設定:
鍵 |
值 |
startup-script-url |
https://storage.googleapis.com/cloud-training/archinfra/mcserver/startup.sh |
shutdown-script-url |
https://storage.googleapis.com/cloud-training/archinfra/mcserver/shutdown.sh |
附註:您必須點選「新增項目」才能新增 shutdown-script-url。重新啟動執行個體時,開機指令碼會自動將 Minecraft 磁碟掛接到適當目錄,在 screen 工作階段中啟動 Minecraft 伺服器,然後卸離工作階段。停止執行個體時,關機指令碼會先將 Minecraft 伺服器關機再關閉執行個體。建議您將這些指令碼儲存在 Cloud Storage 中。
- 點選「儲存」。
點選「檢查我的進度」可確認自己是否已達成目標。
維護伺服器
工作 7:回顧
在本實驗室中,您安裝了基本軟體 (無頭 JRE) 和應用程式軟體 (Minecraft 遊戲伺服器),藉此建立自訂虛擬機器執行個體。您還連接及準備了高速 SSD 資料磁碟自訂 VM,並保留靜態外部 IP 讓位址保持一致。接著,您驗證了遊戲伺服器在網路中的可用性。
此外,您也設定了備份系統,將伺服器資料備份至 Cloud Storage bucket,並測試這個備份系統。接著,您安排了 Cron 工作讓系統自動執行備份作業。最後,為了安全啟動及關閉伺服器,您使用中繼資料設定了維護指令碼。
關閉研究室
如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。
您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)。
星級評等代表您的滿意程度:
- 1 星 = 非常不滿意
- 2 星 = 不滿意
- 3 星 = 普通
- 4 星 = 滿意
- 5 星 = 非常滿意
如果不想提供意見回饋,您可以直接關閉對話方塊。
如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。