Ubuntu我的世界开服指南

59

系列第二篇:我的世界是世界上最好的联机游戏!——Ubuntu我的世界开服指南

引言:

在我不算漫长的游戏生涯中,我不知为什么就成为了朋友们的开服工具。随着时间的积累,我积累了许多关于游戏的宝贵经验。我不希望这些经验白白浪费,因此决定将它们整理成文,以便那些尚未深入研究联机游戏的朋友们能够快速入门。于是,我便着手撰写了这个系列:《如何成为游戏好友们的“牛马”》。

该系列的实操前提是你有台有公网IP的服务器,或是有一台VPS+无公网IP服务器,且该教程基于Ubuntu24.01,默认使用ssh连接服务器!!

基本开服流程

  • 不同版本的Java来满足不同版本的服务器

  • 原版、forge和fabric

  • 模组服载入mod

  • 配置server.properties

  • 开服!

这篇文章可能会有点长,基本包括了我在开服路上踩过的大部分坑(没有的就是没想起来),内容基本上可以满足大多数我的世界开服需求,也可以使用命令行进行明确的版本管理,为什么没有插件服呢?因为我的群友们不玩插件服。

Java的多版本切换

我们在使用Java的时候,基本上是使用java -Xmx32G -jar core.jar nogui来启动一个服务器,这里的“java”就是我们所要进行版本管理的,具体要如何进行版本管理呢,我一般用两个办法:1.update-alternatives;2.JEnv;3.直接从路径启动。

JEnv的使用

首先我们要从GitHub仓库克隆JEnv到本地

git clone https://github.com/jenv/jenv.git ~/.jenv

安装jEnv后,需要将jEnv的bin目录添加到环境变量中,并初始化jEnv。在shell配置文件(如.bashrc、.bash_profile等)中添加以下内容:

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile

​​

保存文件后,执行以下命令使更改生效:

source ~/.bash_profile

JEnv就配置好了,那java要怎么要怎么下载呢?我们可以到甲骨文官网Oracle JDK下载,这里以Java21为例,我们选择适合我们的压缩包我这里选择x64 Compressed Archive

mkdir java
cd java
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

然后解压

tar -zxvf jdk-21_linux-x64_bin.tar.gz

Java21就被安装在~/java/jdk-21.0.5这个路径下,接下来我们就要把Java给添加到JEnv中

使用jenv add命令将Java版本添加到jEnv中:

jenv add ~/java/jdk-21.0.5 # java的安装路径
jenv versions # 列出所有可用的Java版本
jenv global 21 # 设置全局Java版本
java --version

这样我们就可以很方便的对Java的版本进行管理,如果要使用别的不同版本的Java,同样下载了add一下就好了。

使用update-alternatives

对于Java的安装,与上文一样,这里就不再赘述,只介绍他的管理办法,如果需求只是Java版本的管理,完全可以只使用JEnv:

使用--install选项创建符号链接,并指定优先级:

sudo update-alternatives --install /usr/bin/java java ~/java/jdk-21 1
sudo update-alternatives --install /usr/bin/java java ~/java/jdk-22 2 # 假设有两个版本的Java

列出可用的Python替代版本

sudo update-alternatives --list java

使用下方的命令随时在列出的Java替代版本中任意切换:

sudo update-alternatives --config java

移除替代版本

一旦系统中不再存在某个Python的替代版本时,可以将其从update-alternatives列表中删除掉。例如,移除列表中的java22版本:

sudo update-alternatives --remove java ~/java/jdk-22

使用update-alternatives的办法看似比JEnv要麻烦,实际上他确实要麻烦,但是他强大在甚至可以管理CUDA的版本,方便进行CUDA的版本切换(在使用Pytorch的时候就不用各种换环境了)。

直接从路径启动

这个办法就简单粗暴,上述办法实际上就是一个链接文件的过程,所以在实际使用中,完全可以直接找到安装Java的版本路径下,直接运行Java文件。以21版本为例:

这样直接指定具体Java文件其实在我们的开服流程中是很方便的(只要你Java版本管理的好)。

原版服怎么开

完成了Java的版本管理,就可以着手来开服了,首先我们先开一个原版服。

首先我们要新建一个文件夹用于储存文件,然后下载一个我们要玩的服务器核心。这里我以官方的1.21.4为例,下载核心可以去https://sync.mcsl.com.cn/这个网站下载,也可以直接在官方https://www.minecraft.net/zh-hans/download/server,但好像只能下载最新的。

wget https://piston-data.mojang.com/v1/objects/4707d00eb834b446575d89a61a11b5d548d8c001/server.jar
ls # 查看一下下载下来的文件
java -Xmx1024M -Xms1024M -jar server.jar nogui # Xmx和Xms为最大和最小分配内存

这时候一定会报错,因为我们没有同意EULA。所以我们得同意一下:

vim eula.txt

改成这样后:wq保存退出,然后我们修改一下server.properties这个文件,具体每个参数的意义可以对照这个内容https://www.bilibili.com/opus/746557636561862742,随后再次输入java -Xmx1024M -Xms1024M -jar server.jar nogui,服务器就开好了,默认端口在25565,重点:这个端口不能被其他服务所占用,不然会报错,也就是说两个服务器不能共用一个端口。

Fabric和Forge端服务器怎么开

fabric和forge要相对简单一点,我们可以进入他们的官网,去下载对应的安装器。

Fabric:https://fabricmc.net/

Forge:https://files.minecraftforge.net/net/minecraftforge/forge/

# fabric可以在这里选择需要Minecraft的版本和fabric版本 https://fabricmc.net/use/server/ 以1.21.4为例
curl -OJ https://meta.fabricmc.net/v2/versions/loader/1.21.4/0.16.9/1.0.1/server/jar
java -Xmx2G -jar fabric-server-mc.1.21.4-loader.0.16.9-launcher.1.0.1.jar nogui

接下来同意eula之后fabric端就可以了,forge要稍微麻烦一些,我的建议是在自己电脑里下载了对应installer后使用SFTP传到对应文件夹后,输入以下命令

java -jar forge-1.21.4-54.0.6-installer.jar nogui --installServer

forge就会生成run.sh文件,我们只要输入./run.sh就可以运行forge服务器了,而且在forge的安装路径下,还会有个user_jvm_args.txt文件,用于调整分配内存,其意义与-Xmx2G一致。

至于mod的安装,在开启fabric和forge后,目录下会生成mods的文件夹,往里面加入要添加的文件即可。

数据包的安装

在开启服务器后,会生成world文件夹,world文件夹内会有datapacks文件夹,把想使用的数据包扔在这里面就行,正常的数据包为zip格式,不需要解压,但要注意的是,有的地方下载的数据包会在数据包外再打包一层,这样是无法识别的,要对这种zip解压之后,把最原始的zip文件拖入其中。这里推荐一个我经常找数据包的地方,也是Hermitcraft数据包的两部分来源,https://vanillatweaks.net/picker/datapacks/

这个网站多个数据包批量下载就是会再打包一层,需要解压一次后才可以拖入其中。数据包的加载可以直接在后台/reload或者直接重启游戏。

所有的服务器进程建议使用screen挂在后台,以防退出中断后游戏不正常保存,且使用stop命令退出服务器进程是合理的。

最后是我个人最喜欢的curseforge的已打包整合包服务端的开启

这个开服就非常的简单了,只需要在我们想要玩的整合包页面找到对应的包和服务包,下载服务包到服务器上,解压后会有对应的run.sh运行就好了

​​

最好找到有服务端整合包开,会保护好你的很多头发。