《我的世界》是有史以来最受欢迎的游戏之一。这是一款关于放置方块并进行冒险的沙盒视频游戏。
在本教程中,我们将完成在 CentOS 7 上安装和配置 Minecraft 服务器所需的步骤。我们将使用 Systemd 来运行 Minecraft 服务器和mcrcon
用于连接到正在运行的实例的实用程序。我们还将向您展示如何使用 Cron 作业安排自动服务器备份。
先决条件#
您登录时必须拥有的用户须藤权限能够安装软件包。
安装构建所需的软件包mcrcon
tool:
sudo yum install git
sudo yum group install "Development Tools"
安装Java运行环境#
Minecraft 需要 Java 8 或更高版本。因为 Minecraft 服务器不需要图形用户界面,所以我们将安装 openjdk 的无头版本。该版本更适合服务器应用程序,因为它具有较少的依赖性并且使用较少的系统资源。
The Java的安装非常简单,只需运行:
sudo yum install java-1.8.0-openjdk-headless
通过打印验证安装Java版本
:
java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
创建 Minecraft 用户#
出于安全原因,不建议在 root 用户下以 Minecraft 身份运行服务。
We’ll 创建一个新的系统用户和组minecraft
与主目录/opt/minecraft
将运行 Minecraft 服务器:
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
我们不会为此用户设置密码。这是良好的安全实践,因为该用户将无法通过 SSH 登录。要更改为minecraft
用户您需要以 root 或具有 sudo 权限的用户身份登录到服务器。
在 CentOS 上安装 Minecraft#
在开始安装过程之前,请确保您切换到用户
minecraft
:
sudo su - minecraft
使用以下命令在用户主目录中创建三个新目录:
mkdir -p ~/{backups,tools,server}
- The
backups
目录将存储您的服务器备份。您稍后可以将此目录同步到远程备份服务器。
- The
tools
目录将存储mcrcon
客户端和备份脚本。
- The
server
目录将包含实际的 Minecraft 服务器及其数据。
下载并编译 mcrcon#
RCON 是一种允许您连接到 Minecraft 服务器并执行命令的协议。mcron是用 C 语言构建的 RCON 客户端。
我们将从 GitHub 下载源代码并构建mcrcon
binary.
首先移动到~/tools
目录并克隆Tiiffi/mcrcon
使用以下命令从 GitHub 获取存储库:
cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git
克隆存储库后,navigate到它的目录:
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 服务器模组,例如工艺包
or Spigot它允许您在服务器上添加功能(插件)并进一步自定义和调整服务器设置。在本教程中,我们将安装最新的 Mojang 官方普通 Minecraft 服务器。
最新的 Minecraft 服务器的 Java 存档文件 (JAR) 可以从我的世界下载页面
.
在撰写本文时,最新版本是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
and eula.txt
文件并停止。
[14:33:44] [main/ERROR]: Failed to load properties from file: server.properties
[14:33:45] [main/WARN]: Failed to load eula.txt
[14:33: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
to eula=true
:
nano ~/server/eula.txt
〜/服务器/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
找到以下行并更新其值,如下所示:
〜/服务器/服务器.properties
rcon.port=25575
rcon.password=strong-password
enable-rcon=true
不要忘记更改strong-password
到更安全的东西。
如果您不想从远程位置连接到 Minecraft 服务器,请确保防火墙阻止 rcon 端口。
在这里,您还可以调整服务器的默认属性。有关可能设置的更多信息,请访问服务器属性
page.
创建 Systemd 单元文件#
为了将 Minecraft 作为服务运行,我们将创建一个新的 Systemd 单元文件。
通过输入切换回您的 sudo 用户exit
.
打开你的文本编辑器并创建一个名为minecraft.service
in the /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 -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
and Xms
根据您的服务器资源进行标记。这Xmx
flag 定义 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: disabled)
Active: active (running) since Sun 2019-05-19 23:49:18 PDT; 9min ago
Main PID: 17356 (java)
CGroup: /system.slice/minecraft.service
└─17356 /usr/bin/java -Xmx1024M -Xms512M -jar server.jar nogui --noconsole
使 Minecraft 服务在启动时自动启动:
sudo systemctl enable minecraft
调整防火墙#
如果你的服务器是受防火墙保护要从本地网络外部访问 Minecraft 服务器,您需要打开端口25565
:
sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
sudo firewall-cmd --reload
配置备份#
在本节中,我们将创建一个备份脚本和 cronjob 来自动备份 Minecraft 服务器。
首先切换到minecraft
user:
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命令:
chmod +x /opt/minecraft/tools/backup.sh
打开 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 控制台,您应该创建一个bash 别名
.
结论#
您已在 CentOS 7 系统上成功安装了 Minecraft 服务器并设置了每日备份。
如果您遇到问题或有反馈,请在下面发表评论。