在云服务器上开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

点击右侧的RecommendedInstaller下载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服的更多相关文章

  1. unigui在阿里云服务器上部署

    unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...

  2. Linux学习2-在阿里云服务器上部署禅道环境

    前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...

  3. 使用Eclipse远程调试云服务器上的微信公众项目

    云服务器系统:centos 7.3 如何在Eclipse上调试我们在云服务器上的项目呢,下面介绍一下步骤:   1.因为root账号不支持远程调试,首先需要在linux上创建一个新的用户,然后用该用户 ...

  4. PHP--腾讯云服务器上部署LNMP环境

    本文参考 云服务器上部署Laravel的实例教程 腾讯云 创建 Laravel5.4 项目 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PH ...

  5. 阿里云服务器上安装mysql的心路历程(博友们进来看看哦)

    在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许 ...

  6. 阿里云服务器上使用iptables设置安全策略

    转自:http://www.netingcn.com/aliyun-iptables.html 公司的产品一直运行在云服务器上,从而有幸接触过aws的ec2,盛大的云服务器,最近准备有使用阿里云的弹性 ...

  7. 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法

    在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...

  8. jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制

    问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2:   刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后 ...

  9. 使用Navicat连接阿里云服务器上的MySQL数据库--转

    手把手教你如何正确连接阿里云服务器上的数据库: 1.首先打开Navicat,文件>新建连接>MySQL连接,其他的如一图所示. 2.因为是连接服务器上的MySQL,所以我们使用SSH连接, ...

  10. 在centos 7云服务器上搭建Apache服务器并访问到你的网站

    网站是指在互联网上根据一定的规则,用HTML等语言制作的网页的集合.网站的目的是用来展示一些信息,如果是个人网站则是为了展示自己的一些想被人知道的东西,例如自己的一些作品,又或者是通过网站来达到盈利的 ...

随机推荐

  1. 前端跨域方案-跨域请求代理(asp.net handler)

    现在技术开发偏向于使用统一的接口处理浏览器或者app的http请求. 大家都知道因为浏览器的同源策略的原因 js直接请求webapi 接口会有一些问题,即使做好服务器端的配置 同样会有不少的 问题   ...

  2. 使用PySide6/PyQt6实现Python跨平台通用列表页面的基类设计

    我在随笔<使用PySide6/PyQt6实现Python跨平台GUI框架的开发>中介绍过PySide6/PyQt6 框架架构的整体设计,本篇随笔继续深入探讨框架的设计开发工作,主要针对通用 ...

  3. sudo: unable to resolve host xxxx: Name or service not known

    前言 在 Linux 环境中,我使用 sudo 执行命令,发生报错:sudo: unable to resolve host xxxx: Name or service not known 解决 这个 ...

  4. Raft学习笔记

    0.前言 Raft 作为一种强一致性的共识算法,被广泛应用于分布式系统中,如 etcd.Consul 等.最近阅读了一篇关于 Raft 的技术文章,收获颇多,因此写下此学习笔记,记录其中的关键概念与个 ...

  5. kubernetes 容器编排系统

    前言 docker解决了打包和隔离的问题,但是在docker集群中我们需要解决更多的问题,如调度(容器在哪运行).生命周期及健康状况(确保容器在无错的情况下运行).服务发现(容器所处位置,和容器通信) ...

  6. delphi 让执行程序不在任务栏显示

    Application.MainFormOnTaskbar := False; procedure TForm1.FormShow(Sender: TObject); begin ShowWindow ...

  7. Model Context Protocol

    MCP is an open protocol that enables AI models to securely interact with local and remote resources ...

  8. ubuntu 安装挂载mysql, redis和mongodb服务

    因为有两台电脑,所以准备把ubuntu电脑作成对外服务提供,各种数据库,中间件都使用docker安装管理,然后挂载配置和日志到本地,提供给另一台电脑的对外服务. 1. 安装docker sudo ap ...

  9. 基于FREERTOS的BOOTLOADER跳转APP调试笔记

    使用场景:BootLoader基于Freertos,APP是裸机 程序. BootLoader设置方法 void iap_app_load(uint32_t appxaddr) { uint32_t ...

  10. 智能驾驶致死、AI聊天自杀,安全成最大的奢侈

    提供AI咨询+AI项目陪跑服务,有需要回复1 前几天<高层论坛:实现汽车产业高质量发展>才刚召开,因为汽车行业卷得不行,现在大家都想在智能驾驶上发力,其中有句话令我影响深刻: 对智能驾驶来 ...