ubuntu20.04创建Minecraft服务器

ubuntu20.04创建Minecraft服务器

Minecraft 一直是最流行的游戏之一。它是一个沙盒视频游戏,用户可以体验无限的世界,并且可以构建不同的结构,从简单的房子到高耸的摩天大楼。

这个指南解释如何在 Ubuntu 20.04 上如何搭建我的世界服务器。我们将会使用 Systemd 来运行我的世界服务器以及mcrcon工具来连接运行的实例。我们也将向你展示如何创建一个计划任务,执行常规的服务器备份。

一、前提

根据 Minecraft 官方网站,4GB RAM 内存是最基本的配置。

安装必要的软件包来构建mcrcon工具:

sudo apt update
sudo apt install git build-essential

二、安装 Java 运行环境

Minecraft 需要 Java 8 或者更高版本。 我的世界服务器不需要图形用户界面,因此我们将会安装 Java 的无头模式版本。这个版本更适合服务器应用,因为它有更少的依赖,并且使用更少的系统资源。

我们使用压缩包安装

cd /opt
sudo wget https://download.oracle.com/java/17/archive/jdk-17.0.10_linux-x64_bin.tar.gz
sudo mv jdk-17.0.10\ jdk17

三、创建 Minecraft 用户

因为安全原因, Minecraft 不应该在 root 用户下运行。我们将会创建一个新的系统用户和用户组,用户主目录 /opt/minecraft。这个用户有最小权限,来运行 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 服务器和它的数据。

4.1 下载并且编译 mcrcon

RCON 是一个协议,它允许你连接到 Minecraft 服务器,并且执行命令。mcron是一个 RCON 客户端,使用 C 语言编写而成。

我们将会从 Github 下载最新的源代码,并且构建 mcrcon二进制文件。

从 Github 克隆 Tiiffi/mcrcon源到 ~/tools/mcron目录:

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

一旦完成,验证 mcrcon编译成功,打印它的版本:

./mcrcon -v
mcrcon 0.7.2 (built: Feb 22 2024 01:39:23) - https://github.com/Tiiffi/mcrcon
Bug reports:
        tiiffi+mcrcon at gmail
        https://github.com/Tiiffi/mcrcon/issues/

4.2 下载 Minecraft 服务器

有一些 Minecraft 服务器 mods 例如 Craftbukkit 或者 Spigot ,允许你在你的服务器上添加特性(插件)以及定制,以及调整服务器设置。

在这个指南中,我们将会安装最新的 Mojang 官方 vanilla 我的世界服务器。同样的指令,同样适合于其他的服务器 mods。

Minecraft 下载页面 下载最新的 Minecraft 服务器 Java 压缩包(JAR)。在写作的时候,最新的版本是1.20.4。

使用wget下载 jar 文件到~/server目录。

wget https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar -P ~/server

4.3 配置 Minecraft 服务器

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

cd ~/server
/opt/jdk17/bin/java -Xmx2048M -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.txt文件,并且修改 eula=falseeula=true:

vim ~/server/eula.txt
eula=true

关闭并且保存文件。

下一步,打开server.properties文件,并且启动rcon协议,并且设置 rcon 密码:

vim ~/server/server.properties

定位到下面的行,并且更新它们的值,就像下面显示的一样:

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

不要忘记将 strong-password修改为一些更安全的密码。如果你不想从远程位置访问 Minecraft 服务器,确保 rcon 端口被防火墙所阻塞。
复制
在这里,你可以调整服务器的默认属性。想要获取更多关于服务器设置的信息,浏览minecraft.service页面。

五、创建 Systemd 单元文件

与手动启动 Minecraft 服务器相比,我们将会创建一个 Systemd 单元文件,并且将 Minecraft 当作服务来运行。

通过exit来切换回你的 sudo 用户。

打开你的文本编辑器,并且在/etc/systemd/system/目录下创建一个名为minecraft.service的文件:

sudo vim /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=/opt/jdk17/bin/java -Xmx2048M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p La0Shu5. stop

[Install]
WantedBy=multi-user.target

根据你的服务器资源来调整XmxXms标志。Xmx标志定义 Java 虚拟机的最大申请内存。而Xms定义了初始申请内存。当前,确保你使用了正确的rcon端口和密码。

保存文件,并且重新加载 systemd 管理配置:

sudo systemctl daemon-reload
sudo systemctl start minecraft
sudo systemctl status minecraft

输出:

● minecraft.service - Minecraft Server
     Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-02-22 02:12:26 UTC; 12min ago
   Main PID: 17944 (java)
      Tasks: 32 (limit: 4516)
     Memory: 1.7G
        CPU: 2min 7.739s
     CGroup: /system.slice/minecraft.service
             └─17944 /usr/bin/java -Xmx2048M -Xms1024M -jar server.jar nogui

最后,启动 Minecraft 服务开机启动。

sudo systemctl enable minecraft

六、调整防火墙

Ubuntu 附带防火墙工具 UFW。如果在你的系统上启用了防火墙,你想从你的本地网络访问 Minecraft 服务器,你需要打开端口25565:

sudo ufw allow 25565/tcp

七、配置备份

在这一节,我们创建一个备份 shell 脚本和计划任务,以便自动备份 Minecraft 服务器。

切换到minecraft:

sudo su - minecraft

打开你的文本编辑器,并且创建下面的文件:

vim /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

下一步,创建一个定时任务,每天自动在一个固定时间运行一次。

打开你的 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 La0Shu5. -t
Logged in. Type "Q" to quit!
>

从远程位置访问 Minecraft 终端,确保 rcon 端口没有被阻塞。

如果你正常连接到 Minecraft 终端,不想输入一大串命令,你可以创建一个 bash 关联

九、总结

我们已经向你展示如何在 Ubuntu 20.04 上搭建一个 Minecraft(我的世界)服务器,并且设置每天备份。

现在你可以启动你的 Minecraft 客户端,连接到服务器,并且开始 Minecraft 冒险。

原文 :https://linuxize.com/post/how-to-make-minecraft-server-on-ubuntu-20-04/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值