如何搭建mc服务器?

发布于 2022-04-21  6.39k 次阅读


老生常谈的问题。

在文章开始之前,请确保您有服务器的管理员权限,如果您使用的是Linux,请确保您有使用root用户的权限,或者您的用户有使用sudo指令的权限。否则,您可能无法使用接下来的教程。

精简版

  1. 装个Java(最好是64位)
  2. 从官网下个服务端
  3. 写个启动脚本,比如“java -jar -Xmx2G -Xms1G xxx.jar” xxx.jar是你刚下的服务端的名字。
  4. 记得把eula.txt中的false改成true。
  5. 双击运行你刚才写的脚本。
  6. 记得打开25565端口,tcp协议。
  7. 快乐的玩耍。

完整版

服务器挑选并不在本文章的包含范围之内。可能之后会另写一篇文章来细讲。

零、服务器系统选择

服务器系统其实也分很多种,在这里的话我推荐使用Ubuntu Server LTS或者Centos7(不用Centos8的原因其实是容易出现一些兼容性问题,而且网上Centos7的相关教程也很多,很方便。)

(Aug.28th.2022补充:憋用那b Ubuntu LTS 22,快去用Debian11)

本文仅对如何在Centos7上搭建mc服务器作详细讲解。

一、Java环境配置

如果您连Java如何安装都不明白,那么我认为这篇教程也不会太适合您。

Red Hat系

(包括Centos7在内的使用yum/dnf包管理的Linux发行版)

请在命令行输入:

sudo yum search openjdk

如果您使用的服务端版本小于等于1.12.2,请输入:

sudo yum install -y java-1.8.0-openjdk-devel.x86_64

以安装Java8

如果您使用的服务端版本大于等于1.17,请输入

sudo yum install -y java-latest-openjdk-devel.x86_64

以安装Java17

注:由于此处我们选用的软件包为java-latest-openjdk-devel.x86_64,所以yum会选择您输入命令的那天所能查询到的最新版Java来进行安装。在本篇教程写定时,Java最新已发布到Java17。

如果版本号是介于这两者中间的mc服务端,理论上来说Java17是可以做到向下兼容的。但是如果您不放心的话您也可以选择在命令行输入:

sudo yum install -y java-11-openjdk-devel.x86_64

以安装Java11

这样,Java的安装也是基本完成了

注意!请确保服务器中没有预装其他版本的Java,否则可能会出现版本冲突等问题!!!

解决方法:

sudo rpm -qa|grep java

查看目前系统中安装的Java

然后使用

sudo rpm -e –nodeps 上一个命令显示的软件包名称

以卸载Java

然后用yum重新安装Java

应该就可以解决了。

当然你也可以通过改环境变量大法来切换Java版本,但是如果没改好可能会导致亿些问题。

Debian系

(包括Ubuntu在内的使用apt包管理的Linux发行版)

(Aug.28th.2022补充:apt用的ustc源,没有查到java8的包,你可以尝试用java11代替)

在执行所有命令前先执行

sudo apt update

安装java11

sudo apt install openjdk-11-jdk -y

安装java17

sudo apt install openjdk-17-jdk -y

一.五、mc服务端选择

如果你喜欢原汁原味,那我推荐:minecraft server。Download server for Minecraft | Minecraft

如果你想要安装mod,那我推荐:原版+forge(注:仅适用于mc版本≤1.12.2)

如果你希望能使用插件,那么我认为您有以下几款服务端可供选择:

  1. Spigot  Spigot (getbukkit.org)
  2. Papermc  Downloads – PaperMC
  3. MiraiMC etil2jz/Mirai: Mirai 未来 - A powerful Minecraft Server Software coming from the future (github.com)

如果你希望使用插件的同时可以使用mod,那么我认为您有以下几款服务端可供选择:

  1. CatServer  GitHub - Luohuayu/CatServer: 高性能与高兼容性的1.12.2版本Forge+Bukkit+Spigot服务端 (A high performance and high compatibility 1.12.2 version Forge+Bukkit+Spigot server)
  2. Mohist  MohistMC — Minecraft Forge Server software implementing Paper/Spigot/Bukkit API

在这里我不方便过多的介绍。

在接下来的教程中我只会着重讲原版server端/Spigot/Papermc。

二、服务端安装以及运行

请再次确保您有服务器的管理员权限,如果您使用的是Linux,请确保您有使用root用户的权限,或者您的用户有使用sudo指令的权限。否则,您可能无法使用接下来的教程。

1、创建非root用户以及安装必要的工具

(1)、安装必要的开发工具

请在命令行中输入并运行以下命令

sudo yum install git
sudo yum group install "Development Tools"
(2)创建Minecraft用户

基于对安全性的考虑,我并不建议您直接使用root用户或者使用root权限直接运行mc。所以我们需要一个无密码、不能通过ssh登录的普通用户来进行进一步操作。

请在命令行中输入并运行以下命令

sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft

然后你就可以正式开始进行下一步操作了

(3)安装Minecraft Server

在正式开始之前,请确保您已经安装好了Screen软件,这个软件可以使您在断开ssh连接后您创建的会话不被系统清理掉。

如果没有安装,请在命令行中输入并运行以下命令:

sudo yum install screen -y

Debian系请使用

sudo apt install screen -y

然后再进行下一步操作

首先需要切换到我们刚才创建的minecraft用户

请在命令行中输入并运行以下命令

sudo su – minecraft
mkdir ~/server

所以我们将使用/opt/minecraft/server作为mc服务器的目录

请在命令行中输入并运行以下命令

cd ~/server

这样我们就切换进了/opt/minecraft/server目录

此时,您就可以选择您所需要的服务端类型/以及版本了。

这里以spigotmc为例:

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

(此处的例子为spigotmc-1.18.2,实际命令按您所需服务端的下载链接为准)

运行这段命令之后,wget就会为您下载这个名为spigot-1.18.2.jar的文件,而这就是mc服务端文件。

为了方便理解,我们需要将这个文件重命名为mc.jar:

mv spigot-1.18.2.jar mc.jar

到这一步,我们就可以开始准备一下mc服务端的启动脚本了

您可以选用您喜欢的文本编辑器,在这里的话我使用的是nano

如果您尚未安装nano,可以使用其他拥有sudo权限的用户输入

sudo yum install nano -y

进行安装

在nano的界面上,ctrl+o即为保存,ctrl+x即为退出nano

命令行中输入

nano start.sh

以编辑启动脚本

内容可以如下:

java -jar -Xmx2048M -Xms1024M mc.jar nogui

其中-Xmx后面跟的数字即为mc服务端可用的最大内存(单位为MB),-Xms后面跟的数字即为mc服务端可用的最小内存(单位为MB)。mc.jar即为您mc服务端的名称,nogui指的是无图形化界面,因为我们并没有安装桌面环境,所以不需要gui。

命令行中输入

chmod +x start.sh
./start.sh

即可启动服务端。

在第一次启动时可能会提示例如:

[14:33:44] [main/ERROR]: Failed to load properties from file: server.properties
[14:33:45] [main/WARN]: Failed to load eula.txt
[14:33:45] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

等内容。

这是正常现象,不要慌张!

只需要将eula.txt中的false改为true即可。

(可以通过“nano eula.txt”使用nano进行修改)

然后在命令行中输入:

screen -S mc
./start.sh

您的服务器就开始运作啦!!!

按ctrl+a+d退出会话,使mc在后台运行,这时您断开ssh连接,服务端也不会被强制终止了。如果您想进入mc服务端后台的话,只需要再次输入

screen -r mc

就可以进入后台了。

三、服务器防火墙配置

出于安全性的考虑,我们并不建议您在使用mc时关闭防火墙。所以,您可能需要使用拥有sudo权限的用户对防火墙配置进行修改。

请先确保您现在建立ssh连接的端口已被防火墙放行,否则之后可能会出现无法连接服务器的问题。

请先检查防火墙服务是否处于开启状态。

请在命令行运行以下命令:

sudo systemctl status firewalld

以检查防火墙服务状态。

请确保firewalld服务处于running状态(指图的下半部分那样),如果和图中上半部分一样firewalld服务处于inactive状态,请在命令行输入并运行以下命令:

sudo systemctl start firewalld

此时,您服务器上的防火墙就已经启动了!

由于本文的教程是针对mc Java版的,而mc Java版所使用的默认端口是25565端口,tcp协议。

所以请在命令行输入并运行以下命令:

sudo firewall-cmd --permanent --zone=public --add-port=25565/tcp
sudo firewall-cmd –reload

至此,玩家就可以通过您服务器的25565端口来连接进入您的服务器。

您和其他玩家就可以开心的玩耍啦!

关于Debian系的防火墙

建议是自己百度一下,因为我自己的机子都没装防火墙(

一般都是默认没有或者是用的ufw,可以在终端输入

sudo ufw allow 25565
sudo ufw reload

四、结语/关于其他

本文只更新了有关“如何在centos7(rh系)上配置mc java版服务器”的有关内容,之后会逐渐更新在Debian系上操作的有关内容。

(Aug.28th.2022补充:其实这篇文章还有一部分被我删除了还没重写,包括mc rcon和定时备份)

如果您希望在自己电脑上开设mc服务器的话,我或许会在将来另起一篇文章,也顺便聊一聊家用宽带网络如何进行内网穿透。

感谢您的阅读。

若果您有更好的改进建议,请在评论区留言或者发送邮件到 illusorynight@qq.com或kusu@kusu.moe

Spread the love
届ける言葉を今は育ててる
最后更新于 2022-08-28