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
# 在末尾添加对应变量
滚动光标到末尾 按下 键盘上的 INS 键,切换至插入模式
输入这几串内容后 按ESC退出插入模式
然后按下 Shift + ; 输入 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
就会弹出上传窗口,将下载好的服务端上传。
下载好后执行下面这一句。这里分别以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 #会看到多了几个文件
你看到肯定没我截图那么多,是正常的,不用担心。因为我这里有很多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
不要管我这里绿色的提示,那是我装的领地插件的提示,新服务器肯定没有的。你只要看到有Type “/help” for help,就说明你的服务器已经跑起来了。
然后按住Ctrl + A +D ,将screen加入后台运行
当你需要回到这个sreen页面时,使用如下指令。
screen -ls # 查看screen,记下MinecraftServer的编号
screen -r <MinecraftServer的编号>
现在进游戏,输入自己服务器的ip就可以连上了。
补充
如果服务端正常开服,但是游戏就是无法连接服务器,一般都是防火墙的问题。回去1.4好好看看,再配置下防火墙。
Mod放在服务器文件夹内的mods文件夹内,即MinecraftServer/mods下。前提是你的服务器端必须支持mod,如Forge端、CatServer端。
插件放在服务器文件夹的plugins文件夹内,即MinecraftServer/plugins下。前提是你的服务端必须支持插件,如Craftbukkit、Spigot、CatServer。
没错,CatServer永远的神!
整体来说在Linux上开服不难,前提是有一定的Linux基础。如果有不明白,或者实际操作遇到困难,欢迎在评论,会逐一解答。
因为linux有CentOS、unbuntu等,分支众多,而MC的服务端也五花八门,各不相同。可能会有纰漏,欢迎指正!
如何在Linux下搭建Minecraft服务器
参考: