如何创建 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的网站并复制标有Download 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的内存运行。如果您希望服务器以更多的内存启动,可以提高此限制。支持M代表兆字节和G代表千兆字节的选项。例如:Xms2G 将以2GB内存启动服务器。

  • Xmx1024M – 这将配置服务器最多使用1024M的内存。如果您希望服务器以更大的尺寸运行、允许更多玩家,或者如果您感觉服务器运行缓慢,可以提高此限制。Java程序是独特的,因为它们总是要求您指定它们可以使用的最大内存量。

  • jar – 此标志指定要运行的服务器jar文件。

  • nogui – 这告诉服务器不要启动图形用户界面,因为这是一个服务器,你没有图形用户界面。

第一次运行此命令时,通常会启动服务器,您将收到以下输出:

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 的链接。复制该网址:

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

在您的网络浏览器中打开该网址并阅读协议。然后返回到您的文本编辑器并找到eula.txt中的最后一行。在这里,将eula=false更改为eula=true。然后保存并关闭文件。在nano中,这意味着按“Ctrl+X”退出,然后在提示保存时按“Y”,然后按 Enter。

现在您已接受了用户许可协议,可以根据您的需求配置服务器。

在您当前的工作目录中,您还会找到新创建的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

  • level-name(默认值world) – 这将设置在客户端中显示的服务器名称。特殊字符如撇号可能需要在前面加上反斜杠。这被称为转义字符,并且在特殊字符可能无法在上下文中正确解析时是常见做法。

  • motd(默认值A Minecraft Server) – 在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.

要恢复会话,请向screen命令传递-r标志,然后输入您的会话ID:

  1. screen -r 3626

当您准备好再次从终端注销时,请确保使用Ctrl + A + D分离会话,然后退出。

步骤5 —— 从 Minecraft 客户端连接到您的服务器

现在您的服务器已经运行起来了,让我们通过 Minecraft 客户端连接到它。然后您就可以开始游戏了!

启动您的 Minecraft Java 版本,并在菜单中选择多人游戏

接下来,您需要添加一个服务器以连接到它,因此单击添加服务器按钮。

在显示的编辑服务器信息屏幕中,给您的服务器取一个名称,并输入服务器的IP地址。这是您通过 SSH 连接时使用的相同IP地址。

一旦输入了服务器名称和IP地址,您将被带回到多人游戏屏幕,在那里您的服务器现在将被列出。

从现在开始,您的服务器将始终出现在此列表中。选择它并单击加入服务器

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

结论

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

作者选择了 技术教育基金 作为 Write for Donations 计划的一部分捐赠对象。

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