[Linux]从零开始的Minecraft服务器搭建教程

一、前言

        学习Linux有一段时间了,当然,我们要把学习的知识运用到实际生活中去。最近朋友们都在玩我的世界,网易版的我的世界联机非常不稳定,用起来也算是非常难受了。所以还是准备转战JAVA版。为了联机,可以考虑一个人开一个房间,对外开放端口,不过这样太麻烦了。而且如果房主不在线的话,大家都玩不了。所以还是决定开一个服务器,让服务器24小时都在线,这样大家随时都可以体验游戏了。那么,这一篇文章,我们就教大家怎么搭建一个我的世界的服务器来与小伙伴们联机。

 

二、需要准备什么

        这里我们所部署的都是我的世界的服务器核心,当然,服务器核心有很多种分类,下面我们会详细介绍。部署服务器核心需要大家具备一定的计算机基础。当然,服务器可以被部署到Linux上也可以部署到Windows上。如果你不具备Linux的基础,我强烈建议你将服务器部署在Windows上。这两种方法我都会演示,当然,本次教程还是以学习为目的的,尽管我们部署的是游戏的服务器,但是,如果你有一定的Linux基础,我还是建议你在Linux上操作。毕竟这样可以让你熟悉Linux的操作,以及让你了解一个项目是如何让被部署的。

 

三、我的世界服务器分类

        我的世界的服务器主要分为插件服和模组服。下面我们来介绍一下这两种的区别:

 

1.插件服:又叫plugin服,仅能使用插件,例如服务器登陆插件、菜单插件、圈地插件等,这些都属于插件,插件服的所有玩法都基于指令。 插件服主流核心:Bukkit、Spigot、Paper 。

2.模组服:又叫mod服,可以玩很多mod,常见的比如宝可梦服务器、拔刀剑服务器、修仙服务器、工业科技服务器等,这些都是通过mod搭建的服务器。模组服的主流核心:Catsever、Mohist、Sponge 。

这里服务器的分类虽然多,但是部署的方法都差不多,所以只要学会了一种服务器的部署,另外的类型基本都会了。本篇教程我们主要演示Spigot服务器核心。

四、服务器核心的下载

        既然我们要搭建我的世界服务器,那我们首先就需要下载一个服务器核心。目前大部分的服务器核心都是开源的,我们可以直接去官网下载到。上面也说了,我们这里主要演示Spigot端。我们在浏览器搜索Spigot:

 

 

第一个就是我们的Spigot的官网了,这里大家可以直接点进去。如果你没有找到官网,或者说害怕找错了网站,也可以点击下面的链接直接前往官网:

Spigot官网:Spigot (getbukkit.org)

因为是国外的网站,所以访问可能会慢一些,但是基本都是可以访问了。进入官网以后,我们就能·看到很多Spigot服务器的版本了:

 

这里需要注意的是,服务器的版本必须和游戏版本对应,如果你想和小伙伴们玩1.20.1版本的我的世界,那就需要下载1.20.1的服务器核心。如果选择了1.20.1的服务器核心,所有的客户端都必须是1.20.1版本的,这样才能正常进入服务器。

这里我们就演示1.20.1的服务器,我们点击“Download”:

 

点击了“Download”后,就来到了这个页面:

 

这里我们点击中间的“Spigot-1.20.1.jar”,注意,这里点击的是我中间框出来的地方,一定要点我框出的地方,不然可能跳转到别的地方:

 

点击了以后,就弹出下载链接了:

 

我们将其保存到一个能找到的地方:

 

如你所见,这是一个JAR结尾了文件。所以要运行,我们还要安装一个JAVA来运行这个JAR文件。当然,这个我们放在后面说。

如果你使用的是Linux,可以在下载时复制下载链接:

 

在Linux的终端中使用wget拉取

wget https://download.getbukkit.org/spigot/spigot-1.20.1.jar

 

当然,如果你i在Linux中拉取Spigot时拉取不过来,也可以将服务器下载到Windows上再将其用Samba,FTP等服务上传到Linux中。下面时Samba的部署教程:

 

Samba的安装以及配置:[Linux]在Ubuntu中安装samba并且正确配置(详细)_ubuntu samba-CSDN博客

 

当我们将服务器本体上传到Linux就算完成了。下面开始我们的安装步骤吧!

五、JAVA的安装

        因为之前也提到了,我们的服务器文件是一个jar为后缀的文件,所以我们需要使用JAVA来运行它,这里我们使用的是JDK,即JAVA的一种开发工具包,它集成了JAVA的编译器以及JAVA的运行环境,我们这里需要JAVA的运行环境来运行jar文件。所以当下首要的就是安装JDK。这里我们分为了Linux安装和Windows安装,这两种系统的JDK安装我都会讲,请大家自行根据自己的需要跳转,下面我们分情况讨论:

 

1.Windows中JDK的安装

        这里我们要安装JDK,首先就需要我们下载JDK的包,我们直接再浏览器中搜JDK,这里就能看到相关的下载网站:

 

 

大家如果找不到的话,也可以点击下面的链接去到这个网站:

JDK下载网站:Java Downloads | Oracle 中国

来到这个网站以后,就能看到以下界面了:

 

这里我推荐大家安装JDK17,新版本我没有测试过,但是版本还是不要太新的好。这里我们点到JDK17:

 

因为我们这里是在windows上安装,所以,这里点击Windows:

 

下面我们选择工具包的安装类型,这里我们直接选择“X64 Installer”即可:

 

点击后面的链接浏览器就能弹出下载了:

 

我们将其保存到一个能找到的地方:

 

下载好以后,点击这个exe文件就能打开安装引导界面了:

 

这里我们直接点击“下一步”:

 

这里需要大家选择一下安装的路径,大家根据自己的情况选择即可,选择好了点击下一步:

 

随后就进入了安装状态,等待安装完成即可:

 

如果遇到提示进程被占用,就在任务管理器中将占用的进程结束掉即可,结束掉以后,可能安装窗口会消失,这都是正常的。

在安装完成以后,我们进入安装目录下的bin文件夹下:

 

在这个文件夹下往下滑,就能找到java.exe,如果你在这个目录下没有找到java.exe可以考虑重新安装JDK:

现在来验证一下是否安装完成,我们可以直接在这个目录下打开终端,这里打开终端以后,大家要反复确定终端中的路径,这里的路径一定要是安装目录下的bin文件夹,如果不是,使用cd命令切换到这个文件夹中:

 

当我们在指定的文件夹中打开终端以后,我们直接在这里输入下面的命令:

./java.exe

如果你像我一样,出现了一大堆,就表示你的JAVA是可用的,如果你这里提示命令找不到之类的,请先检查路径,再检查路径中是否有“java.exe”:

 

至此,我们在Windows上的JAVA就已经安装完成了。

2.Linux中JDK的安装

        由于Linux的发行版众多,这里我使用的是Ubuntu20.04进行演示,其它发行版道理都差不多。如果你是新手或者刚接触Linux或者是想学习Linux,那你可以看下面两篇Linux的安装文章:

 

物理机安装Ubuntu:[Linux]如何在物理机安装Ubuntu(小白向)-CSDN博客

虚拟机安装Ubuntu:[Linux]如何在虚拟机安装Ubuntu?(小白向)_虚拟机安装ubuntu linux-CSDN博客

后面的内容都建立在大家已经安装好了Linux,并且能够完成相关配置的前提下。那么,就让我们开始吧!

这里同样的,我们打开JDK的官网:

 

这里我们需要选择JDK17,同样的,建议大家版本不要太新了:

 

 

在下面我们选择Linux:

 

这里我们选择“x64 Compressed Archive”,这里面是已经编译好的二进制文件,可以解压后直接使用:

 

我们可以将下载链接直接复制,然后去到Linux的终端中,使用wget拉取:

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

 

在下载完成以后,我们可以使用“ls”命令查看下载的文件:

 

这里在解压之前,推荐大家在自己的用户目录下新建一个文件夹,将这个JDK的压缩包放进去:

 

下面,我们进入放有JDK安装包的目录,解压JDK的安装包,使用下面的命令:

tar -xvzf ./jdk-17_linux-x64_bin.tar.gz

这里可能会因为你的JDK版本不同,命令也不同,但是只需要修改包名即可。

解压完成后,我们使用“ls”命令查看解压出来的文件夹:

 

让我们进入这个文件夹,再次查看这个解压出来的文件夹中的内容:

 

 

我们再进入这个文件夹中的“bin”文件夹,在“bin”文件夹中有如下内容:

 

我们可以发现,这些文件都是可执行文件,是的,这就是我们后面会用到的JAVA的编译器和环境。我们在这个目录下输入下面的命令来查看这些文件是否可用:

./java

这里一定要注意目录,这里是在JDK包解压后的文件夹的“bin”目录下输入命令。这里目录不对是会提示找不到的。如果你发现你的这个目录下的文件不是可执行文件,使用“chmod”命令将执行权限加上去就行了。

如果你和我一样,在这个目录输入命令后,出现了一大堆,就表示这里的JAVA环境是可用的:

 

至此,我们Linux的JAVA环境就已经安装好了。

五、我的世界服务器的安装

        在上面的步骤中,我们已经下载了我的世界服务器核心然后也安装好了JAVA的运行环境,那么现在我们就可以开始正式的安装服务器了。下面我们的Windows和Linux分情况讨论:

 

1.Windows下的我的世界服务器安装

        这里我们执行所有命令我们要进入到服务器的jar文件所在的目录,也就是下图目录,这里必须进入到有jar文件的目录才行:

 

 

注意,这里是终端中进入这个目录,每个人的目录可能不一样,如图:

 

进入这个目录以后,我们在这个目录执行下面的命令:

 D:\JDK17\bin\java.exe -Xmx1g -Xms1g -jar .\spigot-1.20.1.jar

下面,我来解释这一条命令:

D:\JDK17\bin\java.exe:指定要使用的 Java 运行环境的执行文件路径。这里可能会因为大家安装路径的不同而不同。

 

-Xmx1g:设置最大堆内存为 1GB。

 

-Xmx1g:设置最大堆内存为 1GB。这里的堆内存大家根据自己的实际情况调整。

 

-jar .\spigot-1.20.1.jar:-jar 指定要运行的 JAR 文件,这里是 spigot-1.20.1.jar是我们jar文件的名字。

 

这条命令可以直接在终端中运行,也可以在有jar文件的目录下新建一个文本文件:

 

 

在新建的文本文件中填入下面的内容:

@echo off
D:\JDK17\bin\java.exe -Xmx1g -Xms1g -jar .\spigot-1.20.1.jar
pause

这里中间的一条命令就是上面提到的命令,大家根据自己的情况修改。

 

在写入文本文件以后,保存并退出。
然后将后缀改为“.bat”:
这里我们可以直接在终端中输入一条命令,也可以点击bat文件,这里建议大家使用bat文件启动,省去每次启动服务器都需要输入命令的步骤。

运行结果如下:

 

我们现在再看这个文件夹下的文件,发现已经多了许多文件了:

 

 

这里我们使用记事本打开“eula.txt”文件:

 

这里我们将“false”改为“true”,注意不要拼错了:

 

修改完以后,保存退出即可。

在修改完以后,我们再次点击bat文件启动程序。

 

等待执行完成。

在执行完成以后,我们就能看到这样的现象:

 

这里我们在这里输入“stop”先结束程序:

 

注意,每次退出的时候,都要输入stop来退出,不要使用“Ctrl+C”或者直接将窗口关掉。规范的退出防止以后服务器和地图崩溃。

我们发现执行完成以后,在服务器目录下生成了更多的文件了:

 

我们现在修改“server.properties”文件,使用记事本打开即可:

 

我们这里修改“online-mode”:

 

这里这个"online-mode"表示不允许没有正版的玩家进入,这里我们改成false:

 

我们还需要注意以下下面的“server-port”的参数,这里的25565表示服务器的端口。25565一般是默认的端口,这里改了在游戏里也要改。

当我们修改好上面的选项以后,我们再次点击.bat文件启动服务器。

 

这样我们的服务器就启动成功了,在这个终端可以输入游戏中的指令来控制服务器。所有原版的指令在这里都是可以用的。至此,在Windows上我们的服务器启动成功了。后面会教大家如何连接。

2.Linux下的我的世界服务器安装

        在Linux中,我们同样先进入有服务器核心的文件夹:

 

 

我们在这个目录新建一个文件用于启动我的世界服务器。使用下面的命令:

nano start

让我们填入下面了命令:

/home/chulingxiao/JDK17/jdk-17.0.12/bin/java -Xmx1g -Xms1g -jar spigot-1.20.1.jar

 

这里的“/home/chulingxiao/JDK17/jdk-17.0.12/bin/java”是一开始解压的JDK工具包中JAVA环境的路径,大家根据自己的情况写,这里最好写绝对路径。下面我们保存并退出这个文件。我们使用下面的命令来设置这个文件的权限:

chmod +x start

使用下面的命令启动程序:

./start

等待程序执行完成:

 

在运行完成以后,我们可以看到,在服务器的目录下生成了很多文件:

这里我们使用下面的命令打开“eula.txt”文件:

nano eula.txt

我们将“false”改为“true”:

 

随后保存并退出,我们再看“server.properties”文件:

 

“server.properties”文件中的“online-mode”表示是否拒绝非正版玩家加入:

 

这里我们改为“false”:

 

在完成了上面的步骤以后,我们就可以保存并且退出了,随后,再次执行“./start”:

等执行完成,我们的服务器就启动完成了:

 

至此,我们的我的世界服务器在Linux就搭建完成了。

六、如何连接服务器

        经历了漫长的步骤,我们终于将服务器搭建好了,下面我们就来连接服务器吧,这里我使用的是HMCL启动器。

 

        我们在加入服务器之前首先要启动服务器,windows使用之前创建的.bat文件启动服务器,Linux使用创建的start文件启动服务器。在服务器启动以后,查询服务器的IP地址。windows可以在终端中输入“ipconfig”查看,Linux可以在终端中输入“ifconfig”查看。

 

 

Linux对这些都很熟了,就不演示了。知道服务器的IP地址以后,进入游戏,这里需要游戏的版本和服务器的版本一样。

进入游戏后,点击多人游戏:

 

再点击直接连接:

 

这里输入服务器的IP地址,如果修改了端口号需要再后面加一个英文的冒号再加上端口号:

 

最后点击“加入服务器”:

 

这里注意,如果报错的话,先检查你的用户名是否是英文的。再检查服务器是否允许盗版玩家加入,再检查服务器版本和游戏的版本是否对应。

如果你能成功进入服务器,那说明服务器的搭建是成功的。在局域网的环境下,你的小伙伴都可以通过这个IP地址来连接你的服务器。大家就可以一起愉快的玩耍啦!

七、结语

        学习了许久Linux这次也算是将Linux真正的运用起来了。后面我也教大家搭建更多有有意思的开源项目,感谢大家观看!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/433387.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 --- Socket 编程

序言 在上一篇文章中,我们介绍了 协议,协议就是一种约定,规范了双方通信需要遵循的规则、格式和流程,以确保信息能够被准确地传递、接收和理解。  在这篇文章中我们将介绍怎么进行跨网络数据传输,在这一过程中相信大家…

CSS调整背景

一、设置背景颜色 通过 background-color 属性指定,值可以是十六进制 #ffffff,也可以是rgb(0, 255, 255),或是颜色名称 "red" div {background-color: red; /* 通过颜色名称设置 */background-color: #ff0000; /* 通过十六进制设…

图像分割(九)—— Mask Transfiner for High-Quality Instance Segmentation

Mask Transfiner for High-Quality Instance Segmentation Abstract1. Intrudouction3. Mask Transfiner3.1. Incoherent Regions3.2. Quadtree for Mask RefinementDetection of Incoherent Regions四叉树的定义与构建四叉树的细化四叉树的传播 3.3. Mask Transfiner Architec…

GreenPlum与PostgreSQL数据库

*** Greenplum*** 是一款开源数据仓库。基于开源的PostgreSQL改造,主要用来处理大规模数据分析任务,相比Hadoop,Greenplum更适合做大数据的存储、计算和分析引擎 它本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数…

【数据结构中的哈希】

泛黄的春联还残留在墙上.......................................................................................................... 文章目录 前言 一、【哈希结构的介绍】 1.1【哈希结构的概念】 1.2【哈希冲突】 1.3【哈希函数的设计】 1.4【应对哈希冲突的办法】 一、…

神经网络(一):神经网络入门

文章目录 一、神经网络1.1神经元结构1.2单层神经网络:单层感知机1.3两层神经网络:多层感知机1.4多层神经网络 二、全连接神经网络2.1基本结构2.2激活函数、前向传播、反向传播、损失函数2.2.1激活函数的意义2.2.2前向传播2.2.3损失函数、反向传播2.2.4梯…

数据工程师岗位常见面试问题-1(附回答)

数据工程师已成为科技行业最重要的角色之一,是组织构建数据基础设施的骨干。随着企业越来越依赖数据驱动的决策,对成熟数据工程师的需求会不断上升。如果您正在准备数据工程师面试,那么应该掌握常见的数据工程师面试问题:包括工作…

Spring Cloud Gateway接入WebSocket:实现实时通信

在现代的微服务架构中,实时通信变得越来越重要。Spring Cloud Gateway作为Spring Cloud生态中的API网关,提供了动态路由、监控、弹性、安全等功能。本文将介绍如何通过Spring Cloud Gateway接入WebSocket,实现服务之间的实时通信。 为什么需…

Spring异常处理-@ExceptionHandler-@ControllerAdvice-全局异常处理

文章目录 ResponseBodyControllerAdvice最终的异常处理方式 异常的处理分两类 编程式处理:也就是我们的try-catch 声明式处理:使用注解处理 ResponseBody /*** 测试声明式异常处理*/ RestController public class HelloController {//编程式的异常处理&a…

Mitsuba 渲染基础

Mitsuba 渲染基础 0. Abstract1. 安装 Mitsuba21.1 下载 Mitsuba2 源码1.2 选择后端 (variants)1.3 编译 2. [Mitsuba2PointCloudRenderer](https://github.com/tolgabirdal/Mitsuba2PointCloudRenderer)2.1 Mitsuba2 渲染 XML2.2 Scene 场景的 XML 文件格式2.2.1 chair.npy to…

设计模式之装饰模式(Decorator)

前言 这个模式带给我们有关组合跟继承非常多的思考 定义 “单一职责” 模式。动态(组合)的给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少…

JavaWeb招聘信息管理系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 login.jsp 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优…

利用Langchain开发框架研发智能体Agent的过程,以及相关应用场景

大家好,我是微学AI,今天给大家介绍一下本文主要介绍了利用langchain开发智能体agent的过程。文章首先阐述了项目背景,随后通过给出样例代码,详细展示了执行过程。此外,本文还探讨了该智能体agent在实际应用场景中的运用…

Excel根据一个值匹配一行数据

根据一个值从一个表中匹配一行数据,例如从左边的表中找到指定姓名的所有行数据 使用VLOOKUP函数,参数: Lookup_value:需要搜索的值,单个值 Table_array:被搜索的区域,是个表 Col_index_num&…

【Python基础(一)】

学习分享 一、基本语法1、输出print语句2、常量的写法3、运算符 (/) 与(//)4、字符串5、列表5.1、列表查询元素是否存在5.2、列表查询元素是否存在5.3、身份运算符5.4、列表的增删改查 6、元组6.1、tuple() 7、字典8、函数8.1、值传递8.2、引用传递8.3、函数的传参 二、文件的操…

AWS Network Firewall -NAT网关配置只应许白名单域名出入站

1. 创建防火墙 选择防火墙的归属子网(选择公有子网) 2. 创建规则白名单域名放行 3. 绑定相关规则

Spring JDBC及声明式事务

目录 Spring JDBC基础概念 Spring声明式事务 事务传播方式 Spring JDBC基础概念 Spring JDBC 封装了原生的JDBC API,使得处理关系型数据库更加简单。Spring JDBC的核心是JdbcTemplate,里面封装了大量数据库CRUD的操作。使用Spring JDBC…

[uni-app]小兔鲜-02项目首页

轮播图 轮播图组件需要在首页和分类页使用, 封装成通用组件 准备轮播图组件 <script setup lang"ts"> import type { BannerItem } from /types/home import { ref } from vue // 父组件的数据 defineProps<{list: BannerItem[] }>()// 高亮下标 const…

影响6个时序Baselines模型的代码Bug

前言 我是从去年年底开始入门时间序列研究&#xff0c;但直到最近我读FITS这篇文章的代码时&#xff0c;才发现从去年12月25号就有人发现了数个时间序列Baseline的代码Bug。如果你已经知道这个Bug了&#xff0c;那可以忽略本文&#xff5e; 这个错误最初在Informer&#xff0…

安科瑞Acrel-1000DP分布式光伏监控系统在鄂尔多斯市鄂托克旗巴音乌苏六保煤矿5MW分布式光伏项目中的应用

安科瑞 华楠 摘 要&#xff1a;分布式光伏发电就是将太阳能光伏板分散布置在各个区域&#xff0c;通过小规模、模块化的方式实现电能的并网或独立使用&#xff0c;这种发电方式具有就近发电、就近并网、就近转换、就近使用的特点。近年来&#xff0c;技术进步和政策支持推动了光…