Ubuntu 16.04 部署Minecraft服务器 教程

发布于 2019-11-14  2.54k 次阅读


两个月前玩通关「AI:梦境档案」后突然又想玩玩Minecraft。但这个想法一开始也就只是想想,不到一天早就忘得精光。

最近又想起这件事,就在闲置的某个国内VPS上试着部署了一下。目前状况是能跑。于是就赶紧趁热记下部署方法,省的下次部署的时候再去啃文档。

1.准备工作

在部署MC服务器之前,需要做以下准备工作:

  • 获取一个VPS
  • 安装一个SSH工具,例如MobaXterm

由于这次我们需要部署的是个游戏服务器,所以比较推荐使用国内的VPS以保证更稳定的连接。另外服务器的内存最好稍微大一点,最少大概需要1G内存。(如果内存在2G以上那就更棒啦~)

本教程中使用的VPS的内存是2G,发行版是Ubuntu 16.04(手抖选错,懒得再重装)。

2.部署教程

准备完成了吗?那就启动SSH连接到VPS开始部署吧。

如果不想看我废话的话,直接无脑把所有命令粘贴到终端中也是可以的(笑)。

2.1.安装依赖

首先惯例地update一下吧。

apt update

更新完后需要安装两个软件:用于运行MC服务器的Java和用于把服务器挂在后台的Screen。

apt install openjdk-8-jre-headless screen -y

2.2.下载服务端

接着就可以下载MC服务端了。我使用的服务端是SpongeForge这种组合。其中Forge可以支持在服务器上使用mod,而Sponge可以支持在服务器上使用插件。

(事实上我对这些基本一无所知,只是想着搞个能跑且可以装mod的服务器就行ˋ( ° ▽、° ) )

在下载服务端之前,需要先创建一个用于存放MC服务端文件的目录。在本教程中,MC服务端文件存放目录为/opt/mc

创建目录并且进入该目录。

mkdir -p /opt/mc
cd /opt/mc

听老司机说,版本1.12.2支持的mod比较多,所以我就决定安装这个版本的服务端。

在下载服务端文件之前,可以先去查看一下Forge网站上最新的稳定版服务端下载链接。(链接:https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.12.2.html)

需要下载的有两个东西:安装器installer和通用启动器universal。

wget http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.23.5.2768/forge-1.12.2-14.23.5.2768-installer.jar
wget http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.23.5.2768/forge-1.12.2-14.23.5.2768-universal.jar

由于服务器位于国内,而Forge是个国外网站,所以下载速度真的特~别慢。泡杯Java边喝边祈祷赶紧下完吧。

2.3.安装服务端

两个文件下载完成后,先运行安装器installer。它会自动下载并安装相应版本的MC服务端。

没错,因为还是需要下载东西,所以这又得要好长一段时间。接着祈祷吧(笑)。

java -jar forge-1.12.2-14.23.5.2768-installer.jar --installServer nogui

当服务端安装完毕后,这个安装器的任务就已经完成了,可以把它删除。

rm forge-1.12.2-14.23.5.2768-installer.jar

2.4.同意EULA条款

在服务端安装完毕后,就可以运行启动器universal先跑一下服务端啦。

java -jar forge-1.12.2-14.23.5.2768-universal.jar nogui

执行了上面那条命令之后,MC服务器就跑了起来……本来应该是这样的。

但事实是服务端丢下以下日志后自动关闭了。

[03:53:56] [main/WARN] [minecraft/ServerEula]: Failed to load eula.txt
[03:53:56] [main/INFO] [minecraft/MinecraftServer]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

日志说,必须同意EULA条款才能够运行MC服务器。

编辑eula.txt,将eula=false这一行的false改成true保存即可。

sed -i 's/eula=false/eula=true/g' eula.txt

2.5.下载Sponge

Sponge是个MC服务器的插件API,可以让MC服务端使用插件。

将Sponge下载到服务器目录下的mods/目录即可。

cd mods
wget https://repo.spongepowered.org/maven/org/spongepowered/spongeforge/1.12.2-2825-7.1.6/spongeforge-1.12.2-2825-7.1.6.jar

接着可以在mods/目录下创建一个plugins/目录,之后将想要使用的插件的JAR文件放在该目录后重启MC服务器就可以运行插件。

mkdir plugins

最后别忘记回到MC服务端启动器所在的目录。

cd ..

2.6.上传mod与插件

在正式启动MC服务端之前,最好先把想要用的mod与插件先上传到服务器上。

mod的上传位置是MC服务端目录下的mods/目录,插件的上传位置是MC服务端目录下的mods/plugins/目录。

2.7.测试启动服务端

当一切完成之后,就可以启动服务端啦。

java -jar forge-1.12.2-14.23.5.2768-universal.jar nogui

这次执行这条命令后服务端就可以正常运行。

但如果就这样运行的话,当你关闭SSH连接之后,MC服务端也会随之关闭。因此就要用到一开始安装的Screen将MC服务器挂在后台。

现在先在MC服务端的控制台上输入这条命令关闭服务端。

stop
  点击这里☆查看更多  

2.8.编写启动脚本

为了偷懒起见,可以在服务器/root目录下写一个MC服务端启动脚本。

先回到/root目录。

cd

然后将下面的命令一次性复制到终端中,创建一个启动脚本。文件名为mc.sh

cat >> mc.sh << EOF
#!/bin/bash
cd /opt/mc
java -Xmx1024M -Xms1024M -jar forge-1.12.2-14.23.5.2768-universal.jar nogui
EOF

给这个脚本赋予一个执行权限后,就可以运行该脚本。

chmod +x mc.sh

2.9.启动服务端

接下来终于可以正式启动服务端啦。

首先使用Screen新建一个名为mc的窗口。

screen -S mc

接着运行启动脚本。

bash mc.sh

脚本运行之后,你就可以按下CTRL+A组合键后再按D键把mc窗口挂在后台。这时就算你关闭了SSH连接,MC服务端依旧好好地在后台跑着。

回到mc窗口的命令是:

screen -r mc

当你关闭了MC服务端,不再需要mc窗口时,可以在位于mc窗口中时按下CTRL+A组合键,再按K键,然后按Y键删除mc窗口。

3.个人吐槽

一顿操作下来,感觉要部署一个MC服务器似乎比想象中简单。现在我的服务器依旧能够正常地跑着,希望不要在我玩着玩着的时候突然挂掉_(:з)∠)_。

当然,要让服务器稳定运行比让服务器能跑起来难上不少。也许之后我还会继续研究如何优化服务器吧,前提是不要在新鲜感过后又把这个MC服务器放置play。