Minecraft/Java版服务器
Minecraft 是一个 多人游戏。它使用 客户端-服务器模型,其中游戏本身是一个客户端,可以单机游玩,也可以在客户端连接到公共服务器时与其他玩家一起游玩。
安装
Java 版 Minecraft 服务器可以通过 minecraft-serverAUR 软件包安装。它提供了额外的 systemd 单元文件,并包含一个小的控制脚本。
另请参阅 #替代方案,以了解用于托管 Minecraft 的替代程序的概述。
配置
在安装过程中,会创建 minecraft
用户和组。建议建立一个 Minecraft 专用用户以提高安全性。通过在非特权用户帐户下运行 Minecraft,任何成功利用您的 Minecraft 服务器的人都只能访问该用户帐户,而不能访问您的帐户。但是,您可以安全地将您的用户添加到 minecraft
组,并向目录 /srv/minecraft
(默认)添加组写入权限,以修改 Minecraft 服务器设置。确保 /srv/minecraft
目录中的所有文件都归 minecraft
用户所有,或者该用户通过其他方式拥有读写权限。如果服务器无法访问某些文件,将会报错,甚至可能没有足够的权限将相应的错误消息写入日志。
该软件包提供了一个 systemd 服务和定时器,用于进行自动备份。默认情况下,备份位于服务器根目录下的 backup
文件夹中。虽然为了保持磁盘占用空间较小,只保留最近的 10 个备份(可通过 KEEP_BACKUPS
配置)。相关的 systemd 文件是 minecraftd-backup.timer
和 minecraftd-backup.service
。可以很容易地调整它们以满足您的喜好,例如,遵循自定义的备份间隔。
启动服务器
要启动服务器,您可以使用 systemd 或直接从命令行运行。无论哪种方式,服务器都封装在由 minecraft
用户拥有的 tmux 会话中。使用 systemd,您可以启动/启用包含的 minecraftd.service
。或者,运行
# minecraftd start
接受 EULA
为了运行 Minecraft 服务器,您必须接受终端用户许可协议 (End User License Agreement)。这只需要在安装后发生一次。 EULA 文件在软件包创建后位于 /srv/minecraft/eula.txt
下。您需要编辑此文件,声明您已同意合同才能运行服务器。您只需将
eula=false
更改为值 true
。这是一个已接受 EULA 的示例
/srv/minecraft/eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #Sat Sep 11 11:11:11 PDT 2011 eula=true
防火墙配置
server.properties
中有三个设置决定了您的服务器将使用的端口。
server-port
确定服务器将监听传入连接的 TCP
端口。默认端口为 25565
。
query.port
确定服务器将共享游戏信息/广告信息的 UDP
端口。默认端口为 25565
。请注意,由于服务器端口和查询端口是 TCP 和 UDP,它们可以共享同一个端口。要启用查询,您还需要指定 enable-query=true
。
rcon.port
确定您选择允许远程访问管理控制台的 TCP
端口。默认端口为 25575
。要启用 rcon,您还需要指定 enable-rcon=true
和 rcon.password=...
。
您至少需要在 server-port
上允许传入连接。建议允许查询及其 query.port
。另一方面,启用远程控制台访问存在安全风险,您应该谨慎允许它。
以上信息适用于官方 Minecraft 服务器。如果您使用的是替代服务器,请参阅其文档以了解有关其配置的详细信息。
服务器管理脚本
为了轻松控制服务器,您可以使用提供的 minecraftd
脚本。它可以执行基本命令,如 start
、stop
、restart
,或使用 console
连接到会话。此外,它还可以用于使用 status
显示状态信息,使用 backup
备份服务器世界目录,使用 restore
从备份还原世界数据,或使用 command do-something
在服务器控制台中运行单个命令。
调优
要调整默认设置(例如最大 RAM、线程数等),请编辑文件 /etc/conf.d/minecraft
。
例如,更高级的用户可能希望通过将其设置为 true
来启用 IDLE_SERVER
。这将使管理脚本能够在至少 IDLE_IF_TIME
时间(默认为 20 分钟)没有玩家在线时暂停服务器。当服务器暂停时,idle_server
将使用来自 nmap 的 ncat(1) (或 netcat 的任何其他实现)监听 Minecraft 端口,并在第一个传入连接时立即启动服务器。虽然这显然会延迟首次暂停后加入的时间,但它显着降低了 CPU 和内存使用率,从而降低了资源和功耗水平。
/srv/minecraft/eula.txt
文件。您需要禁用它才能最初启动。替代方案
Spigot (以及 Craftbukkit)
Spigot 是世界上使用最广泛的模组 Minecraft 服务器。它可以使用 spigotAUR 软件包安装。 spigot PKGBUILD 基于 minecraft-serverAUR 软件包中的文件构建。这意味着 spigot 服务器提供了自己的 systemd 单元文件、spigot 脚本和相应的脚本配置文件。二进制文件名为 spigot
,能够执行与 minecraftd
相同的命令。配置文件位于 /etc/conf.d/spigot
下。
请务必阅读 #配置,并在您遇到 minecraftd
的任何地方将其替换为 spigot
。
它在某种程度上隶属于 Bukkit,并且自 Bukkit 衰落以来人气大增。
Cuberite
Cuberite 是一款高效且可广泛修改的 Minecraft 服务器,用 C++ 和 Lua 编写。它比原版 Minecraft 服务器实现了更好的性能,但它与最新的 Minecraft 客户端不完全兼容(某些游戏方面可能缺失或无法工作)。
Cuberite Minecraft 服务器可以作为 cuberiteAUR 软件包安装,该软件包默认在端口 8080
上提供一个简单的 Web 界面,大多数服务器操作都可以通过浏览器轻松完成。 cuberite PKGBUILD 基于 minecraft-serverAUR 软件包中的文件构建。这意味着 cuberite 服务器提供了自己的 systemd 单元文件、cuberite 脚本和相应的脚本配置文件。二进制文件名为 cuberite
,能够执行与 minecraftd
相同的命令。配置文件位于 /etc/conf.d/cuberite
下。
请务必阅读 #配置,并在您遇到 minecraftd
的任何地方将其替换为 cuberite
。
PaperMC
PaperMC 是一款 Minecraft 服务器,与旨在提供更好性能的 Spigot 插件兼容。它可以通过 papermcAUR 安装。
请务必阅读 #配置,并在您遇到 minecraftd
的任何地方将其替换为 papermc
。
Forge
Forge 是广泛使用的 Minecraft 模组 API。以下服务器软件包可用
- forge-serverAUR 适用于最新的 Minecraft 版本 (1.19.x)
- forge-server-1.15.2AUR 适用于 Minecraft 1.15.2
- forge-server-1.14.4AUR 适用于 Minecraft 1.14.4
- forge-server-1.12.2AUR 适用于 Minecraft 1.12.2
- forge-server-1.11.2AUR 适用于 Minecraft 1.11.2
- forge-server-1.10.2AUR 适用于 Minecraft 1.10.2
- forge-server-1.9.4AUR 适用于 Minecraft 1.9.4
- forge-server-1.8.9AUR 适用于 Minecraft 1.8.9
- forge-server-1.7.10AUR 适用于 Minecraft 1.7.10
请务必阅读 #配置 部分,并将所有出现的 minecraftd
替换为 forged
(旧版本为 forge-x.x.xd
)。
Fabric
Fabric 是一个轻量级的、实验性的 Minecraft Modding 工具链。服务器包可以通过 fabric-serverAUR 安装。
请务必阅读 #配置 部分,并将所有出现的 minecraftd
替换为 fabricd
。
Quilt
Quilt 是一个开源的、社区驱动的 Modding 工具链,主要为 Minecraft 设计。服务器包可以通过 quilt-serverAUR 安装。
请务必阅读 #配置 部分,并将所有出现的 minecraftd
替换为 quiltd
。
它最初是从 Fabric 分叉而来,这意味着它在很大程度上向后兼容 Fabric Mod。
提示和技巧
Minecraft 服务器端口
默认情况下,Minecraft 服务器在端口 25565
上运行。如果输入的地址未指定端口,则假定使用此端口。
大多数 Minecraft 服务器提供商会对使用默认 Minecraft 端口的服务器收取额外费用。因此,如果您的端口与 25565
不同,您必须通过在主机名或地址末尾附加冒号 (:) 并紧跟分配给您服务器的端口来指定端口。例如,如果您的地址是 43.12.122.96
且端口是 28543
,您将连接到 43.12.122.96:28543
。