menu Lapis Apple's Recycle Bin!
详细 Linux 下开设 Minecraft Java 服务器教程 (Beta)
356 浏览 | 2021-05-05 | 阅读时间: 约 5 分钟 | 分类: 记录,经验 | 标签:
请注意,本文编写于 139 天前,最后修改于 117 天前,其中某些信息可能已经过时。

那么,这是一篇写给真正的萌新,除了有台 Server 啥都没那样的人的文章!
我将尽量写的简单易懂:D

搭建好环境

首先,你当然需要用你的方法连接到你的服务器的终端。
这个我不再赘述,因为这是一切的基础,我真的帮不了你。
当你连接上之后,你先需要对你的服务器的信息进行检查,以准备配置环境。

第一步:获取信息

检查所使用的用户

执行 whoami 指令。
如果返回 root,则可以继续配置了。
如果返回别的结果,那么请尝试执行 sudo -ssu 等命令,尝试切换到root用户。若你无法顺利切换到root用户,你可能需要联系你的服务器提供者/提供商。

检查服务器所用发行版本

你或许已经从服务器的服务商/提供者那里知道了你服务器所使用的发行版本。
如果你已经知道了,跳过此步骤。
如果你不知道或是不确定,请执行 cat /etc/os-release
然后,NAME= 后面的就是你所使用的发行版本。
本教程在 Debian 10(buster) 和 Ubuntu 20.04.2 LTS(focal),以及 CentOS (版本7) 上经过实验,其他发行版不保证可用性。

检查服务器上有没有安装 Screen

Screen 可以方便服务端在后台运行。
执行screen --version,查看有无输出。
如果返回了一个版本号,则已经安装了 screen,可跳过安装 screen 的步骤。
如果返回 command not found,则可能未安装 screen,需要安装。

检查服务器上有没有安装 Java

执行 java -version
若是出现类似:

openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

的结果,则你的服务器已经安装了Java,可直接全部跳过安装Java的环节。

如果返回 "command not found" 之类的,那么你需要安装 Java 了。

第二步:安装!

安装 Java

安装 Java 一般很简单。
我一般推荐使用 OpenJDK 11,因为它相对稳定并且安装难度小。
本教程只会阐述如何使用包管理器安装 OpenJDK 11。若由于某些原因你必须使用 OracleJDK 或者 Java 8 等之类的话,请另寻别的教程。

Tips:以下一切操作都要以root用户执行。

Ubuntu / Debian

请执行 apt install -y openjdk-11-jre 以安装 OpenJDK 11。

CentOS

请执行 yum install -y java-11-openjdk 以安装 OpenJDK 11。

在此之后,请再执行一次 java -version 确定 Java 已经完美安装成功。
若是安装失败,可以留下评论,附带你的终端输出。我或许可以帮忙看看。

安装 Screen

安装 Screen 非常简单。
Ubuntu 或是 Debian 执行 apt install -y screen,CentOS 执行 yum install -y screen
同样的,建议执行一次 screen --version 看看是否安装成功了。

第三步:安全!

使用 root用户 开任何服务都是非常危险的。
因此,开服务器的时候,务必不要使用 root 用户,而是使用一个普通用户。

如果你已经有一个普通用户并且你清楚怎么进入其shell,进入它。
如果你没有或者不清楚,你可以创建一个。这不难,只需要执行:
useradd -m minecraft
其中 minecraft 可以换成任意符合 Unix 用户名标准的用户名。
创建完成后,输入 su minecraft 进入此用户的 shell。

开服!

介绍

你有确定好你要使用的服务端吗?

如果你已经确定了的话,请用你的方法把它传上服务器!这个我很难帮你。尽力吧!

没有的话,我简单讲述一下 Minecraft 服务端分为什么:

Bukkit

Bukkit,主要的分支有 CraftBukkit、Spigot、Paper 等,又称为”水桶服“,是一种插件服。
插件是一种安装在服务端上的扩展,相当于是装在服务器端的 “Mod”。
插件的特色是一般不需要玩家使用专用的客户端,使用原版客户端即可完美畅玩。
然而其也有局限,因为不能对客户端做出修改,插件一般难以实现强大的新物品,界面,玩法等。

Vanilla。

Vanilla,又称“香草服”,也就是 Mojang 官方发布的原版服务器。
它是原汁原味的。

Forge。

Forge 就是那个大名鼎鼎的 Mod API。
服务端加了 Forge 之后,便可以添加各种 Forge Mod。
当然,要求玩家的客户端也装有相同 Mod。

混合。

最著名的混合端大概当属 CatServer 了吧,其同时对 Forge Mod 以及 Bukkit 插件都有不错的兼容性。

Sponge。

Sponge,又称“海绵服”,是一个相对新兴的服务器类型。
有专门的 Sponge 插件,并且可以部分兼容 Forge Mod 以及 Bukkit 插件。
但是本人不太推荐新手使用。Sponge当前使用难度和稳定、兼容性以及插件生态仍相对逊色于其他端。

无论是什么端,都是大同小异的 去官网下Jar -> 传上服务器 -> 运行 -> 同意 EULA -> 开服 的流程。

开服!(以 Paper 示范)

这里先拿 Bukkit 的分支 Paper 做示范,其他端应该是大同小异的。有空再写其他的端。
首先,前往首页(https://papermc.io),下载服务端 jar 文件,并且传进服务器里。

别忘了记得创建一个专门的文件夹。
在Linux中,创建文件夹的指令是 mkdir 文件夹名称,进入某个文件夹是cd 文件夹,返回到上一层文件夹是cd ..
Linux指令并不难,如果你执行一些需要我这里没提到的命令才可以执行的操作,你或许可以上网搜搜。

当你成功传上服务器之后,cd到其所处文件夹,并且执行神圣的
java -jar ./端名.jar!

第一次开服必定失败,因为“eula”需要手动同意一下。
但是,我们需要看一下服务器是否有正常生成eula.txt文件。
执行 ls 指令,列出当前目录下所有文件。
如果看见了 eula.txt,说明没问题了。

要同意eula,你需要编辑eula.txt文本文件。
你可以通过很多文本编辑器做到这点,我推荐使用nano,因为其非常易于使用。
现在,执行nano eula.txt,你应该看见:

GNU nano 5.7               eula.txt 
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#You also agree that tacos are tasty, and the best food in the world.
#Sat May 01 21:56:57 CST 2021
eula=false

现在使用键盘上下左右键,移动光标到“false”。
然后删掉它,在原来的位置填上“true”。

完成后,按下 Ctrl+X,再按Y,再按下回车。

现在再尝试以刚刚的命令运行服务器,你应该就可以运行起服务器了。若不行,你依然可以留评论问问我。

使用 Screen 做到后台运行

现在在 Minecraft 服务器控制台中输入 stop 停止服务器运行。
回到服务器 Shell 之后,输入 screen 开启 screen shell。
刚运行有可能显示一堆帮助信息,按下Enter即可关闭。
当你到了一个新的shell之后,你应该就已经处于 screen shell 了。
你可以输入 exit 关闭这个shell并回到你原本的shell,或者是按下 Ctrl+A 再按 D 来让此 screen shell 在后台运行。
想回到你的 screen shell 的话,执行 screen -r 即可。

尾声

若无意外,现在你已经成功运行服务器了。
关于如何连接到你的服务器,请尝试于 Minecraft 直接连接你服务器的 IP 地址。
如果不行,请咨询服务器提供者/提供商。

本教程还未完全完成,很可能有一些错误,欢迎所有人留下评论批评指正。

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

发表评论

email
web

全部评论 (共 4 条评论)

    2021-05-27 23:44
    Good!然鹅我的服务器跑不起来BE的服务端
    2021-05-09 12:07
    补充一下,Linux 下查看当前文件夹的子文件和子文件夹的话,是 ls -a 命令。因为查看当前文件夹里有什么也是十分重要的操作,不然就相当于抹黑操作了。同时,考虑到方便文件传输,也推荐讲一下 FTP 的配置...嘛,或者去别的教程继续学习。
      2021-06-09 19:27
      @Sukazyo说的好 我用 tree (虽然也有问题就是了
      2021-05-10 10:44
      @Sukazyo感谢补充,回家就把ls加上去。
      FTP的配置..我一向是鄙视FTP那毫无加密的玩意的,并且服务器网络环境也可能比较复杂,不一定我说什么端口哪个端口就开放嘛。
      当然我也可能加个SFTP之类的,毕竟SFTP的加密比FTP强多了。
Emoji

Warning: failed loading cafile stream: `/etc/pki/tls/certs/ca-bundle.crt' in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 47

Warning: file_get_contents(): Failed to enable crypto in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 47

Warning: file_get_contents(https://laple.top/usr/themes/Cuckoo/assets/json/owo.json): failed to open stream: operation failed in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 47

Warning: array_keys() expects parameter 1 to be array, null given in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 49

Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 50

Warning: failed loading cafile stream: `/etc/pki/tls/certs/ca-bundle.crt' in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 88

Warning: file_get_contents(): Failed to enable crypto in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 88

Warning: file_get_contents(https://laple.top/usr/themes/Cuckoo/assets/json/owo.json): failed to open stream: operation failed in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 88

Warning: array_keys() expects parameter 1 to be array, null given in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 90

Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/laple.top/usr/themes/Cuckoo/includes/owo.php on line 91