之前都是开的基于1.18版本Forge服务器,和1.16那些相比,服务端文件从jar包换成了运行脚本,更轻量化了,但是也的确更麻烦了。

昨天开了一个1.19.2的Forge服务器,本来以为也就那样,结果遇到了各种问题,这里做一下记录。

获取Forge服务端

我是从Forge官网下载的jar包,在Windows上运行生成好服务端文件后,再上传到服务器的。

这个是下载地址:ForgeFor1.19.2

Forge

然后双击运行下载的jar包,选择Install server,然后选择一个空文件夹点击确定

Forge运行窗口

这里在install的时候,网络可能不稳定,下载失败了可以把目录清空重新运行下载。

安装成功后,目标目录下应该有run.batrun.sh这两个启动文件,run.bat是给Windows用的,你可以直接在Windows上运行测试。

从服务器运行

首先,Minecraft1.19.2需要的运行环境是Java17,所以需要用一下命令安装17版本:

1
apt install openjdk-17-jdk

如果已经安装的话用,可以用这个命令检查Java版本:

1
java -version

多个版本可以使用这个命令进行版本切换:

1
update-alternatives --config java

然后我们安装一个Screen,用来做运行窗口管理,方便后台运行和管理服务端:

1
apt install screen

也就是说到这里,我们已经有Java17的运行环境和Screen的管理工具了,此时将之前生成的Forge服务端文件夹上传到服务器,然后就可以开始踩坑了。

进入Screen

如果直接在终端运行run.sh的话,这个终端就会被运行时指令输出占用,导致你没法进行其他操作,所以我们就需要使用Screen来生成虚拟窗口,也允许其他终端访问。

通过这个命令开启新的窗口:

1
screen -R mc

这里的mc就是一个名字,可以换成自己的。如果已经有了或是忘记了,可以用这个命令查看窗口列表:

1
screen -ls

从窗口回到终端时,通过按住CTRL,然后依次按下AD即可。回到窗口可以通过这个命令:

1
screen -r mc

这里的mc就是之前开启新窗口的名字。

运行Forge服务端

运行的话直接在服务端目录下通过./run.sh运行脚本即可,这里可能会遇到两个问题:

  1. Permission denied

    直接对Forge文件夹进行chomd -R 777 forge,这个forge就是你的服务端目录。

  2. 没有许可条款

    在首次运行Minecraft服务端时,都会生成一个eula.txt并自动中断运行,此时你只需要编辑服务端根目录下的eula.txt文件,将里面的false改为true就表示已同意条款,再次运行即可。

关闭更新

config目录,然后依次检查运行生成的所有配置,关闭里面的update选项。如果不知道这是什么,可以跳过这个步骤。

运行窗口问题

如果你在运行的时候,使用了类似于新版MobaXterm这种支持X server服务的终端工具的话,它会开启Forge服务端所需要的X11 window server。这表示你会在本地看到一个Java写的服务端运行窗口,包括了运行日志、基本的服务占用信息和命令输入行。

看起来好像方便本地管理服务端,其实并不是,因为你不能关闭这个窗口,否则服务端会直接终止。这和你本地运行服务端没什么区别,除了没有资源占用之外。

如果没有这样的窗口,那你可能会遇到另一个问题,就是服务端卡住,一般就是服务端没有启动完毕,但是日志停止输出。

服务端卡住的原因很多,有一种可能是各种mod正在做更新查询,但是网络环境不行导致的网络等待,这种情况下停止服务器然后去配置文件里关闭更新选项就可以了。还有一种情况就是这个该死的X11 window server,然后也有可能服务端没有卡住,直接报错Can't connect to X11 window server

遇到这个问题的话,直接关闭服务端,修改user_jvm_args.txt文件,在其中添加这个参数:

1
-Djava.awt.headless=true

这个其实就是JVM参数,和-Xmx4G同级,中间用空格隔开就好了。

启动

到这里基本上就没什么问题了,除非你的模组冲突。

完结,撒花。


本站总访问量