Minecraft Java 版开服日记【1】

本文最后更新于 2024年11月28日 晚上

写在前面

大家好,这是一篇记录我开MCJE服务器的文章。第一次开服肯定个方面都有不尽完美之处,这也就说不上是指南了。另外我都不知道为什么,这篇文章写了好久。其实网上相关的教程是很多的。

开服之前我们需要考虑一下定位。游戏版本选什么,加载器选什么,玩法是什么,这些都是需要考虑的内容。这一次我想开个休闲向的生电服,服务端选Fabric,版本选 JE 1.20.1 正式版。

我们开服务器最容易遇到,也可以说是必然会遇到的就是可持续性问题,即玩家的活跃度问题。刚开始的时候可能有很多人在服务器里面玩,拿了鞘翅之后可能会少一些人,一些机器做好了又少一些。因此我十分建议找一些熟悉的朋友,已经在一起玩过的,来支持你的服务器。

服务器配置

我不大懂这一方面,但是有一点需要注意,就是服务器带宽。这个是很重要的,尤其是当人多起来之后。

这是我机子的配置

  • CPU:13500ES

  • 内存:64G

  • 硬盘:1TB m.2

配置服务端

服务端本体

安装 Java

MCJE 当然是用 Java写的,我们需要安装 Java 来运行服务器。根据我看过一个推荐,使用阿里云的 Dragonwell 发行版可以优化服务器 MSPT 。不过用别的发行版应该也不会有什么区别吧。下载下来的是一个压缩包,我们将解压后得到的文件夹放在一个合适的位置(比如放进/home/YOUR_NAME/java这样的地方)。

就这样肯定是不行的,我们得把可执行文件添加进我们的 PATH 。编辑当前用户的 shell 配置。

1
2
3
export PATH="$HOME/java/dragonwell-xxx/bin:$PATH"
export JAVA_HOME="$HOME/java/dragonwell-xxx"
source ~/.profile # 我使用 Bash

理论上来说这是在声明一个环境变量,所以应该要放在一般带有 profile字段的配置内。

对于 bash 这是 .profile

对于 zsh 这是 .zprofile

接下来测试一下安装是否成功,我们现在输入java --version。如果成功则可以看到相关的版本信息。

1
java --version
1
2
3
4
# 输出
openjdk 17.0.9 2023-10-17
OpenJDK Runtime Environment (Alibaba Dragonwell Standard Edition)-17.0.9.0.10+9-GA (build 17.0.9+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Standard Edition)-17.0.9.0.10+9-GA (build 17.0.9+9, mixed mode, sharing)

下载 Fabric

前往 Fabric官网里的服务器下载Download Minecraft Server Launcher页面。在这里我们可以选择 Minecraft 的版本, Fabric 的版本等。我们选择好我们要的版本下载下来,得到一个 jar 文件。

下载页面

我们可以新建一个名为 server 的文件夹用于存放服务器文件。为什么要叫 server 呢,这个我们后面将会解释。将下载的 jar 文件放入其内,然后我们用 fabric 提供的命令启动服务器。

1
java -Xmx2G -jar fabric-server-mc.1.20.1-loader.0.16.9-launcher.1.0.1.jar --nogui

根据选择的版本,命令可能会有变化,请使用网站上给出的。

这是我们第一次运行,然而看它跑了几行代码就失败了,同时目录里多出一些文件。不用担心这是正常,因为我们没有同意 Mojang 的 Minecraft EULA 。如果我们要开服,则必须同意EULA。

查看一下 eula.txt 文件

1
2
3
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Mon Nov 18 20:37:05 CST 2024
eula=false # 改成 true 以同意 EULA

我们将这里的 false 改成 true ,就代表我们同意了。

我们再一次运行前面启动命令,这时候如果没有别的问题,服务器就可以启动了。

实际上我们并不想每次都输入一长串命令,我们的服务器也不可能只用 2G 内存。所以我们要编写自己的启动命令。我们可以创建一个 shell 脚本,将编写好的启动命令写在里面。

1
touch start.sh
1
2
#!/bin/bash
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar fabric-server-mc.1.20.1-loader.0.16.9-launcher.1.0.1.jar --nogui

命令完全基于服务器的配置。-Xmx10G代表的是虚拟机占用的最大内存为10G,-Xms10G代表的是最小占用内存为10G。最后的效果就是服务端进程持续占用10G内存。这一块我基本一窍不通了,所以是从这个网站抄的。如果有更好选项不要管我的命令。https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

编辑 server.properties

这就相当于是一个服务端自己的配置文件。我们需要编辑几个重要的项目。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
level-seed= 11 # 这一项是世界的种子,如果你是新生成世界的话,就在这里设置
enable-rcon=true # 打开 rcon ,后面的 MCDR 要用
rcon.password= euhfeHHHHU # 设置 rcon 的密码
rcon.port=25575 # rcon 的端口
enable-command-block= false # false 则是禁用命令方块
gamemode=survival # 生存模式
motd=Welcome! # 服务器的欢迎语
pvp=true # 打开 pvp
difficulty=hard # 困难难度
max-player=30 # 最多允许加入的玩家
online-mode=true # 开启正版限制
view-distance=10 # 这个是服务器的视距
simulation-distance=10 # 这个是服务器的模拟距离,也就是强加载半径
server-port=25565 # 服务器端口
spawn-protection=0 # 如果你是生电服务器的话,建议关掉,这是出生点保护

至此我们就基本完成了对 MC 服务端的配置。

模组

我们一般也会想要安装一些模组吧。 Fabric 的模组都很难做到像 Forge 、 NeoForge 那样大型。不过生电服务器就不用担心这个问题了。我们来安装一些必备的模组。

在以前 curse forge是常用的下载平台,这对我们下载模组到服务器其实不太友好,因为 curseforge并不提供直链。现在 modrinth是一个更好的选择了!它不仅下载起来更方便舒适,对内容开发者的待遇也更好。我们应当多使用modrinth !

  • Fabric api 这个是必要的

  • Lithium 不改变游戏机制的优化模组,没有不加的理由

  • AppleSkin 老牌食物信息显示模组

  • No Chat Reports 防止聊天信息举报

  • LazyDFU 优化启动

  • Carpet 嘛,地毯模组,可以算作是必备的,可以发送 TPS 信息,还有各种功能

    还可以加别的,就看喜好啦~

    安装与配置 MCDR

    什么是 MCDR ?简单来说,它其实没什么神秘的,它监控着 Minecraft 服务端的输出,然后针对性做出反应。我们所常见的 QBM (实际上现在 Prime Backup 是一个更好的选择!) 和 !!here 都是 MCDR 的插件。 MCDR 的官方文档写的超详细。建议直接访问查看呢。

    https://mcdreforged.com/zh-CN

    我在这里只解释一下我安装 MCDR 的时候遇到的一个问题。

    我的系统是 debian 。我用了系统包管理器安装的 Python 。然而在我当时尝试用 pip安装包时给我报了一个错。这是因为一些很蠢的原因, debian不允许直接把包安装到现在的系统 Python 环境中。所以要做的事是,为 MCDR 建立一个虚拟 Python 环境,把这些包安装在这个虚拟环境,用这个虚拟环境启动 MCDR 。(或者也可以直接把这个虚拟环境当作系统环境来用,把激活虚拟环境的脚本加入到 shell 的配置文件里面。)


Minecraft Java 版开服日记【1】
https://www.appe.moe/2024/11/28/MinecraftJava版开服日记【1】/
作者
APPE
发布于
2024年11月28日
许可协议