介绍
Minecraft(我的世界)是一款流行的沙盒视频游戏。最初于2009年发布,允许玩家在一个由方块构成的3D生成世界中建造、探索、制作和生存。截至2022年初,它是有史以来销量最高的视频游戏。在本教程中,您将创建自己的Minecraft服务器,以便您和您的朋友一起玩。具体而言,您将安装必要的软件包来运行Minecraft,配置服务器运行,然后部署游戏。
或者,您可以探索DigitalOcean 的一键式 Minecraft:Java 版服务器作为另一种安装路径。
本教程使用Minecraft 的 Java 版本。如果您通过 Microsoft 应用商店购买了 Minecraft 的版本,则将无法连接到此服务器。大多数在游戏机上购买的 Minecraft 版本,如 PlayStation 4、Xbox One 或 Nintendo Switch,也是 Microsoft 版本的 Minecraft。这些游戏机也无法连接到本教程中构建的服务器。您可以在此处获取 Minecraft 的 Java 版本。
先决条件
要按照本指南操作,您需要:
-
一台安装了最新版Ubuntu的服务器,一个具有
sudo
权限的非root用户,并启用了SSH。您可以按照本指南初始化您的服务器并完成这些步骤。Minecraft可能会消耗大量资源,因此在选择服务器大小时请考虑这一点。如果您使用的是DigitalOcean并且需要更多资源,您可以随时调整Droplet的大小以增加更多的CPU和RAM。 -
一份在本地Mac、Windows或Linux机器上安装的Minecraft Java Edition的副本。
构建自己的Minecraft服务器的步骤
步骤 1 — 安装所需的软件包并配置防火墙
在初始化服务器后,你的第一步是安装Java;你需要它来运行Minecraft。默认情况下,Ubuntu 22.04没有提供足够新的Java版本来运行Minecraft的最新版本。幸运的是,有第三方维护者继续为旧的Ubuntu版本构建更新的Java软件包,你可以通过将他们的PPA,或个人软件包存档,添加到你自己的软件包源列表中来安装它们。你可以使用以下命令来执行此操作:
接下来,更新你的软件包源以反映这个添加:
在提示时按Y
确认。如果提示重新启动任何服务,请按ENTER
接受默认值并继续。
最后,安装Java的OpenJDK版本17,特别是无头JRE。这是一个最小化的Java版本,移除了对GUI应用程序的支持。这使得它非常适合在服务器上运行Java应用程序:
你还需要使用一个名为screen
的软件来创建可分离的服务器会话。screen
允许你创建一个终端会话并从中分离,让在其上启动的进程继续运行。这很重要,因为如果你启动服务器然后关闭终端,这将终止会话并停止服务器。现在安装screen
:
现在您已经安装了软件包,我们需要启用防火墙以允许流量进入我们的Minecraft服务器。在您执行的初始服务器设置中,您只允许了ssh流量。现在您需要允许通过端口25565
进入流量,这是Minecraft用于允许连接的默认端口。在某些情况下,ufw将使用命名的流量规则,例如用于ssh的规则,默认情况下始终使用端口22,但在像这种较不常见的情况下,我们将手动指定端口号。通过运行以下命令添加必要的防火墙规则:
现在您已经安装了Java并且防火墙已正确配置,您将从Minecraft网站下载Minecraft服务器应用程序。
步骤2 —— 下载Minecraft的最新版本
现在您需要下载当前版本的Minecraft服务器。您可以通过导航到Minecraft的网站并复制标有Download minecraft_server.X.X.X.jar的链接来执行此操作,其中X是服务器的最新版本。
现在,您可以使用wget
和复制的链接将服务器应用程序下载到您的服务器:
服务器应用程序将被下载为server.jar
。如果您需要管理Minecraft的版本,或者想要升级Minecraft服务器,将下载的server.jar
重命名为minecraft_server_1.18.2.jar
可能会有所帮助,将突出显示的版本号与您刚下载的版本匹配:
如果您想下载旧版本的Minecraft,您可以在mcversions.net上找到它们的存档。但本教程将专注于当前的最新版本。现在您已经下载了,让我们开始配置您的Minecraft服务器。
步骤3 — 配置和运行Minecraft服务器
现在您已经下载了Minecraft jar文件,可以准备运行它了。
首先,运行screen
命令启动一个screen会话:
一旦您已阅读了出现的横幅,请按空格键。screen
将为您呈现一个像平常一样的终端会话。此会话现在可以分离,这意味着您可以在此处启动一个命令并将其保持运行状态。
现在您可以执行初始配置了。当下一个命令引发错误时,请不要惊慌。Minecraft设计了安装方式,以便用户首先同意公司的许可协议。接下来您将执行此操作:
在检查此命令的输出之前,让我们仔细看看所有这些命令行参数,这些参数正在调整您的服务器:
-
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
:
在此文件中,您会看到一个链接到 Minecraft EULA 的链接。复制该网址:
#通过将下面的设置更改为 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上找到所有服务器属性的详细列表。在启动服务器之前,您应该使用您喜欢的设置修改此文件。本教程将涵盖一些基本设置:
您的文件将会像这样:
#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
)- 这设置了游戏的难度,例如造成多少伤害以及元素如何影响您的玩家。选项有peaceful
、easy
、normal
和hard
。 -
gamemode
(默认survival
)- 这设置了游戏模式。选项有survival
、creative
、adventure
和spectator
。 -
level-name
(默认值world
) – 这将设置在客户端中显示的服务器名称。特殊字符如撇号可能需要在前面加上反斜杠。这被称为转义字符,并且在特殊字符可能无法在上下文中正确解析时是常见做法。 -
motd
(默认值A Minecraft Server
) – 在Minecraft客户端的服务器列表中显示的消息。 -
pvp
(默认值true
) – 启用玩家对玩家的战斗。如果设置为true
,玩家将能够参与战斗并相互造成伤害。
一旦您设置了所需的选项,请保存并关闭文件。
现在您可以成功启动服务器。
与上次一样,让我们使用 1024M 的 RAM 启动您的服务器。这次,如果需要,您还应授予 Minecraft 使用多达 4G 的 RAM 的权限。请记住,您可以根据服务器限制或用户需求调整此数字:
给初始化一些时间。很快,您的新 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
:
将出现以下类似的输出:
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:
Outputubuntu@minecraft-2204:~$ screen
[detached from 3626.pts-0.minecraft-2204]
$
运行以下命令以查看所有屏幕会话:
您将获得包含会话ID的输出,您将需要使用该ID恢复该会话:
OutputThere 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:
当您准备好再次从终端注销时,请确保使用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