我的世界

您所在的位置:网站首页 我的世界Fabric模组开发教程 我的世界

我的世界

2023-11-01 06:21| 来源: 网络整理| 查看: 265

概述

Minecraft服务器从结构上来说可以分为四种:原版服务器、Mod服务器、插件服务器、Mod+插件服务器,本文将指导你开设一台属于你自己的Mod服务器。

注意:

与插件服不同的是,Mod服务器在客户端不安装与服务端相同的Mod的情况下,玩家很可能不能获得完整的游玩体验(仅作用于服务端的Mod无需客户端安装);

与基岩版不同的是,Java版没有官方服务器,所有的服务器都是玩家自己开设的。

请不要将Mod和插件混淆,若不是Mod+插件服务器,Mod和插件一般不能同时在一个服务器共存(可以通过某些使用插件或Mod实现,但兼容性较差)。

本教程目前适用于Windows系统,其他系统及容器方法正在补充。

警告

关于网络安全

开设服务器可能会导致你的电脑更容易受到网络攻击(常见如分布式拒绝服务攻击:DDoS),因此,开设服务器时请将网络安全放在第一位;最好使用防火墙等设施来预防网络攻击。

鉴于你正在一步步地开启你自己的服务器,你应该要注意所有可能出现的危险性。运行下面的所有教程正常情况下应不会导致你的系统出错,但是由于Minecraft Wiki的开放性,且编者对于你的系统配置与软件运行情况并不了解,因此并不能保证稳定性。

为了确保你根据下面的教程架设服务器并将出现问题的概率降至最低,我们强烈推荐你至少要知道以下的内容:

基本的网络搭建术语(IP、端口等);

关于电脑硬件的基础知识;

命令行的使用;

你的网络环境;

你的系统配置。

开始之前

架设服务器之前,最好先阅读完本段的所有内容并确保你的电脑完成了下面的“网络”和“Java”栏。

另外,我们建议你准备一个有语法高亮功能的文本编辑器,如VSCode和Notepad++,Windows自带的记事本和写字板查看文件的效果可能不尽人意。

需求

在架设服务器前,你需要先明确你的需求,这里有一个较为笼统的分类:

如果你想游玩无任何插件、Mod的原版服务器,请参阅教程/架设服务器。这种服务器一般不可添加拓展。

如果你想开设纯净服务器,请选择Mod服务器并阅读本篇文章。这种服务器的拓展性比插件服低,但保留所有原版特性。

如果你想开设小游戏服务器或对游戏特性做出改变,亦或启用某些资源包,请选择插件服务器,参阅教程/架设Spigot服务器。这种服务器一般拓展性最强、优化最好,但可能会使一些原版特性失效(如刷沙)。

网络配置

必要条件:上下行均需1Mbps(大约125KB/s)以上且需要拥有独立的公网IP(或内网穿透等)。

公网

和你不在同一局域网内的玩家尝试连接到你的服务器时,如果你使用的是局域网或无线局域网(也称内网),他们是无法连接的,这是因为局域网是封闭的。这时,你就需要一个公网IP。公网IP又分为动态和静态两种。动态公网IP会改变,而静态的则是固定的。

无论你有没有公网IP或配置内网穿透,和你在同一局域网内的设备都可通过连接服务器的IP地址进入服务器,而即使未联网,本机也可以通过连接localhost、127.0.0.1(IPv4)、::1(IPv6)进入服务器。

你也可以通过内网穿透来达到相似效果,参阅下文。

检查

若要需要检查你是否已经得到公网IP,首先需进入路由器配置页面(一般是192.168.1.1:80或192.168.0.1:80)查看WAN IP记录下来,再使用搜索引擎查询IP(例如这个),将该IP与之前的WAN IP对比,若相同则已得到公网IP,若不同则为接入NAT的家庭网络。

静态和动态

静态公网IP需要企业申请或者购买专线(详情请咨询你的运营商),这对个人是十分昂贵的,所以我们建议你申请动态公网IP。

能否从运营商处申请到公网IP及其步骤由运营商的相关政策决定。你可以咨询你的运营商或在网络上搜索以获取相应内容,通常来说IPv4较IPv6来说更难申请因为数量更少。如果你要使用动态公网IP,则一般需要配置动态域名服务(DDNS),方法可见下文,也可自行搜索。

内网穿透

原理是通过让你的电脑连接到另一台有公网IP的电脑,数据从玩家到这台电脑再到你的服务器,这种方式通常适用于实在没有办法申请公网IP的人。提供内网穿透的服务商通常会对流量收费且一般延迟较高,若非别无他法否则不推荐。

DDNS和DNS的配置

DDNS(Dynamic DNS / Dynamic Domain Name System,动态域名系统):它的功能是将用户的动态IP地址映射到一个固定的域名解析服务上。如果你使用动态公网IP且想要玩家使用域名加入服务器,那么你需要配置动态域名服务

DNS(Domain Name System,域名系统):它的功能是将用户的IP地址映射到一个固定的域名解析服务上。如果你使用静态公网IP且想要玩家使用域名加入服务器,那么你需要配置域名服务。

软件配置Java

注意文章所用游戏版本

为了避免版本更新而带来的Java需求版本提升导致本段内容失去意义,截止至本段内容最后一次更新,Java正式版最新版本为1.19.3。

Java是一种面向对象的编程语言,用于编写在Java虚拟机(Java Virtual Machine,简称JVM)上运行的程序。Minecraft服务端和客户端都运行在JVM上,所以也需要Java。

选择

由于甲骨文官方的OracleJDK在8u202更新后的所有版本如果用于盈利都需购买订阅才可使用,这似乎包含了运行Minecraft服务器的情况,如果你想不因为Java环境增加一笔额外支出,那么运行在高版本的服务器就需要一个第三方替代品,那就是OpenJDK。

关于JRE和JDK的选择,JDK(Java Development Kit,简称JDK)一般用于开发Java程序,JRE(Java Runtime Environment,简称JRE)用于运行Java程序;一般你只需使用JRE即可,但由于某些插件或Mod可能需要用到JDK的一些功能,所以建议安装JDK。

无头Java实际上是普通Java的删减版。它去除了对图形界面或鼠标、键盘方面的支持。无头Java通常被用在服务器或其他不需要图形界面的场合。如果你不在服务器上游玩Minecraft,那你也可以选择安装无头Java。

快速选择

如果你完全不知道应该选择哪个版本的Java,那么请下载JDK 8的最新版本和JDK 17(版本须大于等于17.0.3),这可以覆盖目前任何版本的需求。

查看安装

为了检查Java是否已被正确安装及其版本,你需要执行java -version查看JRE版本,或执行javac -version查看JDK版本。

为了减少出错的概率,Java的安装路径请不要包含中文。

甲骨文官方的Java在Java8u202以后如需商用要订阅后才可使用,因此为了避免纠纷建议使用甲骨文官方Java的服主在开服前查看自己使用的Java的版本。

下载

甲骨文Java SE下载

甲骨文Java 8u202或更早版本

微软推出的OpenJDK(11和17)

Azul推出的OpenJDK,通常称作Zulu(6、7、8、11、13、15、17、18、19和20)

订阅甲骨文Java SE

你可以在以上Java发行版中根据你所要架设的Minecraft服务器版本自行选择,也可自行搜索其他版本。

操作系统

本教程讨论范围仅限于Windows,MacOS及Linux。

选择

Windows:最常见的操作系统,简单直观易上手,推荐Windows Server而不是普通Windows(包括专业版、家庭版、教育版、长期支持版等)。

Linux:最小众的操作系统,入门门槛高,系统较稳定,某些纯命令行版耗费系统资源较少。

MacOS:硬件门槛高,软件资源较少。

快速选择

如果你使用的是Windows主机且没有任何Linux系列系统操作基础,我们推荐使用Windows Server。

硬件配置

对于想自己架设的服务器的你,这里有一些关于服务器配置的建议。

如果你了解电脑的配置,并确信它已经达到了能够运行服务器的需求,可以选择跳过这一节。

服务器的配置不需要很高,例如1核心的CPU加上2GB的内存就足够支持一个的小型服务器。

由于Minecraft单线程的特性,建议选用主频较高且架构较新的CPU,而不是核心数量多而主频低的CPU;此外,建议选用服务器或工作站CPU,这些CPU一般稳定性较强。

同样由于Minecraft单线程的特性,以目前的技术,在不添加额外的优化Mod的情况下,不管你使用什么电脑配置,单个服务器的人数一般不会超过200,若想进一步了解Minecraft单线程运行的原因,可以参考这篇文章。

硬盘最好选择企业级硬盘(最好是固态硬盘),这些企业级硬盘的故障发生概率更低,但不管你使用的是什么硬盘,都要经常做好备份,以免存档丢失。

内存建议使用具有ECC纠错功能的服务器内存(DDR5自带ECC纠错),这可以减少宕机的几率。

Minecraft服务器对显卡无需求,只要能进系统就行。

网速至少需3Mbps(上下行)以上才不会过于卡顿。

如果你不想在家中开设服务器,你可以选择使用云服务器。这样的话,你一般需要每月支付一定的费用,但能免去了你维护服务器硬件的烦恼。

正式开始

注意:本文章对“Mod服务器”的讨论范围仅限于编写此文章时仍然存在的Forge和Fabric,停止更新的或其他小众的Mod加载器等均不在讨论范围之内。此处以推出Fabric为界,之前的版本(1.14之前)称为老版本,1.14及其后的版本称为新版本。

选择Mod加载器

首先确认你要假设的服务器版本,1.14之前由于基于Fabric的Mod较少,推荐使用Forge,1.14及以后由于Forge优化较差(主要体现在加载速度慢)及主流Mod开发者逐渐转移至Fabric,建议使用Fabric。

Fabric

手把手教程参见手动方法。

快捷教程参见快捷方法。

无GUI系统参见无GUI安装。

兼容

Fabric服务器常见于1.14及以后的版本,但这并不意味着1.14前的版本无法使用Fabric,你依然通过某些兼容手段使用Fabric,貌似需要添加特定的JVM参数。

理论上,没有什么能阻止你在任何版本的 Minecraft 上,在任何混淆层下,运行 Fabric 的模组加载器,一直到 c0.0.11a 。然而,这些版本大多没有 Yarn 映射──因此,制作模组的过程变得……有点儿复杂。

——Fabric中文百科

手动方法

由于此方法操作过程图形界面较多,所以较快捷方法和无GUI安装为容易,但步骤较多。

本方法不适用于纯命令行的操作系统,如果你使用的是这种系统,请参考无GUI安装。

你也可以参考Fabric官方服务器架设教程(简略,纯英文)。

1. 你需要前往Fabric下载页面以下载Fabric安装器(Fabric-installer)。

如果你使用的是Windows系统,那么建议直接点击按钮“Download for Windows”;如果是其他系统,请点击下方的“Download universal jar”(由于这是一个JAR文件,所以需要Java来运行);但这两个文件的外观和功能是完全一致的,Windows也可以使用JAR格式的安装器。

2. 打开你下载的名为[fabric-installer-版本号.exe]或[fabric-installer-版本号.jar]的程序,切换至服务端界面,然后选择游戏版本和加载器版本,加载器版本一般越新越好。

3. 选择安装位置后点击安装,为了减少出错的概率,服务端的安装路径请不要包含中文,安装完成后该路径内文件应如下所示:

文件夹

net

org

libraries

fabric-server-launch.jar

如果该文件夹已经有和你下载版本一样的fabric-server-launch.jar文件,那Fabric将不会重复下载(libraries被删除,fabric会将其补全),而是会直接在检查后弹出服务端安装成功,即跳到下一步。

4. 如果你没有提前在该文件夹放入对应版本的Minecraft官方服务端的jar文件,Fabric安装器会弹出一个窗口提示“找不到有效的 版本 服务端”,点击下载服务端即可快捷的下载,你也可以选择去官方网站下载,下载完成后应该会多出一个名为server.jar的文件,此时该路径内文件应如下所示:

文件夹

net

org

libraries

fabric-server-launch.jar

server.jar

5. 启动服务器需要命令,你可以选择每次启动服务器都重复输入命令,或是使用启动脚本。

快捷方法:在fabric弹出的窗口中点击生成启动脚本,该文件夹内应多出两个文件,一个名为start.sh,另一个是satrt.bat,Windows点击.bat文件,Linux和MacOS点击.sh文件即可开服。

方法二:自写启动脚本,Windows系统示例代码如下java -Xmx2G -jar fabric-server-launch.jar noguipause、Linux和MacOS示例代码如下#!/usr/bin/env bashjava -Xmx2G -jar fabric-server-launch.jar nogui,Xmx后跟的数字为服务器最大使用内存大小,保存后点击即可开服。

方法三:使用命令行,在命令行界面输入java -Xmx2G -jar fabric-server-launch.jar nogui,Xmx后跟的数字为服务器最大使用内存大小,即可开服。

如果你直接打开了[server.jar]文件,它会生成一些文件和文件夹,会多出的文件如下:

多出的文件

你的服务端版本

server-你的服务端版本.jar

latest.log

com(已有文件夹内新增)

commons-io(已有文件夹内新增)

io(已有文件夹内新增)

it(已有文件夹内新增)

libraries(已有文件夹)

logs

version

eula.txt

server.properties

第一次启动时如果你没有提前同意EULA,那么报“You need to agree to the EULA in order to run the server. Go to eula.txt for more info.”是正常的,这意味着你需要同意Minecraft最终用户许可协议,请打开服务器文件夹内新生成的名为eula.txt的文件,将false改为true并保存即可6. 在服务器控制台输入stop关服,在第一次启动服务器时服务端会在文件夹内创建一些文件。

7. 现在别人应该可以通过连接你的IP或所映射的域名加入服务器。

即使你没有公网IP也未配置内网穿透,和你处在同一局域网的设备也可以通过连接服务器的IP来加入服务器,而即使未联网,本机也可以通过连接localhost、127.0.0.1(IPv4)、::1(IPv6)进入服务器。

快捷方法无GUI安装

你也可以参考Fabric官方服务器无GUI架设教程(简略,纯英文)

配置服务器

待更新

管理服务器

待更新

拓展内容

安装MCDR

MCDR(Mcdreforge,简称MCDR)是一种挂载在服务端以外的一种服务端管理插件,基于Python 3,可以在完全不对Minecraft服务端进行修改的情况下,通过可自定义的插件系统,提供对服务端的管理能力,由于它的插件是由Python语言所编写而成,所以相较于Mod开发和插件开发,开发MCDR插件会方便许多。若你想安装MCDR或开发插件,请参阅官方的帮助文档。

安装Python

MCDR需要Python 3.6或以上版本。Linux发行版和MacOS通常情况下自带Python,除非你使用的系统较旧(例如CentOS 7),一般的发行版的Python版本已足以运行MCDR。

如果需要更新,建议使用系统对应的软件包管理命令(例如apt和yum等)。你也可以通过下载源代码进行编译安装,请前往Python官网,此处亦可以下载Windows平台下可直接安装的.exe格式文件。

若在你的电脑中Python 2与Python 3并存,那么下文的pip请改为pip3。

下载安装MCDR

在命令行中执行pip install mcdreforged以下载并安装MCDR,中国大陆用户可使用国内的PyPI镜像(例如清华开源软件镜像站所提供的镜像源)来加速MCDR的下载。

初始化MCDR

若你想在某个文件夹中启动MCDR,通过cd xxx可进入名为xxx的文件夹,执行cd ..可返回上一级文件夹,最后在所在文件夹内执行python -m mcdreforged init在此初始化MCDR。

命令执行完毕以后文件结构如下所示:

文件夹

MCDR.log

config/

logs/

plugins/

server/

config.yml

permission.yml

启动

首先将你服务端的全部文件移动至MCDR的server文件夹中。如果你在服务端文件夹中直接初始化MCDR,那么某些文件或目录可能会被覆盖,此时你需要在server文件夹中新建一个文件夹,并将正确的服务端文件复制至此,然后在MCDR初始化的目录中执行python -m mcdreforged启动服务器。

此时你服务端的某些设置需要在MCDR的permission.yml中进行更改。你可以执行pip install mcdreforged -U来更新MCDR。

安装MCDR后服务器的启动脚本是MCDR的config.yml了。

安装插件

你可以前往MCDR插件仓库进行下载,或是查阅MCDR官方文档并尝试自行编写。

插件请放置至plugins文件夹。

写在末尾

有看过我的世界wiki的小伙伴可能看过“架设Mod服务器”这个教程,我就是这个页面的主要编辑者,目前wiki文章已经我已暂时停止更新,这个搬运文章进行了一些小修正,欢迎大家指正错误。原文https://minecraft.fandom.com/zh/wiki/%E6%95%99%E7%A8%8B/%E6%9E%B6%E8%AE%BEMod%E6%9C%8D%E5%8A%A1%E5%99%A8

关于原创:由于虽然Wiki的管理员和活跃用户对我编写的文章进行了许多指正,但我对此文章的贡献超过80%,故声明原创。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3