如何在 Ubuntu 20.04 上安装 Spigot Minecraft 服务器
在此页
- 先决条件
- 第 1 步 - 配置防火墙
- 第 2 步 - 安装 Java 和 Git
- 第 3 步 - 创建 Minecraft 用户
- 第 4 步 - 下载并安装 Spigot
- 第 5 步 - 启动 Spigot 服务器
- 第 6 步 - 将 Spigot 配置为服务
- 第 7 步 - 连接到 Minecraft
- 第 8 步 - 自定义服务器属性
- 第 9 步 - 安装插件
- 第 10 步 - 更新 Spigot
- 结论
Spigot 是基于 CraftBukkit 修改的 Minecraft 服务器软件。它提供额外的性能优化、配置选项和功能,同时保持与所有现有插件和模组的兼容性。
在本教程中,您将学习如何在基于 Ubuntu 20.04 的服务器上构建和安装 Spigot 服务器以及安装插件。
先决条件
-
A server running Ubuntu 20.04 with a minimum of 4GB RAM and 2 CPU Cores.
-
A non-root user with sudo privileges.
-
Everything is updated.
$ sudo apt update && sudo apt upgrade
-
Install the required packages.
$ sudo apt install wget apt-transport-https gnupg nano screen
第 1 步 - 配置防火墙
第一步是配置防火墙。 Ubuntu 默认带有 ufw (Uncomplicated Firewall)。
检查防火墙是否正在运行。
$ sudo ufw status
您应该得到以下输出。
Status: inactive
允许 SSH 端口以防止防火墙在启用时中断当前连接。
$ sudo ufw allow OpenSSH
允许 Spigot 服务器的端口 25565 接受连接。
$ sudo ufw allow 25565
启用防火墙
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
再次检查防火墙的状态。
$ sudo ufw status
您应该会看到类似的输出。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
25565 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
25565 (v6) ALLOW Anywhere (v6)
第 2 步 - 安装 Java 和 Git
Spigot 安装程序需要 Java 和 Git 才能工作。 Ubuntu 20.04 附带 OpenJDK 17 作为最新可用的 Java 版本。运行以下命令来安装它。
$ sudo apt install openjdk-17-jre-headless
确认发布。
$ java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.1+12-Ubuntu-120.04, mixed mode, sharing)
安装 Git。
$ sudo apt install git
第 3 步 - 创建 Minecraft 用户
下一步是创建一个专门的用户来运行服务器。
$ sudo adduser minecraft
切换到新创建的用户。
$ sudo su - minecraft
第 4 步 - 下载并安装 Spigot
我们将使用 BuildTools.jar 应用程序构建 Spigot。第一步是切换到主目录。
minecraft:$ cd ~
为 BuildTools 创建一个新目录并转移到该目录。
minecraft:$ mkdir buildtools && cd buildtools
获取 BuildTools.jar
文件。
minecraft:$ wget -O BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
构建最新的稳定版本的 Spigot。
minecraft:$ java -jar BuildTools.jar --rev latest
根据可用的服务器资源,此过程可能需要一些时间才能完成。
检查创建的 Spigot jar 文件的名称。
minecraft:$ ls
apache-maven-3.6.0 BuildData BuildTools.jar BuildTools.log.txt Bukkit CraftBukkit Spigot spigot-1.18.1.jar work
在我们的例子中,名字是。
为您的 Spigot 服务器创建另一个目录并切换到它。
minecraft:$ cd ~ && mkdir server && cd server
将 Spigot jar 文件移动到新创建的服务器目录。
minecraft:$ mv ~/buildtools/spigot-1.18.1.jar ~/server/spigot.jar
第 5 步 - 启动 Spigot 服务器
要启动 Spigot 服务器,我们需要创建一个启动脚本,允许我们传递各种 Java 参数来优化服务器。
创建并打开 Spigot 的启动脚本。
minecraft:$ sudo nano spigotstart.sh
将以下代码粘贴到文件中。
#!/bin/sh
java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot.jar nogui
参数 -Xms3G -Xmx3G
为 4GB RAM 配置了 Java 堆空间。在我们的案例中,我们为操作系统和它需要 ram 的任何其他东西留出了 1GB 的空闲空间。将其更改为您要分配给 Spigot 服务器的 RAM 量。如果您的服务器有 16GB 的 RAM,您应该将参数设置为占用 14 或 15GB 的 RAM。
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
使启动脚本可执行。
minecraft:$ chmod +x spigotstart.sh
第一次启动您的 Spigot 服务器。
minecraft:$ ./spigotstart.sh
服务器不会启动而是终止,并给出以下消息。
[14:14:21] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
打开 eula.txt
进行编辑。
minecraft:$ nano eula.txt
将变量 eula
的值设置为 true
。
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun Dec 26 13:29:15 UTC 2021
eula=true
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
在启动服务器之前,让我们将其配置为在后台将其作为服务运行。
第 6 步 - 将 Spigot 配置为服务
服务器需要 shell 一直运行才能工作,这是不理想的。我们需要创建一个服务,以便服务器可以在开机时自动启动并在后台运行。
退出 minecraft
用户。
minecraft:$ exit
创建一个 Spigot 服务文件并打开它进行编辑。
$ sudo nano /etc/systemd/system/spigot.service
粘贴以下代码。
[Unit]
Description=SpigotMC
After=network.target
[Service]
Type=forking
User=minecraft
Group=minecraft
ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh
ExecStop=/usr/bin/screen -S minecraft -p 0 -X stuff "stop$(printf \\r)"
WorkingDirectory=/home/minecraft/server
[Install]
WantedBy=multi-user.target
完成后,按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
重新加载服务守护进程。
$ sudo systemctl daemon-reload
启用服务。
$ sudo systemctl enable spigot
启动 Spigot 服务。
$ sudo systemctl start spigot
检查服务状态。
$ sudo systemctl status spigot
? spigot.service - SpigotMC
Loaded: loaded (/etc/systemd/system/spigot.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2021-12-27 09:15:25 UTC; 6s ago
Process: 32011 ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh (code=exited, sta>
Main PID: 32012 (screen)
Tasks: 25 (limit: 4691)
Memory: 3.2G
CGroup: /system.slice/spigot.service
??32012 /usr/bin/SCREEN -d -m -S minecraft /home/minecraft/server/spigotstart.sh
??32013 /bin/sh /home/minecraft/server/spigotstart.sh
??32014 java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockEx>
Dec 27 09:15:25 spigot systemd[1]: Starting SpigotMC...
Dec 27 09:15:25 spigot systemd[1]: Started SpigotMC.
第 7 步 - 连接到我的世界
现在我们的服务器已启动并运行,是时候连接到 Minecraft 了。启动您的 Minecraft 游戏。

单击“多人游戏”按钮并通过选中“不再显示此屏幕”框来忽略未来的警告。

单击下一页上的添加服务器按钮。

输入您的服务器公共 IP 地址和名称。完成后单击完成。
您的服务器现在将出现在列表中。

单击您的服务器名称,然后按“加入服务器”按钮启动服务器。您的游戏即将开始。

您可以邀请您的朋友加入您的服务器并与他们一起玩。
第 8 步 - 自定义服务器属性
您可以通过编辑 /home/minecraft/server/server.properties
文件来自定义您的服务器。我们将通过下面的一些属性。
-
Enable command blocks: Values available are
true
andfalse
.enable-command-block=false
-
Gamemode: Values available are survival, creative, adventure, and spectator. They can also be defined by integers starting from 0 for survival, 1 for creative, 2 for adventure, and 3 for spectator.
gamemode=survival
-
Difficulty: Values available are peaceful, easy, normal, and hard. They can also be defined by integers starting from 0 for peaceful, 1 for easy, 2 for normal and 3 for hard.
difficulty=easy
-
MOTD: Stands for Message Of The Day. It is the message that is shown on the Server list page. Accepts a string value. Supports color, special characters and formatting codes. It should not be longer than 59 characters.
motd=A Minecraft Server
-
PVP: Enables the Player versus Player mode. Values available are
true
andfalse
.pvp=true
-
Server Port: Defines the port on which the Minecraft server listens to. The default value is 25565.
server-port=25565
If you change the port value to something else, you will need to enable it in the firewall; otherwise, players won't be able to connect.
-
See the Minecraft wiki for more properties.
在对这些属性进行任何更改后,您需要重新启动 Spigot 服务器才能使它们生效。
$ sudo systemctl restart spigot
第 9 步 - 安装插件
您可以从 Bukkit 插件页面下载插件。
如果您从 Spigot 下载插件,以下方法将无法使用,因为它已被阻止。您必须手动下载 Jar 文件并将其移动到服务器。但是如果你是从Bukkit下载的,使用下面的方法直接下载到你的服务器。
从以上页面下载插件的.jar
文件到/home/minecraft/server/plugins
目录。
$ sudo wget -P /home/minecraft/server/plugins/ --content-disposition <plugin url>
标志 --content-disposition
通过使用 Content-Disposition
标头确保文件以正确的文件名下载。
例如,如果您正在下载 WorldEdit 插件,这就是您下载它的方式。
$ sudo wget -P /home/minecraft/server/plugins --content-disposition https://dev.bukkit.org/projects/world
edit/files/latest
要重新加载插件,请重新启动您的 Spigot 服务器。
$ sudo systemctl restart spigot
第 10 步 - 更新 Spigot
更新 Spigot 需要您重复本指南的第 4 步以获取最新版本的 BuildTools.jar
文件,然后创建一个新的 spigot.jar
文件。确保备份旧的 jar 文件并在执行此操作之前停止服务器。
结论
我们关于在基于 Ubuntu 20.04 的系统上安装和配置 Spigot Minecraft 服务器的教程到此结束。如果您有任何问题,请在下面的评论中发表。