记录一下在云服务器上开mc-1.16.5-Forge服。
OS: Ubuntu 22.04.2 LTS x86_64
CPU: Intel Xeon Platinum (2) @ 2.500GHz
Memory: 396MiB / 7279MiB

切换java版本
之前开了个1.16.5的原版,当时在服务器上装的是java17,但是1.16.5的Forge不支持17,故安装8并切换默认java版本。
下面是完整流程
检查已安装的 Java 版本
安装 OpenJDK 8
用 apt
包管理器来安装 OpenJDK 8
1 2
| sudo apt update sudo apt install openjdk-8-jdk
|
配置默认的 Java 版本
安装完成后,需要配置系统默认使用 OpenJDK 8。使用 update-alternatives
命令来管理 Java 版本:
1
| sudo update-alternatives --config java
|
这会列出所有已安装的 Java 版本,并让你选择默认的版本。选择与 OpenJDK 8 对应的编号。
比如我现在是:
1 2 3 4 5 6 7 8 9
| There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 auto mode 1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number:
|
验证 Java 版本
最后,再次检查 Java 版本以确保切换成功:
你应该会看到类似以下的输出,说明已成功切换到 OpenJDK 8:
1 2 3
| openjdk version "1.8.0_392" OpenJDK Runtime Environment (build 1.8.0_392-8u392-b07-0ubuntu1~22.04-b07) OpenJDK 64-Bit Server VM (build 25.392-b07, mixed mode)
|
注意:java8不支持java --version
,应使用java -version
如果没成功,还是 17,可能是环境变量的问题,见下文检查环境变量。
(可选)卸载 OpenJDK 17
如果不再需要 OpenJDK 17,可以选择卸载它:
1
| sudo apt remove openjdk-17-jdk
|
(但是我留着备用了)
检查环境变量
确保 JAVA_HOME
环境变量指向正确的 Java 版本。
如果 JAVA_HOME
没有正确设置:编辑你的 ~/.bashrc
或 /etc/environment
文件,并添加以下行:
1
| export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
然后,使更改生效:
或者编辑 /etc/environment
也行,但是编辑这个之后需要重新登录或重启系统。
下载Forge-installer
官网
左侧选版本
Downloads for Minecraft Forge for Minecraft 1.16.5

点击右侧的Recommended的Installer下载Forge。
安装Forge
像正常开服一样,把刚刚下载的Forge-installer文件传到服务器上并启动,但是启动指令为:
1
| java -jar ${ProgramName} nogui --installServer
|
服务端文件目录也建议修改一下(比如我写的是/home/mc/1.16.5-forge/
),方便之后管理。
上传好了之后直接启动,这时候会花很久很久(5min左右)下载Forge。
当出现
1 2
| The server installed successfully You can delete this installer file now if you wish
|
的时候就是好了,此时可以在文件目录下看到:
1 2 3
| /home/mc/1.16.5-forge/forge-1.16.5-36.2.34-installer.jar(之前上传的) /home/mc/1.16.5-forge/forge-1.16.5-36.2.34.jar /home/mc/1.16.5-forge/minecraft_server.1.16.5.jar
|
启动服务器
第一次启动
接下来就是正常的流程了。
1
| java -Xms652M -Xmx8G -jar forge-1.16.5-36.2.34.jar nogui
|
(其实和原版启动指令一样,但是启动那个forge开头的)
EULA
如原版一样,第一启动会弹出EULA。
mods
第一次启动之后,文件目录下就会有 mods
文件夹。可以将需要加载的 mod 文件先放进去。
正式启动
再次启动服务器,将会加载mod并生成世界了!感觉生成世界的速度比原版慢多了。
移植世界
移植world数据
游戏目录的文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| root@2v4G:/home/mc/1.16.5-forge# ls -l total 47004 -rw-r--r-- 1 root root 2 Feb 18 16:44 banned-ips.json -rw-r--r-- 1 root root 2 Feb 18 16:44 banned-players.json drwxr-xr-x 3 root root 4096 Feb 18 16:38 config drwxr-xr-x 2 root root 4096 Feb 18 15:09 defaultconfigs -rw-r--r-- 1 root root 9 Feb 18 15:26 eula.txt -rw-r--r-- 1 root root 8030981 Feb 18 14:22 forge-1.16.5-36.2.34-installer.jar -rw-r--r-- 1 root root 1848183 Feb 18 14:27 forge-1.16.5-36.2.34-installer.jar.log -rw-r--r-- 1 root root 212608 Feb 18 14:23 forge-1.16.5-36.2.34.jar drwxr-xr-x 3 root root 4096 Feb 18 16:41 journeymap drwxr-xr-x 12 root root 4096 Feb 18 14:26 libraries drwxr-xr-x 2 root root 4096 Feb 18 16:43 logs -rw-r--r-- 1 root root 37962360 Feb 18 14:24 minecraft_server.1.16.5.jar drwxr-xr-x 2 root root 4096 Feb 18 15:12 mods -rw-r--r-- 1 root root 2 Feb 18 16:44 ops.json drwxr-xr-x 2 root root 4096 Feb 18 16:38 patchouli_books -rw-r--r-- 1 root root 1085 Feb 18 16:44 server.properties drwxr-xr-x 2 root root 4096 Feb 18 16:38 tlm_custom_pack -rw-r--r-- 1 root root 111 Feb 18 16:49 usercache.json -rw-r--r-- 1 root root 60 Feb 18 16:49 usernamecache.json -rw-r--r-- 1 root root 2 Feb 18 16:39 whitelist.json drwxr-xr-x 12 root root 4096 Feb 18 16:50 world
|
其中world是主要需要移动的,里面有:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| root@2v4G:/home/mc/1.16.5-forge/world# ls -l total 108 drwxr-xr-x 2 root root 4096 Feb 18 16:50 advancements drwxr-xr-x 2 root root 4096 Feb 18 16:50 data drwxr-xr-x 2 root root 4096 Feb 18 16:38 datapacks drwxr-xr-x 3 root root 4096 Feb 18 16:39 DIM-1 drwxr-xr-x 3 root root 4096 Feb 18 16:39 DIM1 -rw-r--r-- 1 root root 29621 Feb 18 16:50 level.dat -rw-r--r-- 1 root root 29619 Feb 18 16:44 level.dat_old drwxr-xr-x 2 root root 4096 Feb 18 16:50 playerdata drwxr-xr-x 2 root root 4096 Feb 18 16:44 poi drwxr-xr-x 2 root root 4096 Feb 18 16:40 region drwxr-xr-x 2 root root 4096 Feb 18 16:39 serverconfig -rw-r--r-- 1 root root 3 Feb 18 16:44 session.lock drwxr-xr-x 2 root root 4096 Feb 18 16:50 stats
|
这里不深入探究每个文件夹存放着什么信息。直接将旧世界的world替换掉新世界的world文件夹即可。
移植mod数据
我加入了这几个mod:
1 2 3 4
| journeymap-1.16.5-5.8.5p7.jar OreExcavation-1.8.157.jar Patchouli-1.16.4-53.3.jar touhoulittlemaid-1.16.5-release-1.1.7.jar
|
其中,东方小女仆和帕秋莉手册是新加入的,不需要在意数据迁移。OreExcavation连锁挖矿也测试成功了。journeymap之前只是使用了客户端,所以也不需要处理。
参考文献
最简洁快速的教程:
如何在linux上安装forge版本的Minecraft服务器? - 知乎
一份比较详细的教程:
Minecraft 1.20.1 Forge服务器保姆级搭建教程 (使用mcsm面板 | 两种启动方式)_forge服务端-CSDN博客
一份详细的教程,但是是windows系统的,具有参考价值:
Minecraft Forge 服务器开服教程_forge服务端-CSDN博客