本文说明如何在Ubuntu 20.04系统上制作Minecraft(我的世界)服务器的方法,我们将使用Systemd运行Minecraft服务器,并使用mcrcon实用程序连接到正在运行的实例,我们还将介绍如何创建执行常规服务器备份的cronjob。
先决条件 根据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) 参考:在Ubuntu 20.04系统下安装OpenJDK 11和OpenJDK 8的方法。
创建Minecraft用户 出于安全原因,Minecraft不应在root用户下运行,我们将使用主目录/opt/minecraft创建一个新的系统用户和组,用户将具有运行Minecraft服务器的最低必需权限: sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft 我们不会为此用户设置密码,这样,用户将无法通过SSHand登录而不会受到损害,要更改为minecraft用户,您需要以root用户或具有sudo特权的用户身份登录服务器。
在Ubuntu 20.04上安装Minecraft 在开始安装过程之前,请切换到minecraft用户: sudo su - minecraft 运行以下命令在用户主目录中创建三个新目录: mkdir -p ~/{backups,tools,server} backups目录将存储您的Minecraft服务器备份,您可以将此目录同步到远程备份服务器。 tools目录将包含mcrcon客户端和备份脚本。 server目录将包含实际的Minecraft服务器及其数据。 1、下载并编译mcrcon RCON是一种协议,允许您连接到Minecraft服务器并执行命令,mcron是用C编写的RCON客户端。 我们将从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/ 2、下载Minecraft Server 有多个Minecraft服务器模块,例如Craftbukkit或Spigot,可让您在服务器上添加功能(插件),并进一步自定义和调整服务器设置。 转到Minecraft下载页面,地址是https://minecraft.net/en-us/download/server/,获取最新的Minecraft服务器的Java存档文件(JAR)的下载链接,在写本文时,最新版本为1.16。 从上面下载地址中下载或使用wget下载~/server目录中的jar文件: wget launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server 3、配置Minecraft服务器 下载完成后,切换到~/server目录并启动Minecraft服务器: cd ~/server java -Xmx1024M -Xms1024M -jar server.jar nogui 首次启动时,服务器执行一些操作,创建server.properties和eula.txt文件并停止: [15:35:14] [main/ERROR]: Failed to load properties from file: server.properties [15:35:15] [main/WARN]: Failed to load eula.txt [15: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=false更改为eula=true,运行nano ~/server/eula.txt命令: eula=true 关闭并保存文件。 接下来,打开server.properties文件并启用rcon协议并设置rcon密码: nano ~/server/server.properties 找到以下几行并更新其值,如下所示: rcon.port=25575 rcon.password=strong-password enable-rcon=true 不要忘记将强密码更改为更安全的密码,如果您不想从远程位置连接到Minecraft服务器,请确保防火墙阻止了rcon端口。 在这里,您还可以调整服务器的默认属性。
创建系统单位文件 我们将创建一个Systemd单元文件并将Minecraft作为服务运行,而不是手动启动Minecraft服务器。 通过键入exit切换回您的sudo用户。 打开文本编辑器,然后在/etc/systemd/system/目录中创建一个名为minecraft.service的文件: sudo nano /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 根据您的服务器资源修改Xmx和Xms标志,Xmx标志定义Java虚拟机(JVM)的最大内存分配池,而Xms定义初始内存分配池,另外,请确保使用正确的rcon端口和密码。 保存文件并重新加载systemd管理器配置: sudo systemctl daemon-reload 您现在可以通过键入以下命令来启动Minecraft服务器: sudo systemctl start minecraft 首次启动该服务时,它将生成多个配置文件和目录,包括Minecraft世界。 使用以下命令检查服务状态: sudo systemctl status minecraft
最后,启用在启动时自动启动Minecraft服务: sudo systemctl enable minecraft
调整防火墙 Ubuntu 20.04随附了一个名为UFW的防火墙配置工具,如果系统上启用了防火墙,并且您想从本地网络的外部访问Minecraft服务器,则需要打开25565端口: sudo ufw allow 25565/tcp
配置备份 在本部分中,我们将创建一个备份Shell脚本和cronjob来自动备份Minecraft服务器。 切换到minecraft: sudo su - minecraft 打开您的文本编辑器并创建以下文件: nano /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。
相关主题 |