在云服务器上开MC-Forge服
在云服务器上开MC-Forge服
记录一下在云服务器上开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 版本
java --version
安装 OpenJDK 8
用 apt 包管理器来安装 OpenJDK 8
sudo apt update
sudo apt install openjdk-8-jdk
配置默认的 Java 版本
安装完成后,需要配置系统默认使用 OpenJDK 8。使用 update-alternatives 命令来管理 Java 版本:
sudo update-alternatives --config java
这会列出所有已安装的 Java 版本,并让你选择默认的版本。选择与 OpenJDK 8 对应的编号。
比如我现在是:
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 版本以确保切换成功:
java -version
你应该会看到类似以下的输出,说明已成功切换到 OpenJDK 8:
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,可以选择卸载它:
sudo apt remove openjdk-17-jdk
(但是我留着备用了)
检查环境变量
确保 JAVA_HOME 环境变量指向正确的 Java 版本。
echo $JAVA_HOME
如果 JAVA_HOME 没有正确设置:编辑你的 ~/.bashrc 或 /etc/environment 文件,并添加以下行:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
然后,使更改生效:
source ~/.bashrc
或者编辑 /etc/environment也行,但是编辑这个之后需要重新登录或重启系统。
下载Forge-installer
左侧选版本
Downloads for Minecraft Forge for Minecraft 1.16.5

点击右侧的Recommended的Installer下载Forge。
安装Forge
像正常开服一样,把刚刚下载的Forge-installer文件传到服务器上并启动,但是启动指令为:
java -jar ${ProgramName} nogui --installServer
服务端文件目录也建议修改一下(比如我写的是/home/mc/1.16.5-forge/),方便之后管理。
上传好了之后直接启动,这时候会花很久很久(5min左右)下载Forge。
当出现
The server installed successfully
You can delete this installer file now if you wish
的时候就是好了,此时可以在文件目录下看到:
/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
启动服务器
第一次启动
接下来就是正常的流程了。
java -Xms652M -Xmx8G -jar forge-1.16.5-36.2.34.jar nogui
(其实和原版启动指令一样,但是启动那个forge开头的)
EULA
如原版一样,第一启动会弹出EULA。
mods
第一次启动之后,文件目录下就会有 mods 文件夹。可以将需要加载的 mod 文件先放进去。
正式启动
再次启动服务器,将会加载mod并生成世界了!感觉生成世界的速度比原版慢多了。
移植世界
移植world数据
游戏目录的文件如下:
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是主要需要移动的,里面有:
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:
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博客
在云服务器上开MC-Forge服的更多相关文章
- unigui在阿里云服务器上部署
unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...
- Linux学习2-在阿里云服务器上部署禅道环境
前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...
- 使用Eclipse远程调试云服务器上的微信公众项目
云服务器系统:centos 7.3 如何在Eclipse上调试我们在云服务器上的项目呢,下面介绍一下步骤: 1.因为root账号不支持远程调试,首先需要在linux上创建一个新的用户,然后用该用户 ...
- PHP--腾讯云服务器上部署LNMP环境
本文参考 云服务器上部署Laravel的实例教程 腾讯云 创建 Laravel5.4 项目 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PH ...
- 阿里云服务器上安装mysql的心路历程(博友们进来看看哦)
在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许 ...
- 阿里云服务器上使用iptables设置安全策略
转自:http://www.netingcn.com/aliyun-iptables.html 公司的产品一直运行在云服务器上,从而有幸接触过aws的ec2,盛大的云服务器,最近准备有使用阿里云的弹性 ...
- 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法
在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...
- jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制
问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2: 刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后 ...
- 使用Navicat连接阿里云服务器上的MySQL数据库--转
手把手教你如何正确连接阿里云服务器上的数据库: 1.首先打开Navicat,文件>新建连接>MySQL连接,其他的如一图所示. 2.因为是连接服务器上的MySQL,所以我们使用SSH连接, ...
- 在centos 7云服务器上搭建Apache服务器并访问到你的网站
网站是指在互联网上根据一定的规则,用HTML等语言制作的网页的集合.网站的目的是用来展示一些信息,如果是个人网站则是为了展示自己的一些想被人知道的东西,例如自己的一些作品,又或者是通过网站来达到盈利的 ...
随机推荐
- 前端跨域方案-跨域请求代理(asp.net handler)
现在技术开发偏向于使用统一的接口处理浏览器或者app的http请求. 大家都知道因为浏览器的同源策略的原因 js直接请求webapi 接口会有一些问题,即使做好服务器端的配置 同样会有不少的 问题 ...
- 使用PySide6/PyQt6实现Python跨平台通用列表页面的基类设计
我在随笔<使用PySide6/PyQt6实现Python跨平台GUI框架的开发>中介绍过PySide6/PyQt6 框架架构的整体设计,本篇随笔继续深入探讨框架的设计开发工作,主要针对通用 ...
- sudo: unable to resolve host xxxx: Name or service not known
前言 在 Linux 环境中,我使用 sudo 执行命令,发生报错:sudo: unable to resolve host xxxx: Name or service not known 解决 这个 ...
- Raft学习笔记
0.前言 Raft 作为一种强一致性的共识算法,被广泛应用于分布式系统中,如 etcd.Consul 等.最近阅读了一篇关于 Raft 的技术文章,收获颇多,因此写下此学习笔记,记录其中的关键概念与个 ...
- kubernetes 容器编排系统
前言 docker解决了打包和隔离的问题,但是在docker集群中我们需要解决更多的问题,如调度(容器在哪运行).生命周期及健康状况(确保容器在无错的情况下运行).服务发现(容器所处位置,和容器通信) ...
- delphi 让执行程序不在任务栏显示
Application.MainFormOnTaskbar := False; procedure TForm1.FormShow(Sender: TObject); begin ShowWindow ...
- Model Context Protocol
MCP is an open protocol that enables AI models to securely interact with local and remote resources ...
- ubuntu 安装挂载mysql, redis和mongodb服务
因为有两台电脑,所以准备把ubuntu电脑作成对外服务提供,各种数据库,中间件都使用docker安装管理,然后挂载配置和日志到本地,提供给另一台电脑的对外服务. 1. 安装docker sudo ap ...
- 基于FREERTOS的BOOTLOADER跳转APP调试笔记
使用场景:BootLoader基于Freertos,APP是裸机 程序. BootLoader设置方法 void iap_app_load(uint32_t appxaddr) { uint32_t ...
- 智能驾驶致死、AI聊天自杀,安全成最大的奢侈
提供AI咨询+AI项目陪跑服务,有需要回复1 前几天<高层论坛:实现汽车产业高质量发展>才刚召开,因为汽车行业卷得不行,现在大家都想在智能驾驶上发力,其中有句话令我影响深刻: 对智能驾驶来 ...