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

Minecraft 是最受欢迎的游戏之一。这是一个沙盒视频游戏,玩家探索无限的世界,并建立不同的结构,从简单的房子到高耸的摩天大楼。

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

先决条件

根据官方的Minecraft网站,4GB的RAM建议作为一个典型的设置的最低配置。

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

sudo apt update
sudo 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 不应在根用户下运行。我们将创建一个新的系统用户和组与主目录。用户将具有运行 Minecraft 服务器的最低必要权限:/opt/minecraft

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

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

在 Ubuntu 上安装 Minecraft

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

sudo su - minecraft

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

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

下载和编译mcrcon

RCON 是一种允许您连接到 Minecraft 服务器并执行命令的协议。mcron是 Rcon 客户端写在 C 中。

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

将存储库从 GitHub 克隆到目录:Tiiffi/mcrcon~/tools/mcron

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

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

cd ~/tools/mcrcon
gcc -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服务器。安装其他服务器模组时也适用相同的说明。

前往 Minecraft 下载页面,获取最新的 Minecraft 服务器 Java 存档文件 (JAR) 的下载链接。在编写本文时,最新版本为 。1.16

下载带wget的目录中的 jar 文件:~/server

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

配置 Minecraft 服务器

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

cd ~/server
java -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.txteula=falseeula=true

nano ~/server/eula.txt

+/服务器/欧拉.txt

eula=true

关闭并保存文件。

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

nano ~/server/server.properties

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

+/服务器/服务器.属性

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

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

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

创建系统单元文件

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

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

打开文本编辑器并创建目录中命名的文件:minecraft.service/etc/systemd/system/

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

粘贴以下配置:

/etc/系统/系统/Minecraft.服务

[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

 

根据服务器资源修改 和 标志。该标志定义 Java 虚拟机 (JVM) 的最大内存分配池,同时定义初始内存分配池。此外,请确保您使用的端口和密码正确。XmxXmsXmxXmsrcon

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

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

粘贴以下配置:

/选择/世界/工具/备份.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 控制台,请使用实用程序。您需要指定主机、rcon 端口、rcon 密码并使用启用终端模式的交换机:mcrcon-tmcrcon

/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 别名。

 

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun35790.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2021年2月4日
下一篇 2021年2月4日

相关推荐