《我的世界》是有史以来最受欢迎的游戏之一。这是一款沙盒视频游戏,它允许玩家探索无限的世界,并建造从简单的房屋到大型摩天大楼的所有事物。
本教程介绍了在Ubuntu 18.04上Minecraft Server的安装和配置。我们将使用Systemd运行Minecraft服务器,并使用mcrcon
实用程序连接到正在运行的实例。我们还将向您展示如何创建执行常规服务器备份的cronjob。
相同的说明适用于Ubuntu 16.04和任何基于Ubuntu的发行版,包括Linux Mint和Elementary OS。
先决条件
您已登录的用户必须具有 sudo权限,才能安装软件包。
安装构建mcrcon
工具所需的软件包:
sudo apt update
sudo apt install git build-essential
安装Java运行时环境
Minecraft需要Java 8或更高版本。由于Minecraft服务器不需要图形用户界面,因此我们将安装JRE的无头版本。该版本具有更少的依赖关系并且使用更少的系统资源,因此更适合服务器应用程序。
通过运行以下命令安装无头OpenJRE 8软件包:
sudo apt install openjdk-8-jre-headless
通过打印Java版本来验证安装:
java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
创建Minecraft用户
出于安全目的,Minecraft不应在root用户下运行。我们将创建一个新的系统用户,并与运行Minecraft服务器的主目录/opt/minecraft
分组:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
我们不会为此用户设置密码。这是一种很好的安全做法,因为该用户将无法通过SSH登录。要更改为minecraft
用户,您需要以root用户或具有sudo特权的用户身份登录服务器。
在Ubuntu上安装Minecraft
在开始安装过程之前,请确保切换到minecraft
用户。
sudo su - minecraft
运行以下命令在用户主目录内创建三个新目录:
mkdir -p ~/{backups,tools,server}
backups
目录将存储您的服务器备份。您稍后可以将该目录同步到远程备份服务器。tools
目录将存储mcrcon
客户端和备份脚本。server
目录将包含实际目录。 Minecraft服务器及其数据。
下载和编译mcrcon
RCON是一个协议,允许您连接到Minecraft服务器并执行命令。 mcron 是用C内置的RCON客户端。
我们将从GitHub下载源代码并构建mcrcon
二进制文件。
首先导航到~/tools
目录,然后使用以下命令从GitHub复制Tiiffi/mcrcon
信息库:
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
克隆完成后,切换到存储库目录:
cd ~/tools/mcrcon
键入以下内容,开始mcrcon
实用程序的编译:
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
完成后,您可以输入以下内容对其进行测试:
./mcrcon -h
输出看起来像这样:
Usage: mcrcon [OPTIONS]... [COMMANDS]...
Sends rcon commands to Minecraft server.
Option:
-h Print usage
-H Server address
-P Port (default is 25575)
-p Rcon password
-t Interactive terminal mode
-s Silent mode (do not print received packets)
-c Disable colors
-r Output raw packets (debugging and custom handling)
-v Output version information
Server address, port and password can be set using following environment variables:
MCRCON_HOST
MCRCON_PORT
MCRCON_PASS
Command-line options will override environment variables.
Rcon commands with arguments must be enclosed in quotes.
Example:
mcrcon -H my.minecraft.server -p password "say Server is restarting!" save-all stop
mcrcon 0.6.1 (built: May 19 2019 23:39:16)
Report bugs to tiiffi_at_gmail_dot_com or https://github.com/Tiiffi/mcrcon/issues/
下载Minecraft服务器
有多个Minecraft服务器模块,例如 Craftbukkit 或 Spigot ,可让您在服务器上添加功能(插件)并进一步自定义和调整服务器设置。在本指南中,我们将安装最新的Mojang官方Minecraft官方Minecraft服务器。
最新的Minecraft服务器的Java存档文件(JAR)可从 Minecraft下载页面下载。
在撰写本文时,最新版本为1.14.1
。在继续下一步之前,您应该检查下载页面是否有新版本。
运行以下 wget
命令,将Minecraft jar文件下载到~/server
目录中:
wget https://launcher.mojang.com/v1/objects/ed76d597a44c5266be2a7fcd77a8270f1f0bc118/server.jar -P ~/server
配置Minecraft服务器
下载完成后,将导航到~/server
目录并启动Minecraft服务器:
cd ~/server
java -Xmx1024M -Xms512M -jar server.jar nogui
首次启动服务器时,它将执行一些操作并创建server.properties
和eula.txt
文件并停止。
[23:41:44] [main/ERROR]: Failed to load properties from file: server.properties
[23:41:45] [main/WARN]: Failed to load eula.txt
[23:41:45] [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
〜/server/eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun May 19 23:41:45 PDT 2019
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作为服务运行,我们将创建一个新的Systemd单位文件。
通过输入exit
切换回您的sudo用户。
打开您的文本编辑器,然后在/etc/systemd/system/
中创建一个名为minecraft.service
的文件:
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 -Xms512M -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.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2019-05-19 23:49:18 PDT; 9min ago
Main PID: 11262 (java)
Tasks: 19 (limit: 2319)
CGroup: /system.slice/minecraft.service
`-11262 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui
最后,启用Minecraft服务在启动时自动启动:
sudo systemctl enable minecraft
调整防火墙
如果您的服务器受到防火墙的保护,并且您想从本地网络外部访问Minecraft服务器,则需要打开端口25565
。
要允许默认的Minecraft端口25565
上的流量,请输入以下命令:
sudo ufw allow 25565/tcp
配置备份
在本部分中,我们将创建一个备份Shell脚本和cronjob来自动备份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_%R).tar.gz /opt/minecraft/server
rcon "save-on"
## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete
运行以下 chmod
命令,保存文件并使脚本可执行:
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 18.04系统上成功安装Minecraft服务器,并设置了每日备份。
如果您遇到问题或有反馈,请在下面发表评论。