如何制作 Minecraft 服务器

介紹

Minecraft是一款熱門的沙盒類型視頻遊戲。最初於2009年發布,允許玩家在一個由方塊生成的3D世界中建造、探索、製作和生存。截至2022年初,它是有史以來銷量最高的視頻遊戲。在本教程中,您將創建自己的Minecraft服務器,以便您和朋友一起遊玩。具體而言,您將安裝運行Minecraft所需的軟件包,配置服務器運行,然後部署遊戲。

或者,您可以探索DigitalOcean的一鍵式Minecraft:Java版服務器作為另一種安裝途徑。

本教程使用Minecraft的Java版本。如果您是通過Microsoft應用商店購買Minecraft的,將無法連接到此服務器。大多數在遊戲機上購買的Minecraft版本,如PlayStation 4、Xbox One或Nintendo Switch,也是Microsoft版本的Minecraft。這些遊戲機也無法連接到本教程中構建的服務器。您可以在這裡獲取Minecraft的Java版本。

先决条件

为了遵循本指南,您需要:

构建您自己的Minecraft服务器的步骤

  1. 安装所需软件包并配置防火墙
  2. 下載 Minecraft 最新版本
  3. 配置和運行 Minecraft 服務器
  4. 如何保持 Minecraft 服務器運行
  5. 從 Minecraft 客戶端連接到您的服務器

步驟 1 — 安裝必要的軟件包並配置防火牆

啟動您的伺服器後,第一步是安裝Java;您需要它來執行Minecraft。預設情況下,Ubuntu 22.04並未提供足夠新的Java版本,以便執行Minecraft的最新版本。幸運的是,有第三方維護者繼續為舊版Ubuntu發布更新的Java套件,您可以通過將它們的PPA,或個人套件存檔,添加到您自己的套件來源列表中來安裝它們。您可以使用以下命令來執行此操作:

  1. sudo add-apt-repository ppa:openjdk-r/ppa

接下來,更新您的套件來源以反映此添加:

  1. sudo apt update

當提示確認時,按Y。如果提示重新啟動任何服務,請按ENTER接受默認值並繼續。

最後,安裝Java的OpenJDK版本17,具體而言是無頭的JRE。這是一個最小化的Java版本,不支持GUI應用程式。這使其非常適合在伺服器上運行Java應用程序:

  1. sudo apt install openjdk-17-jre-headless

您還需要使用一種名為screen的軟件來創建可分離的伺服器會話。 screen允許您創建一個終端會話並從中分離,使啟動的進程保持運行。這很重要,因為如果您啟動伺服器然後關閉終端,這將終止會話並停止您的伺服器。現在安裝screen

  1. sudo apt install screen

現在您已安裝好套件,我們需要啟用防火牆以允許流量進入我們的 Minecraft 伺服器。在您執行的初始伺服器設置中,您只允許了 ssh 流量。現在您需要允許通過端口25565進入的流量,這是 Minecraft 使用的默認端口,用於允許連接。在某些情況下,ufw 將使用命名的流量規則,例如對於 ssh,它總是使用默認端口 22,但在像這樣的不太常見的情況下,我們將手動指定端口號。運行以下命令添加必要的防火牆規則:

  1. sudo ufw allow 25565

現在您已經安裝了 Java,並且您的防火牆已經正確配置,您將從 Minecraft 網站下載 Minecraft 伺服器應用程式。

步驟 2 — 下載 Minecraft 的最新版本

現在您需要下載當前版本的 Minecraft 伺服器。您可以通過訪問Minecraft 的網站並複製標題為下載 minecraft_server。X.X.X.jar的鏈接,其中X是伺服器的最新版本。

您現在可以使用wget和複製的鏈接將伺服器應用程式下載到您的伺服器上:

  1. wget https://launcher.mojang.com/v1/objects/c8f83c5655308435b3dcf03c06d9fe8740a77469/server.jar

服務器應用程序將被下載為 server.jar。 如果您曾經需要管理 Minecraft 的版本,或者想要升級您的 Minecraft 服務器,將下載的 server.jar 重新命名為 minecraft_server_1.18.2.jar 可能會很有幫助,將突出顯示的版本號與您剛下載的版本匹配:

  1. mv server.jar minecraft_server_1.18.2.jar

如果您想下載 Minecraft 的舊版本,您可以在 mcversions.net 上找到它們的存檔。 但本教程將專注於目前的最新版本。 現在您已經下載了您的文件,讓我們開始配置您的 Minecraft 服務器。

步驟 3 — 配置並運行 Minecraft 服務器

現在您已經下載了 Minecraft jar,您可以開始運行它。

首先,運行 screen 命令來啟動一個 screen 會話:

  1. screen

一旦您已經閱讀了出現的橫幅,請按空格鍵。 screen 將向您呈現一個像平常一樣的終端會話。 這個會話現在是可分離的,這意味著您將能夠在這裡開始一個命令並讓它保持運行。

您現在可以執行初始配置。 下一個命令拋出錯誤時請不要驚慌。 Minecraft 設計了這種安裝方式,以便用戶必須首先同意公司的授權協議。 您將在下一步執行此操作:

  1. java -Xms1024M -Xmx1024M -jar minecraft_server_1.18.2.jar nogui

在檢查此命令的輸出之前,讓我們仔細看看所有這些命令行參數,這些參數調整了您的伺服器:

  • Xms1024M – 這會配置伺服器以 1024MB 或 1GB 的 RAM 運行。如果您想讓伺服器以更多的 RAM 開始運行,可以提高此限制。支持 M 表示 MB 和 G 表示 GB。例如:Xms2G 將以 2GB RAM 開始運行伺服器。

  • Xmx1024M – 這會配置伺服器使用最多 1024M 的 RAM。如果您希望伺服器以更大的尺寸運行、允許更多玩家,或者覺得伺服器運行緩慢,可以提高此限制。Java 程序的獨特之處在於,它們總是要求您指定它們可以使用的最大內存量。

  • jar – 此標誌指定要運行的伺服器 jar 檔案。

  • nogui – 這告訴伺服器不要啟動 GUI,因為這是一個伺服器,你沒有圖形使用者介面。

第一次執行此命令時,通常會啟動您的伺服器,您將收到以下輸出:

Output
[22:05:31] [environment second] [22:05:31] [main/ERROR]: Failed to load properties from file: server.properties [22:05:31] [main/WARN]: Failed to load eula.txt [22:05:31] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

產生這些錯誤是因為伺服器找不到執行所需的兩個必要文件:EULA(最終用戶許可協議),位於 eula.txt 中,以及配置文件 server.properties。由於伺服器找不到這些文件,它會在您當前的工作目錄中創建它們。Minecraft 故意這樣做是為了確保您已閱讀並同意了其 EULA。

nano 或您喜歡的文本編輯器中打開 eula.txt

  1. nano eula.txt

在這個文件中,您將看到一個指向 Minecraft EULA 的鏈接。複製 URL:

~/eula.txt
#通過將下面的設置更改為 TRUE,表示您同意我們的 EULA (https://account.mojang.com/documents/minecraft_eula)。
#Tue Mar 24 22:05:31 UTC 2020
eula=false

在瀏覽器中打開 URL 並閱讀協議。然後返回到您的文本編輯器並找到 eula.txt 中的最後一行。在這裡,將 eula=false 更改為 eula=true。然後保存並關閉文件。在 nano 中,這意味著按下“Ctrl+X”退出,然後在提示時保存,“Y”,然後按 Enter。

現在您已接受 EULA,您可以根據您的要求配置伺服器。

在您當前的工作目錄中,您還會找到新建的 server.properties 檔案。此檔案包含了 Minecraft 伺服器的所有配置選項。您可以在 官方 Minecraft Wiki 上找到所有伺服器屬性的詳細列表。在啟動伺服器之前,您應該修改此檔案以符合您的喜好設置。本教程將涵蓋一些基本設置:

  1. nano server.properties

您的檔案將顯示如下:

~/server.properties
#Minecraft 伺服器屬性
#Thu Apr 30 23:42:29 UTC 2020
spawn-protection=16
max-tick-time=60000
query.port=25565
generator-settings=
force-gamemode=false
allow-nether=true
enforce-whitelist=false
gamemode=survival
broadcast-console-to-ops=true
enable-query=false
player-idle-timeout=0
difficulty=easy
spawn-monsters=true
broadcast-rcon-to-ops=true
op-permission-level=4
pvp=true
snooper-enabled=true
level-type=default
hardcore=false
enable-command-block=false
max-players=20
network-compression-threshold=256
resource-pack-sha1=
max-world-size=29999984
function-permission-level=2
rcon.port=25575
server-port=25565
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
rcon.password=
generate-structures=true
online-mode=true
max-build-height=256
level-seed=
prevent-proxy-connections=false
use-native-transport=true
motd=A Minecraft Server
enable-rcon=false

讓我們更仔細地看一下此列表中一些最重要的屬性:

  • difficulty(預設值 easy)- 這會設置遊戲的難度,例如造成多少傷害以及元素如何影響您的玩家。選項包括 peacefuleasynormalhard

  • gamemode(預設值 survival)- 這會設置遊戲模式。選項包括 survivalcreativeadventurespectator

  • 等級名稱(默認 世界)- 這設置了顯示在客戶端中的伺服器名稱。特殊字符如撇號可能需要在前面加上反斜線。這被稱為轉義字符,當特殊字符在上下文中無法正確解析時,這是一種常見做法。

  • motd(默認 一個 Minecraft 伺服器)- 顯示在 Minecraft 客戶端伺服器清單中的訊息。

  • pvp(默認 true)- 啟用玩家對玩家的戰鬥。如果設置為true,玩家將能夠參與戰鬥並互相造成傷害。

一旦您设置了所需的选项,请保存并关闭文件。

现在您可以成功启动您的服务器。

与上次一样,让我们使用1024M的RAM启动您的服务器。这次,如果需要,您还应该授权Minecraft使用高达4G的RAM。请记住,您可以根据服务器限制或用户需求调整此数字:

  1. java -Xms1024M -Xmx4G -jar minecraft_server_1.18.2.jar nogui

给初始化一些时间。很快,您的新Minecraft服务器将开始生成类似于这样的输出:

Output
[21:08:14] [Server thread/INFO]: Starting minecraft server version 1.18.2 [21:08:14] [Server thread/INFO]: Loading properties [21:08:14] [Server thread/INFO]: Default game type: SURVIVAL [21:08:14] [Server thread/INFO]: Generating keypair [21:08:15] [Server thread/INFO]: Starting minecraft server on *:25565

一旦服务器启动并运行,您将看到以下输出:

Output
[21:15:37] [Server thread/INFO]: Done (30.762s)! For help, type "help"

您的服务器现在正在运行,并且您已被呈现服务器管理员控制面板。尝试输入help

  1. help

将出现以下输出:

Output
[21:15:37] [Server thread/INFO]: /advancement (grant|revoke) [21:15:37] [Server thread/INFO]: /ban <targets> [<reason>] [21:15:37] [Server thread/INFO]: /ban-ip <target> [<reason>] [21:15:37] [Server thread/INFO]: /banlist [ips|players] ...

通过此终端,您可以运行管理员命令并控制您的Minecraft服务器。现在您将学习如何使用screen在您退出终端后保持Minecraft服务器运行。然后,您可以连接到您的Minecraft客户端并开始新游戏。

步骤4 —— 如何保持Minecraft服务器运行

现在您已经启动了您的服务器,您希望在断开SSH会话后它仍然保持运行。由于您之前使用了screen,您可以通过按Ctrl + A + D来分离此会话。您应该看到您回到了原始shell:

Output
​​ubuntu@minecraft-2204:~$ screen [detached from 3626.pts-0.minecraft-2204] $

運行此命令以查看所有屏幕會話:

  1. screen -list

您將獲得包含會話ID的輸出,您需要使用該ID來恢復該會話:

Output
There is a screen on: 3626.pts-0.minecraft-2204 (03/02/22 22:56:33) (Detached) 1 Socket in /run/screen/S-root.

要恢復會話,請將-r標誌傳遞給screen命令,然後輸入會話ID:

  1. screen -r 3626

當您準備好再次從終端登出時,請務必使用Ctrl + A + D從會話中分離,然後再登出。

第5步 — 從Minecraft客戶端連接到您的服務器

現在您的服務器已經運行,讓我們通過Minecraft客戶端連接到它。然後您就可以玩了!

啟動您的Minecraft Java版並在菜單中選擇多人遊戲

接下來,您需要添加一個要連接的服務器,所以點擊添加服務器按鈕。

在顯示的編輯服務器信息屏幕中,給您的服務器命名並輸入服務器的IP地址。這是您通過SSH連接時使用的相同IP地址。

一旦您輸入了服務器名稱和IP地址,您將返回到多人遊戲屏幕,在那裡您的服務器現在將被列出。

從現在開始,您的服務器將始終出現在此列表中。選擇它並點擊加入服務器

你已经在服务器上准备好玩了!

结论

你现在在 Ubuntu 22.04 上运行一个 Minecraft 服务器,可以和你所有的朋友一起玩!尽情探索、制作和在这个原始的 3D 世界中生存吧。记住:小心破坏者。

作者选择了Tech Education Fund作为写作捐赠计划的一部分捐赠的受益者。

Source:
https://www.digitalocean.com/community/tutorials/how-to-create-a-minecraft-server-on-ubuntu-22-04