如何在Ubuntu 20.04上制作Minecraft服务器

《我的世界》是有史以来最受欢迎的游戏之一。 这是一款沙盒视频游戏,玩家可以探索无限的世界,并建造从简单的房屋到高耸的摩天大楼的不同结构。

本教程说明了如何在Ubuntu 20.04上制作Minecraft服务器。 我们将使用Systemd运行Minecraft服务器, mcrcon 连接到正在运行的实例的实用程序。 我们还将向您展示如何创建执行常规服务器备份的cronjob。

先决条件

根据Minecraft官方网站的说法,对于典型设置,建议最低配置为4GB RAM。

安装构建所需的软件包 mcrcon 工具:

sudo apt updatesudo apt install git build-essential

安装Java运行时环境

Minecraft需要Java 8或更高版本。 Minecraft服务器不需要图形用户界面,因此我们将安装Java的无头版本。 该版本具有较少的依赖关系并使用较少的系统资源,因此更适合服务器应用程序。

运行以下命令以安装无头OpenJRE 11软件包:

sudo apt install openjdk-11-jre-headless

通过打印Java版本来验证安装:

java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

创建Minecraft用户#

出于安全原因,Minecraft不应在root用户下运行。 我们将使用主目录创建一个新的系统用户和组 /opt/minecraft。 用户将具有运行Minecraft服务器的最低必需权限:

sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft

我们不会为此用户设置密码。 这样,用户将无法通过SSHand登录而不会受到损害。 更改为 minecraft 用户,您需要以root用户或具有sudo特权的用户身份登录服务器。

在Ubuntu上安装Minecraft#

在开始安装过程之前,请切换到 minecraft 用户:

sudo su - minecraft

运行以下命令在用户主目录中创建三个新目录:

mkdir -p ~/{backups,tools,server}
  • backups 目录将存储您的Minecraft服务器备份。 您可以将此目录同步到远程备份服务器。
  • tools 目录将包含 mcrcon 客户端和备份脚本。
  • server 目录将包含实际的Minecraft服务器及其数据。

下载与编译 mcrcon

RCON是允许您连接到Minecraft服务器并执行命令的协议。 mcron是用C编写的RCON客户端。

我们将从GitHub下载源代码并构建 mcrcon 二进制

克隆 Tiiffi/mcrcon 从GitHub到 ~/tools/mcron 目录:

git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon

完成后,切换到 mcron 目录并构建实用程序:

cd ~/tools/mcrcongcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

完成后,确认 mcrcon 通过打印其版本已成功编译:

./mcrcon -v

输出将如下所示:

mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - https://github.com/Tiiffi/mcrcon
Bug reports:
	tiiffi+mcrcon at gmail
	https://github.com/Tiiffi/mcrcon/issues/

下载Minecraft服务器#

有多个Minecraft服务器模块,例如Craftbukkit或Spigot,可让您在服务器上添加功能(插件)并进一步自定义和调整服务器设置。

在本指南中,我们将安装最新的Mojang官方香草Minecraft服务器。 相同的说明适用于安装其他服务器mod。

转到Minecraft下载页面以获取最新的Minecraft服务器的Java存档文件(JAR)的下载链接。 在撰写本文时,最新版本是 1.16

将jar文件下载到 ~/server 目录与 wget

wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server

配置Minecraft服务器

下载完成后,切换到 ~/server 目录并启动Minecraft服务器:

cd ~/serverjava -Xmx1024M -Xms1024M -jar server.jar nogui

首次启动时,服务器执行一些操作,创建 server.propertieseula.txt 文件并停止。

[17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
[17:35:15] [main/WARN]: Failed to load eula.txt
[17:35:15] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

要运行服务器,您需要同意Minecraft EULA,如上面的输出所示。 打开 eula.txt 归档并更改 eula=falseeula=true

nano ~/server/eula.txt

〜/服务器/ eula.txt

eula=true

关闭并保存文件。

接下来,打开 server.properties 文件并启用rcon协议并设置rcon密码:

nano ~/server/server.properties

找到以下几行并更新其值,如下所示:

〜/ server / server.properties

rcon.port=25575
rcon.password=strong-password
enable-rcon=true

不要忘记改变 strong-password 为了更安全。 如果您不想从远程位置连接到Minecraft服务器,请确保rcon端口被防火墙阻止。

在这里,您还可以调整服务器的默认属性。 有关服务器设置的更多信息,请访问server.properties页面。

创建系统单位文件

我们将创建一个Systemd单元文件并将Minecraft作为服务运行,而不是手动启动Minecraft服务器。

通过键入切换回您的sudo用户 exit

打开您的文本编辑器并创建一个名为 minecraft.service 在里面 /etc/systemd/system/ 目录:

sudo nano /etc/systemd/system/minecraft.service

粘贴以下配置:

/etc/systemd/system/minecraft.service

[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop

[Install]
WantedBy=multi-user.target

修改 XmxXms 根据您的服务器资源进行标记。 的 Xmx 标志定义Java虚拟机(JVM)的最大内存分配池,而 Xms 定义初始内存分配池。 另外,请确保您使用的是正确的 rcon 端口和密码。

保存文件并重新加载systemd管理器配置:

sudo systemctl daemon-reload

您现在可以通过键入以下内容来启动Minecraft服务器:

sudo systemctl start minecraft

首次启动该服务时,它将生成多个配置文件和目录,包括Minecraft世界。

使用以下命令检查服务状态:

sudo systemctl status minecraft
● minecraft.service - Minecraft Server
     Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-06-23 17:48:44 UTC; 8s ago
   Main PID: 1338035 (java)
      Tasks: 15 (limit: 1074)
     Memory: 465.3M
     CGroup: /system.slice/minecraft.service
             └─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui

最后,启用在启动时自动启动Minecraft服务:

sudo systemctl enable minecraft

调整防火墙号

Ubuntu随附了一个名为UFW的防火墙配置工具。 如果系统上启用了防火墙,并且您想从本地网络外部访问Minecraft服务器,则需要打开端口 25565

sudo ufw allow 25565/tcp

配置备份

在本节中,我们将创建一个备份Shell脚本和cronjob来自动备份Minecraft服务器。

切换到 minecraft

sudo su - minecraft

打开您的文本编辑器并创建以下文件:

nano /opt/minecraft/tools/backup.sh

粘贴以下配置:

/opt/minecraft/tools/backup.sh

#!/bin/bash

function rcon {
  /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}

rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"

## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete

保存文件并使脚本可执行:

chmod +x /opt/minecraft/tools/backup.sh

接下来,创建一个cron作业,该作业将每天固定时间自动运行一次。

通过键入以下内容打开crontab文件:

crontab -e

要每天在23:00运行备份脚本,请粘贴以下行:

0 23 * * * /opt/minecraft/tools/backup.sh

访问Minecraft控制台#

要访问Minecraft控制台,请使用 mcrcon 效用。 您需要指定主机,rcon端口,rcon密码并使用 -t 启用 mcrcon 终端模式:

/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
> 

从远程位置访问Minecraft控制台时,请确保未阻止rcon端口。

如果您定期连接到Minecraft控制台,则无需创建此长命令,而是创建一个bash别名。

结论#

我们已经向您展示了如何在Ubuntu 20.04上制作Minecraft服务器并设置每日备份。

现在,您可以启动Minecraft客户端,连接到服务器并开始Minecraft冒险。

如果您遇到问题或有反馈,请在下面发表评论。

java Minecraft Ubuntu

Sidebar