1 准备工作

以下内容全部要在root用户内完成

1.1 安装文件传输工具

为了方便传文件到服务器上,这里先装一个远程传输工具。

yum -y install lrzsz

1.2 安装java

Minecraft服务端也需要jre才能运行,这里有两个安装方法(选择一种):

1.2.1 官网下载

去官网下载(https://www.oracle.com/java/technologies/javase-jre8-downloads.html)linux x64的gz包,得到jdk-8u271-linux-x64.tar.gz文件(目前最新版本是8u271,以后可能会有更新的版本)。

rz	#将下载好的gz文件上传到服务器

# 创建安装目录
mkdir /usr/local/java/

# 解压当前目录下的JDK压缩文件(版本不一样文件名也会不一样,善用tab自动补全)
tar -zxvf jdk-8u271-linux-x64.tar.gz -C /usr/local/java/

# 方便后面配置环境,改一下文件名
mv /usr/usr/local/java/jdk1.8.0_271 /usr/usr/local/java/jdk1.8.0

# 设置环境变量(安装 VIM 输入 yum -y install vim)
vim /etc/profile
# 在末尾添加对应变量
滚动光标到末尾 按下 键盘上的 I 键,切换至插入模式
输入这几串内容后 按ESC退出插入模式 
然后按下 : 输入 wq 并回车保存

export JAVA_HOME=/usr/local/java/jdk1.8.0
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

# 应用修改后的环境变量
source /etc/profile

# 软链接程序到环境变量中
ln -s /usr/local/java/jdk1.8.0/bin/java /usr/bin/java

# 测试是否安装正常,显示 java version "1.8.0_261" 则为正常
java -version

1.2.2 或yum安装

sudo yum install java-1.8.0-openjdk

有询问输入y即可

1.3 安装screen

安装screen,后面开服时会用到。使用screen可以让服务器进程在后台运行,而不会因为远程连接的断开而停止进程。

# RedHat/CentOS
yum install -y screen

# Ubuntu/Debian
apt install screen

1.4 配置防火墙

一定要在root用户中操作。

这步很关键,开服之后连接不到服务器,很可能就是因为防火墙没配置好!

添加一个端口(25565默认)

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

然后 重启防火墙

firewall-cmd --reload

查看端口状态

firewall-cmd --zone= public --query-port=25565/tcp

在网页端的管理控制台 安全 防火墙 右上添加规则

TCP 25565

1.5 创建用户

不建议使用root系统进行后面的操作,接下来为Minecraft创建一个专门的用户。

useradd -m Minecraft	# 新建一个名为Minecraft的用户
passwd Minecraft		# 为用户Minecraft设置密码
su - Minecraft			# 切换至新建的Minecraft用户。改成root,可以切换回root用户

2.Minecraft服务端

给MC服务端创建一个文件夹

cd ~
mkdir MinecraftServer	#创建文件夹
cd MinecraftServer		#进入文件夹

2.1 获取服务端

MC目前主流的服务端分很多种,简单可以分为三类:

①原版纯净:官网直接下服务端,不能装mod不能装插件

②forge服务端:Mod服,只能装Mod,不能装插件

http://files.minecraftforge.net/)

③Craftbukkit、Spigot服务端:插件服,只能装插件,不能装Mod

④CatSetver服务端:国人开发的,MOD+插件服,白火现在在用。

以上服务端,按需要选择一个,到对应官网下载。(或直接下载别人配置好的懒人服务端,别人配置好的服务端,可视情况跳至2.3步骤。)

你可以在自己的电脑上下载好服务端,然后利用Xshell等远程终端的lrzsz插件,传输到服务器上。

用cd MinecraftServer指令,进入刚才创建的MinecraftServer内。输入指令:

rz

就会弹出上传窗口,将下载好的服务端上传。

linux mc服务器 docker 搭建 linux minecraft服务器_服务端

下载好后执行下面这一句。这里分别以Forge和CatServer举例。不论你用那种服务端,你只需要把-jar后面的名字改成你服务端文件的名字即可。善用Tab补全代码,避免输错。

#Forge服
java -jar forge-1.12.2-14.23.4.2705-installer.jar -nogui -installServer
#CatServer服
java -Xmx2G -jar CatServer-2a9163f-universal.jar

这一步其实是在安装服务端,还要在下载一会服务端资源,网络比较慢。有意思的是,其中CatServer服端安装服务端的指令,和后面正真运行服务端的指令是一样的。(Forge则是不同的)

如果提示下载失败了,或部分资源下载超时了,就再重执行一次上面的forge-*-installer.jar

#用ls指令查看文件
ls #会看到多了几个文件

linux mc服务器 docker 搭建 linux minecraft服务器_服务端_02

你看到肯定没我截图那么多,是正常的,不用担心。因为我这里有很多mod的配置文件夹之类的,你们的新服务器还没装mod或插件。

现在服务器资源都正确下载了,执行以下代码:

#Forge服
java -Xmx1G -jar forge-1.12.2-14.23.4.2705-universal.jar
#CatServer服
java -Xmx2G -jar CatServer-2a9163f-universal.jar

2.2 同意协议

首次运行必定失败,会提示你需要同意协议。这时我们输入ls就能看到目录下多了一个eula.txt。我们需要修改eula文件同意协议,才能启动。

vim eula.txt

将eula=false改成eula=true即可。

然后按esc,输入:wq保存退出。

2.3 配置文件

为了方便以后开服,我们创建一个startServer.sh文件。(别人配置好的服务端可能已经创建过了)

vim startServer.sh

然后i写入

#Forge服
java -Xmx1G -jar forge-1.12.2-14.23.4.2705-universal.jar
#CatServer服
java -Xmx2G -jar CatServer-2a9163f-universal.jar

按esc,输入:wq保存退出。

其实就是把刚才我们运行服务器的指令,写进了shell中,以后省的敲指令了,直接运行这个shell即可。

这和windows的bat批处理性质相似,在windoes中开服,也是把开服的指令写进一个bat中,每次运行bat就省的敲指令了。

# 给start.sh执行权限
chmod 777 startServer.sh

# 执行start.sh即可开服
./startServer.sh	

# 控制台不再跳新的信息时,说明开服成功了
# 我们先结束服务器,完成服务器配置
stop

首次成功开服后,会产生一个server.properties文件,是服务器的配置文件。

vim server.properties	#修改配置文件

其中online-mode=true是检测正版登录用户,true是只允许正版玩家进入可以使用,false则允许离线进入。

更多配置参考这个文件。

https://minecraft-zh.gamepedia.com/index.php?title=Server.properties&variant=zh

2.4 正式开服

创建一个名为MinecraftServer的screen,可以让服务器在后台运行,断开远程连接也不终止进程。

screen -S MinecraftServer

启动服务器

./start.sh

linux mc服务器 docker 搭建 linux minecraft服务器_java_03

linux mc服务器 docker 搭建 linux minecraft服务器_服务端_04

不要管我这里绿色的提示,那是我装的领地插件的提示,新服务器肯定没有的。你只要看到有Type “/help” for help,就说明你的服务器已经跑起来了。

然后按住Ctrl + A +D ,将screen加入后台运行

当你需要回到这个sreen页面时,使用如下指令。

screen -ls	# 查看screen,记下MinecraftServer的编号
screen -r <MinecraftServer的编号>

现在进游戏,输入自己服务器的ip就可以连上了。

linux mc服务器 docker 搭建 linux minecraft服务器_java_05

补充

如果服务端正常开服,但是游戏就是无法连接服务器,一般都是防火墙的问题。回去1.4好好看看,再配置下防火墙。

Mod放在服务器文件夹内的mods文件夹内,即MinecraftServer/mods下。前提是你的服务器端必须支持mod,如Forge端、CatServer端。

插件放在服务器文件夹的plugins文件夹内,即MinecraftServer/plugins下。前提是你的服务端必须支持插件,如Craftbukkit、Spigot、CatServer。

没错,CatServer永远的神!

整体来说在Linux上开服不难,前提是有一定的Linux基础。如果有不明白,或者实际操作遇到困难,欢迎在评论,会逐一解答。

因为linux有CentOS、unbuntu等,分支众多,而MC的服务端也五花八门,各不相同。可能会有纰漏,欢迎指正!

如何在Linux下搭建Minecraft服务器