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

news2024/9/25 7:51:56

一、前言

        学习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.coloradmin.cn/o/2162967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARM单片机的内存分布(重要)

ARM单片机的内存分布(重要) 一、S32K344的内存布局 MEMORY {int_pflash : ORIGIN 0x00400000, LENGTH 0x003D4000 /* 4096KB - 176KB (sBAF HSE)*/int_dflash : ORIGIN 0x10000000, LENGTH 0x00020000 /* 128KB …

PhpStudy | PhpStudy 安装

关注这个软件的其他相关笔记:PhpStudy —— README-CSDN博客 0x01:Windows 系统安装 PhpStudy 附件资源 PhpStudy - CSDN 配套资源:phpstudy_x64_8.1.1.3.zip PhpStudy - 官网地址:小皮面板-好用、安全、稳定的Linux服务器面板&a…

EfficientNet(2019):基于复合缩放的自动化架构搜索高效网络!

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks EfficientNet:重新思考卷积神经网络的模型扩展 论文下载地址: https://arxiv.org/abs/1905.11946 学习笔记参考了这位大佬:https://blog.csdn.net/qq_37541097/ar…

在C#中实现WebSocket的单聊和分频道聊天

在C#中实现WebSocket的单聊和分频道聊天,可以利用System.Net.WebSockets库。以下是如何实现这个功能的具体方案和代码。 方案概述: WebSocket Server: 通过HttpListener或ASP.NET Core来承载WebSocket服务。维护每个客户端的连接&#xff0c…

基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络(CNN) 4.2 GRU网络 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 优化前: 优化后: 2.算法运行软件版…

Java网络编程、正则表达式、单例设计模式与Lombok

目录 Java网络编程、正则表达式、单例设计模式与Lombok Java网络编程 软件结构 网络基础知识 相关概念 IP地址 TCP协议和UDP协议介绍 TCP协议的三次握手和四次挥手 UDP协议编程 创建客户端 创建服务端 运行 TCP协议编程 创建客户端 创建服务端 运行 文件上传案例 创建客户端 创…

windows C++-同步数据结构与 Windows API

将并发运行时提供的同步数据结构的行为与 Windows API 提供的同步数据结构的行为进行比较。 并发运行时提供的同步数据结构遵循协作线程模型。 在协作线程模型中,同步基元显式将其处理资源传递给其他线程。 这与抢占式线程模型不同,其中处理资源由控制调…

Python | Leetcode Python题解之第434题字符串中的单词数

题目: 题解: class Solution:def countSegments(self, s):segment_count 0for i in range(len(s)):if (i 0 or s[i - 1] ) and s[i] ! :segment_count 1return segment_count

教授【优青】团队亲自指导-图解表观遗传学 | 组蛋白修饰!专业实验设计、数据分析、SCI论文辅助等全方位服务。精准高效,为农植物科研保驾护航!

教授【优青】团队亲自指导!提供专业实验设计、数据分析、SCI论文辅助等全方位服务。精准高效,为医学科研保驾护航! 专业实验外包服务,一站式解决您的所有需求; 还在犹豫?别让您的科研和论文停滞不前&#…

C# Socket 服务端

WPF 项目 引入 Socket using System.Net.Sockets; 声明 Socket 并创建对象等待客户端连接 开启线程等待客户端连接并接收消息 接收消息并解析 发送消息 完整代码

目标检测DOTA数据集

前言 ​ 之前对于xml格式的YOLO数据集,之前记录过如何用imgaug对其进行数据增强。不过DOTA数据集采用的是txt格式的旋转框标注,因此不能直接套用,只能另辟蹊径。 DOTA数据集简介 DOTA数据集全称:Dataset for Object deTection i…

Redis6 多线程模型

优质博文:IT-BLOG-CN 一、单线程的优缺点 对于一个请求操作Redis主要做3件事情:从客户端读取数据/解析、执行Redis命令、回写数据给客户端。所以主线程其实就是把所有操作的这3件事情串行一起执行,因为是基于内存,所以执行速度非…

区间合并算法

区间合并 区间合并就是有两个区间我们把两个区间合并成一个区间 我们来看一道题 Acwing 803 区间合并 1.题目 给定 n nn 个区间 [ l i , r i ] [li,ri][li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个…

C语言 | Leetcode C语言题解之第434题字符串中的单词数

题目&#xff1a; 题解&#xff1a; int countSegments(char * s){int count 0; //count用来记录单词个数for(int i0; i < strlen(s); i){ //遍历字符串 if((i 0 || s[i-1] ) && s[i] ! ) //一个…

C语言_指针(2)

1.指针与数组的关系 1.1 数组名 先看代码&#xff1a; #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("&arr[0] %p\n", &arr[0]);printf("arr %p\n", arr);return 0;}运行结果是这样的&#xff1a; 我…

数据结构 ——— 数组 nums 包含了从 0 到 n 的所有整数,但是其中缺失了一个,请编写代码找出缺失的整数,并且在O(N)时间内完成

目录 题目要求 代码实现 方法1&#xff08;异或法&#xff09;&#xff1a; 异或算法的时间复杂度&#xff1a; 方法2&#xff08;等差数列公式&#xff09;&#xff1a; 等差数列公式的时间复杂度&#xff1a; 题目要求 整型数组 nums 包含了从 0 到 n 的所有整数&…

【有啥问啥】 Self-Play技术:强化学习中的自我进化之道

Self-Play技术&#xff1a;强化学习中的自我进化之道 在人工智能的快速发展中&#xff0c;强化学习&#xff08;Reinforcement Learning, RL&#xff09;已成为推动智能体自主学习与优化的关键力量。Self-Play技术&#xff0c;作为强化学习领域的一项前沿创新&#xff0c;通过…

Java语法-类和对象(上)

1. 面向对象的初步认识 1.1 什么是面向对象 概念: Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。 1.2 面向对象VS面向过程 如:洗衣服 面向过程: 注重的是洗衣服的过程,少了一个环节也不…

SPSS26统计分析笔记——3 假设检验

1 假设检验原理 假设检验的基本原理源于“小概率事件”原理&#xff0c;是一种基于概率性质的反证法。其核心思想是小概率事件在一次试验中几乎不会发生。检验的过程首先假设原假设 H 0 {H_0} H0​成立&#xff0c;然后通过统计方法分析样本数据。如果样本数据引发了“小概率事…

《数据压缩入门》笔记-Part 2

一篇文章显得略长&#xff0c;本文对应原书6-10章。序言、前言、第1-5章&#xff0c;请参考Part 1&#xff0c;第11-15章&#xff0c;请参考Part 3。 自适应统计编码 位置对熵的重要性 统计编码有一个问题&#xff1a;在编码开始之前都需要遍历一次数据&#xff0c;以计算出…