kotoyuuko

CORE

昨日より、明日より、笑える今が一番大好き。
github
telegram
email

如何建立一个现代的 Minecraft 服务器

哪个男孩不想有一台 Minecraft 服务器?

系统#

Minecraft 服务端使用 Java 编写,可以跨平台运行,因此可以使用各种 Linux 发行版,甚至可以用 Windows 开服务器。不过为了服务器的稳定运行,还是不建议使用 Windows 开服务器。

本文使用 Debian 10 作为服务器系统,其他系统操作方法大同小异。

安装 Java 运行环境#

Debian 安装 Java 环境很方便,直接使用 apt 安装即可。

apt install default-jre

下载 Paper 服务端#

Minecraft 有官方服务端,当然也有很多第三方服务端。这里我选择了 Paper 服务端。

Paper 服务端可以直接从他们的官网下载到:papermc.io/downloads

下载后得到的 jar 文件用 scp 上传到服务器即可。

建立运行用户#

为了服务器的安全,需要建立一个专门用于运行 Paper 服务端的用户:

adduser minecraft

将 Paper 服务端移动到 /opt/minecraft 并赋予用户权限:

mv /path/to/paper.jar /opt/minecraft/paper.jar
chown -R minecraft:minecraft /opt/minecraft

初次运行#

使用下面的命令运行服务端:

java -Xmx4G -Xms2G -jar paper.jar nogui

第一次运行服务端会提示需要同意许可协议,打开 eula.txteula 改为 true 即可。

建立 systemd 服务#

作为一台 Minecraft 服务器,Paper 服务端需要 24 小时运行,为了方便管理这里使用 systemd 进行管理。

首先需要安装依赖的软件:

apt install screen

建立 /lib/systemd/system/minecraft.service 文件,内容如下,注意需要修改对应的目录、服务端文件和使用内存的大小:

# From: https://minecraft.gamepedia.com/Tutorials/Server_startup_script
[Unit]
Description=Minecraft Server
After=network.target

[Service]
WorkingDirectory=/opt/minecraft
PrivateUsers=true
User=minecraft
Group=minecraft
ProtectSystem=full
ProtectHome=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
ExecStart=/bin/sh -c '/usr/bin/screen -DmS minecraft /usr/bin/java -server -XX:+UseCompressedOops -Xss256k -XX:ParallelGCThreads=16 -Xms3G -Xmx5G -jar paper.jar'
ExecReload=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "reload"\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "save-all"\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "stop"\\015'
ExecStop=/bin/sleep 10
Restart=on-failure
RestartSec=60s

[Install]
WantedBy=multi-user.target

现在就可以使用 systemd 管理 Paper 服务端了:

systemctl enable minecraft.service
systemctl start minecraft.service
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。