1. 程式人生 > 實用技巧 >超詳細!如何搭建國際版我的世界伺服器

超詳細!如何搭建國際版我的世界伺服器

關鍵詞: 我的世界 MineCraft 伺服器 1.16 國際版

前言

我是一個老MC划水員,為了和好朋友遠端聯機玩MC,我嘗試過很多辦法。網易代理MC以後,年少無知的我以為MC迎來了春天,結果網易版不僅特性頻出,而且遠端聯機和租賃服十分卡頓,最終把我演走了。不久前,我通過學習與摸索,成功地在雲端建了一個國際版1.16.1MC純淨版伺服器,並用HMCL客戶端開始了愉快的划水。

寫這篇文章,是為了記錄一下自己的建服歷程,並且希望能幫助到一些需要的朋友。如果您沒有建服經驗,在做好支出預算的情況下,可以按照本文【除了租用伺服器以外的】內容搭建一個MC伺服器。如果您有一定計算機基礎,本文將是一份詳細的參考資料,您也可以直接觀看“熟練者段落”速成伺服器搭建。

如果這篇文章對您有幫助,還請點一個免費的贊,謝謝~

致謝

我在建服的時候主要學習了雲棲社群的sws797所著的文章阿里雲ECS搭建我的世界伺服器,對於它對我的幫助我表示由衷的感謝。同時,為了避免抄襲嫌疑,我將連結置於此處以便與本文對比。

非常感謝HMCL客戶端的開發者及其團隊、支持者,以及MCBBS中文論壇,讓我玩上了順滑的MC 1.16.1。

觀前提醒

  • 本文為原創,釋出於 cnblogs與知乎,作者保留一切著作權,【轉載請在開頭註明作者、來源與連結】,侵權必究。
  • 租伺服器是要花錢的,月費可能上百,請量入為出,衡量好建服成本。如果您不需要24小時保持伺服器開啟,成本可能會大幅降低。
  • 本文為線上建服教程,線下購買或組裝伺服器在長時間
  • 本文基於作者的實際建服經歷,伺服器為Linux系統,本地電腦為Windows 10 家庭版,遊戲版本為1.16.1,沒有裝載mod,伺服器不會24小時開機。如遇與本文例子不同的情況,使得解決方案失效,那麼還請讀者自行摸索。
  • 適度娛樂有益健康,沉迷遊戲隱患巨大,建議您平衡好學習與娛樂、生活與娛樂的關係。
  • 作者(SMagic)所建伺服器為私人性質伺服器,暫不對外開放。

為熟練者提供的概述

  • 租用一臺裝有 Linux 系統的伺服器,配置公網IP,開放25565埠

  • 在本地電腦上安裝WinSCP,以便於向伺服器上傳檔案。在伺服器上安裝java,將MC服務端程式拷貝在/opt目錄下執行

  • 第一次執行服務端程式會失敗,用WinSCP修改eula.txt

    檔案來簽署使用者協議,之後可以正常執行

  • 在本地電腦上安裝HMCL,下載1.16.1版本,啟動遊戲,點選“多人遊戲”,點選“新增伺服器”,輸入伺服器公網IP

準備工作

出於不明原因,官網連結下載可能會很慢

租用、配置伺服器

免責宣告:本段內容提供詳細購買步驟,意在方便讀者理解選購過程,無意推廣任何特定廠商,也不構成任何選購建議。閱讀本段與購買伺服器時請您仔細閱讀、獨立思考、自主決定,任何由於購買伺服器時誤操作造成的財產損失依法由購買者自行負責。本文所述“購買伺服器”意為租用可以遠端訪問的伺服器,而不是購買實體的伺服器。如您不認同這條宣告,請不要閱讀本段內容。

伺服器可以在阿里雲、騰訊雲、華為雲等網站中租賃,鑑於該步驟操作大同小異,本文僅以阿里云為例(因為我租的是阿里雲的2333)。

首先,註冊帳號,開啟伺服器購買頁面,如圖。

【配置資訊僅供參考,不構成購買建議】

配置頁面中的“1v2g”表示單核CPU、2G記憶體。人數比較少的純淨服 1v2g 夠用,2v4g 的配置可以帶得動一些mod。映象隨便選一個Linux系統(我用的是預設的 Aliyun Linux),儲存選擇預設的高效雲盤40G。“地域及可用區”選擇離自己最近的,減少延遲。

關於付費模式的選擇,如果您打算保持伺服器24小時開機,建議選擇包年包月。如果您想要隨用隨開,建議選擇按量付費。

點選下一步,進入“網路與安全組”頁面。關於頻寬計費模式,隨用隨開型服主建議選擇按使用流量付費,24小時開機型服主請自行斟酌。本頁面其他內容可以保持預設。

點選下一步,進入系統配置頁面,選擇登入憑證為自定義密碼(金鑰對我不會用QAQ,高手可以自便),設定root使用者的登入密碼,然後根據自己的需求完成其他的各項設定。確認訂單內容為自己的真實意思表達,並確認金額無誤後,提交訂單並支付。

前往控制檯(這裡以阿里雲ECS控制檯為例),點選“網路與安全”、“安全組”,在列表中通過建立時間找到伺服器對應的安全組,點選名稱,在“入方向”中新增25565埠的TCP規則。

在伺服器上安裝java

  • 首先確認伺服器有沒有預裝java

通過伺服器管理頁面給出的方法,遠端連線伺服器,在SSH命令視窗輸入

java -version

如果出現java版本資訊說明java已經安裝,否則應先安裝java。

  • 通過yum安裝服務端java

在SSH命令視窗輸入以下命令,即可安裝

yum -y install java-1.8.0-openjdk
  • 通過上傳安裝包安裝服務端java

如果使用上述方法無法安裝java,請按照以下步驟操作。

前往https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html,下載64位的、字尾為.tar.gz的Linux版JDK,如圖。(圖片中版本僅供參考)

使用WinSCP登入到伺服器,將其上傳至/usr/local目錄下。登入SSH命令視窗,輸入以下命令,其中xxx.tar.gz需替換為實際的檔名。

tar -zxvf /usr/local/xxx.tar.gz

解壓完成後,在WinSCP中將/usr/local目錄下的jdk1.8.0_261資料夾(名稱可能不同)改為java,這樣做是為了方便配置環境變數,因此也可以不改。

用WinSCP開啟/etc目錄下的profile檔案,右鍵點選編輯,在最後新增如下幾行資訊,儲存

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

通過網頁控制檯或者命令重啟伺服器,在SSH命令視窗輸入

java -version

來確認java是否正確安裝

在伺服器上安裝、配置MC服務端

本步驟中上傳檔案、修改eula.txt檔案等操作可以使用其他工具來等效完成,本文介紹相對簡單的WinSCP。

在本地電腦上安裝WinSCP並開啟,第一次使用時,點選“新建站點”,檔案協議保持預設的SFTP,站點名稱處填寫伺服器的公網IP地址,密碼填寫本文上一段中所設定的登入密碼。

登入WinSCP,在opt目錄中隨便新建一個目錄(比如MC1.16),將MC服務端程式server.jar上傳至該目錄下。

在SSH命令視窗輸入以下命令來執行程式,其中“MC1.16”為自定義的目錄名稱,請根據實際命名修改。

cd opt/MC1.16
java -Xmx1024M -Xms1024M -jar server.jar nogui

第一次執行肯定會失敗,並且會生成eula.txt檔案,這是因為尚未簽署使用者協議。用WinSCP找到該檔案,右鍵點選,選擇“編輯”。將其中的eula=false更改為eula=true,點選儲存。

用WinSCP開啟遊戲規則配置檔案server.properties,將online-mode後的true改為false來關閉正版帳號驗證,否則無法進入遊戲。之後可以根據個人需求對遊戲規則進行修改。

製作自動啟動遊戲的指令碼

用WinSCP在根目錄下新建start_mc16.sh檔案(檔名可以自行設定,但不建議使用中文),右鍵點選編輯,將以下程式碼複製到檔案中並儲存。程式碼中的“MC1.16”為自定義的目錄名稱,請根據實際命名修改。這個指令碼檔案的作用是,自動開啟服務端遊戲程式,記錄遊戲日誌,並保持後臺執行。

#!/bin/bash
cd /opt/MC1.16
nohup java -Xmx1024M -Xms1024M -jar server.jar nogui >/root/MC1.16.log &
tail -f /root/MC1.16.log

要運行遊戲,只需在SSH命令視窗輸入

bash /start_mc16.sh

在本地電腦上安裝HMCL,連線遊戲伺服器

將下載好的HMCL客戶端放置在一個單獨的資料夾裡,雙擊執行。點選"版本列表"、“安裝新遊戲版本”。載入過程可能較慢,需要多重新整理幾次,等待列表載入完成後,選擇1.16.1穩定版。

下載完成後,點選左上角返回,然後點選“啟動遊戲”,遊戲啟動後,點選“多人遊戲”、“新增伺服器”,輸入伺服器公網IP,即可連線服務端遊戲。

在伺服器中手動設定初始OP

在你第一次連線MC服務端的時候,你會發現沒有人是OP,此時你需要手動修改檔案來新增第一個OP。OP即多人遊戲管理員,您可以搜尋“我的世界 OP”瞭解更多資訊。

在你進入過服務端遊戲之後,用WinSCP登入伺服器,在/opt/MC1.16目錄下開啟user.json檔案,找到你想設定OP的玩家,將他的name欄位和uuid欄位複製到某處。接著開啟ops.json檔案,參考以下示例的格式設定該使用者為OP。

level為OP等級,我暫時不知道它有什麼用,姑且設定為4即可(我懷疑這個4是個magic number)。bypassesPlayerLimittrue時表示可以在伺服器滿員的情況下進入伺服器,為false則不行。

[
  {
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "SMagic",
    "level": 4,
    "bypassesPlayerLimit": true
  },
  {
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "Is666",
    "level": 4,
    "bypassesPlayerLimit": false
  }
]

在其他埠上開放遊戲(非必需)

服務端遊戲預設使用25565埠,如果您想在其他埠上開放遊戲,需要在伺服器控制檯網頁(例如阿里雲控制檯)設定埠,在伺服器/opt/MC1.16目錄下(“MC1.16為自定義目錄名稱”)修改server.properties檔案中的埠,在本地遊戲客戶端“多人遊戲”、“新增伺服器”頁面中在公網IP後新增英文冒號與埠號。相關操作方法前文已經出現,這裡不再贅述。如果您對這些內容感到疑惑,請放心,這些操作不是必需的,忽略這些內容對遊戲的執行沒有影響。