Ubuntu我的世界开服指南
系列第二篇:我的世界是世界上最好的联机游戏!——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运行就好了
最好找到有服务端整合包开,会保护好你的很多头发。