老生常谈的问题。
在文章开始之前,请确保您有服务器的管理员权限,如果您使用的是Linux,请确保您有使用root用户的权限,或者您的用户有使用sudo指令的权限。否则,您可能无法使用接下来的教程。
精简版
- 装个Java(最好是64位)
- 从官网下个服务端
- 写个启动脚本,比如“java -jar -Xmx2G -Xms1G xxx.jar” xxx.jar是你刚下的服务端的名字。
- 记得把eula.txt中的false改成true。
- 双击运行你刚才写的脚本。
- 记得打开25565端口,tcp协议。
- 快乐的玩耍。
完整版
服务器挑选并不在本文章的包含范围之内。可能之后会另写一篇文章来细讲。
零、服务器系统选择
服务器系统其实也分很多种,在这里的话我推荐使用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)
如果你希望能使用插件,那么我认为您有以下几款服务端可供选择:
- Spigot Spigot (getbukkit.org)
- Papermc Downloads – PaperMC
- MiraiMC etil2jz/Mirai: Mirai 未来 - A powerful Minecraft Server Software coming from the future (github.com)
如果你希望使用插件的同时可以使用mod,那么我认为您有以下几款服务端可供选择:
- CatServer GitHub - Luohuayu/CatServer: 高性能与高兼容性的1.12.2版本Forge+Bukkit+Spigot服务端 (A high performance and high compatibility 1.12.2 version Forge+Bukkit+Spigot server)
- 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
Comments NOTHING