两个月前玩通关「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。
2 Comments
桜庭夜 博主
我也搭过一个,想着个小伙伴一起玩
玩了两天后大家失去了兴趣
服务器已经搁置好久了orz
Omega 博主
@桜庭夜
感觉我的没过多久也会被搁置在一遍233。虽然现在每天都会上去玩一玩,但玩的时间越来越少_(:з)∠)_