用阿里云无GUI启动Minecraft服务器

当我们想单机玩Minecraft时,如何启动Minecraft并不是一件难事,因为官方启动器以及各种HMCL之类的启动器会帮助我们完成诸如安装java、下载minecraft的jar文件、管理各种模组之类的工作。

同理,联机也不是什么难事。启动Minecraft后,我们可以轻松“向局域网开放”,然后内网穿透一下便可。

这就导致,必须有一个人先启动游戏,其他人才能联机。

我们现在希望每个玩家可以平等地加入游戏,希望让游戏服务器持久化运行。当然,网上有专门做Minecraft服务器租用的平台。

但是,我们希望把服务器放在阿里云上。

一键式部署

3分钟部署 我的世界(Minecraft) 联机服务-阿里云开发者社区 (aliyun.com)

真的是一键部署,相当方便。问题是,启动服务器后发现配置游戏参数时忘了online-mode=false,改不了了,怎么办

探索该服务的文件结构

远程连接到ecs。

/opt/minecraft目录下是游戏服务器&存档文件。

/opt/minecraft/instances/servival[or creative]/server.properties就是配置文件,可以参照server.properties – Minecraft Wiki修改。

从零开始部署

创建ecs服务器,远程连接,假设你用的是linux系统。

Step 0 安装java

教程:架设Java版服务器 - 中文 Minecraft Wiki

这里说的很清楚。

Step 1 打基础

决定你要把服务器放在哪里。假设这个位置是/opt/minecraft,那么你需要一路mkdir过来

Step 2 安装游戏文件

Minecraft Server Download | Minecraft

官方文档,但只有1.21版本。

如果你打开了文件管理,那么很容易被“上传”按钮吸引,决定本地下载再上传到ecs。

不如直接wget

1
wget https://piston-data.mojang.com/v1/objects/450698d1863ab5180c25d7c804ef0fe6369dd1ba/server.jar

右键复制链接可以得到上面jar文件的URL

Step 3 First run

1
java -Xmx1024M -Xms1024M -jar server.jar nogui

记得修改eula.txt

wiki中没有说清楚的东西

我想下载其他版本,怎么办

piston-meta.mojang.com/mc/game/version_manifest.json

这里有所有版本的manifest。

1
2
3
4
5
6
7
{
"id": "1.21",
"type": "release",
"url": "https://piston-meta.mojang.com/v1/packages/177e49d3233cb6eac42f0495c0a48e719870c2ae/1.21.json",
"time": "2024-06-13T08:32:38+00:00",
"releaseTime": "2024-06-13T08:24:03+00:00"
}

访问url中的地址,找到downloads.server.urlwget这个url

“Failed to bind to port!”时,怎么办

具体的说,是发生这个情况时,怎么办:

此类问题亦有可能是操作者疏忽导致服务端未关闭就再次开启了服务端,典型的错误操作有:Windows中直接双击了核心jar,Linux中使用守护进程运行Java等,导致服务端在后台运行而操作者未注意的情况。遇到此类问题可先检查占用该端口的进程,获取控制或将其结束,再启动服务端。

lsof -i:25565,找到进程PID,kill

nohup: 关闭workbench时不会“服务器已断开连接”

给所有命令前面加一个nohup

我要安装forge,添加mods

Downloads for Minecraft Forge找到你要安装的版本,同样的方法,wget到目录下。

运行java -jar forge-1.20.1-47.2.0-installer.jar nogui --installServer

上面的文件名是你下载的forge文件的文件名

完成后,在该目录下,会出现许多文件(夹),其中应该有run.sh,mods

可以仿照Minecraft 1.20.1 Forge服务器保姆级搭建教程(Linux系统纯Shell管理,无mcsm面板) - 哔哩哔哩 (bilibili.com)中的方法将nogui参数加到run.sh中,

然后把你要安装的mods下载到mods文件夹中。

NOTE: 模组之间会有各种依赖,可以先在本地用启动器安装模组,看看总共有哪些依赖,然后再去wget

最后一步,nohup ./run.sh

Reference

3分钟部署 我的世界(Minecraft) 联机服务-阿里云开发者社区 (aliyun.com)

教程:架设Java版服务器 - 中文 Minecraft Wiki

Minecraft Server Download | Minecraft

Minecraft 1.20.1 Forge服务器保姆级搭建教程(Linux系统纯Shell管理,无mcsm面板) - 哔哩哔哩 (bilibili.com)