如何在 CentOS 7 上安装 Minecraft 服务器

2023-11-19

《我的世界》是有史以来最受欢迎的游戏之一。这是一款关于放置方块并进行冒险的沙盒视频游戏。

在本教程中,我们将完成在 CentOS 7 上安装和配置 Minecraft 服务器所需的步骤。我们将使用 Systemd 来运行 Minecraft 服务器和mcrcon用于连接到正在运行的实例的实用程序。我们还将向您展示如何使用 Cron 作业安排自动服务器备份。

先决条件#

您登录时必须拥有的用户须藤权限能够安装软件包。

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

sudo yum install gitsudo 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 ~/serverjava -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根据您的服务器资源进行标记。这Xmxflag 定义 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/tcpsudo 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 服务器并设置了每日备份。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上安装 Minecraft 服务器 的相关文章

随机推荐

  • 如何在 Fedora 和 RHEL 系统中安装 Google Chrome

    Google Chrome 是一款功能强大 快速且流行的网络浏览器 以其简约的设计和强大的功能套件而闻名 虽然 Fedora 和 Red Hat Enterprise Linux RHEL 系统配备了默认的 Web 浏览器 大多数情况下为
  • 如何在 Ubuntu 上创建 sudo 用户

    The sudo命令旨在允许用户以另一个用户 默认为 root 用户 的安全权限运行程序 在本指南中 我们将向您展示如何在 Ubuntu 系统上创建具有 sudo 访问权限的新用户 然后 您可以使用此用户帐户执行管理命令 而无需以 root
  • Linux 中的 lsmod 命令(列出内核模块)

    lsmod是一个命令行实用程序 显示有关已加载的 Linux 内核模块的信息 内核模块 内核是操作系统的核心组件 它管理系统的资源 是计算机硬件和软件之间的桥梁 Linux内核采用模块化设计 内核模块 通常称为驱动程序 是扩展内核功能的一段
  • 如何 Grep 查找多个字符串和模式

    grep是一种功能强大的命令行工具 允许您在一个或多个输入文件中搜索与正则表达式匹配的行 并将每个匹配行写入标准输出 在本文中 我们将向您展示如何使用 GNUgrep搜索多个字符串或模式 Grep 多种模式 GNU grep支持三种正则表达
  • 如何在Linux上挂载ISO文件

    ISO 文件是一种存档文件 通常包含 CD 或 DVD 的完整映像 例如 大多数操作系统 例如 Windows Linux 和 macOS 都以 ISO 映像的形式分发 ISO 文件可以使用流行的存档程序提取 安装在循环设备上并写入 USB
  • 如何在 Ubuntu 18.04 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 并且是强大的 Ruby on Rails 框架背后的语言 在本教程中 我们将向您展示在 Ubuntu 18 04 系统上安装 Ruby 的三种不同方法 先决条件 在开始学习本教程之前 请确
  • 使用 PuTTYgen 在 Windows 上生成 SSH 密钥

    Secure Shell SSH 是一种加密网络协议 用于客户端和服务器之间的安全连接 支持各种身份验证机制 两种最流行的机制是基于密码的身份验证和基于公钥的身份验证 使用 SSH 密钥比传统的密码身份验证更安全 更方便 本教程介绍如何使用
  • 如何在 CentOS 7 上设置 Apache 虚拟主机

    Apache 虚拟主机允许多个网站在一台 Web 服务器上运行 使用虚拟主机 您可以指定站点文档根 包含网站文件的目录 为每个站点创建单独的安全策略 为每个站点使用不同的 SSL 证书等等 在本教程中 我们将提供有关如何在 CentOS 7
  • Linux 文件命令

    Linuxfile命令显示文件的类型 当您必须找出以前从未见过的文件类型或文件没有文件扩展名时 这会很有帮助 Linux 文件命令语法 Linux 的语法file命令如下 file OPTION FILE 它可以采用一个或多个文件名作为其参
  • 如何在 Ubuntu 20.04 上配置静态 IP 地址

    本文介绍如何在 Ubuntu 20 04 上设置静态 IP 地址 通常 在大多数网络配置中 IP 地址由路由器 DHCP 服务器动态分配 在不同情况下可能需要设置静态 IP 地址 例如配置端口转发或运行媒体服务器 使用 DHCP 配置静态
  • 如何在 Bash 中将 stderr 重定向到 stdout

    将命令的输出重定向到文件或通过管道将其传输到另一个命令时 您可能会注意到错误消息打印在屏幕上 在 Bash 和其他 Linux shell 中 当程序执行时 它使用三个标准 I O 流 每个流都由一个数字文件描述符表示 0 stdin 标准
  • 如何在 Ubuntu 18.04 上安装 PHP

    在本教程中 我们将介绍在 Ubuntu 18 04 上安装发行版的默认 PHP 7 2 并将其与 Nginx 和 Apache 集成所需的步骤 我们还将向您展示如何安装 PHP 7 1 和 7 3 大多数流行的 PHP 框架和应用程序包括W
  • 如何在 Ubuntu 18.04 上使用 Apache 安装 Joomla

    Joomla 是最流行的开源内容管理系统之一 为数十万个网站提供支持 它是用 PHP 编写的 包含大量可以通过免费和高级扩展和主题进行扩展的功能 使用 Joomla 您可以轻松构建电子商务商店 个人网站 社交网站或博客 在本教程中 我们将解
  • 如何在 Ubuntu 20.04 上安装和使用 Wine

    Wine 是一个开源兼容层 允许您在类 Unix 操作系统 例如 Linux FreeBSD 和 macOS 上运行 Windows 应用程序 Wine是 Wine Is Not an Emulator 的缩写 它将 Windows 系统调
  • 如何在 CentOS 8 上安装 Skype

    Skype是世界上最流行的通信应用程序之一 它允许您免费拨打在线音频和视频电话 并以经济实惠的价格拨打全球手机和固定电话 本文介绍如何在 CentOS 8 上安装最新版本的 Skype 在 CentOS 上安装 Skype Skype 不是
  • 如何在 Ubuntu 20.04 上安装 Ruby

    Ruby 是当今最流行的编程语言之一 它具有优雅的语法 注重简单性和生产力 Ruby 是强大的 Ruby on Rails 框架背后的语言 在本教程中 我们将向您展示在 Ubuntu 20 04 上安装 Ruby 的三种不同方法 来自标准
  • 如何在 CentOS 7 上安装 Node.js 和 npm

    Node js 是一个跨平台的 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 Node js 主要用于后端 但作为全栈和前端解决方案也很受欢迎 npm 是 Node Package Manager 的缩写
  • 如何在 CentOS 8 上安装 Tomcat 9

    Apache Tomcat 是 Java Servlet JavaServer Pages Java 表达式语言和 Java WebSocket 技术的开源实现 它是当今世界上采用最广泛的应用程序和 Web 服务器之一 Tomcat 使用简
  • 如何在 Debian 9 上安装 Asterisk

    Asterisk 是最流行且广泛采用的用于构建通信应用程序的开源框架 它被世界各地的个人 小型企业 大型企业和政府使用 Asterisk 功能包括电话会议 语音邮件 等待音乐 呼叫转接 呼叫排队 呼叫录音 数据库存储 检索等等 在本教程中
  • 如何在 CentOS 7 上安装 Minecraft 服务器

    我的世界 是有史以来最受欢迎的游戏之一 这是一款关于放置方块并进行冒险的沙盒视频游戏 在本教程中 我们将完成在 CentOS 7 上安装和配置 Minecraft 服务器所需的步骤 我们将使用 Systemd 来运行 Minecraft 服