Featured image of post 搭建Minecraft联机服务器教程

搭建Minecraft联机服务器教程

在Linux服务器上利用MCSManager搭建一个良好的Minecraft联机服务器

创建一个单独的用户运行MCSManager(非必需)

对于一般的服务器,只运行单个应用,因此在非root用户下直接构建应用并运行即可。但对于博主的服务器,同时运行多个应用,因此每个用户分别管理与控制一个应用有利于管理权限等方面内容。需要注意的是:如果之后不考虑权限管理,可以跳过该步骤

远程ssh连接服务器。

此类教程有许多,这里随便列几个链接,就不过多赘述了。 通过SSH连接到Linux服务器Windows 系统下:SSH 远程连接 Linux 服务器的完整指南

创建用户并修改用户密码

这个步骤需要保证当前用户拥有管理权限或拥有sudo权限。 若当前用户不为root尝试以下命令

1
2
3
4
# 创建用户
sudo useradd -m -s "/bin/bash" mcsmanager
# 修改用户密码
sudo passwd mcsmanager

若上述命令执行后弹出“xxx is not in the sudoers file.”其中xxx为当前用户名,这表明当前用户没sudo权限,请参考在Linux中,如何添加和管理用户账户以及如何设置sudo权限?linux中创建用户并赋予用户sudo权限给当前用户赋予sudo权限后重新进行上述操作,或使用如下命令切换至root用户后执行后续命令。需要注意的是:切换用户时会要求输入密码,linux输入密码类操作时不会显示密码,并不是你没有输入

1
2
# 切换至root用户
su root

若当前用户为root尝试以下命令

1
2
3
4
# 创建用户
useradd -m -s "/bin/bash" mcsmanager
# 修改用户密码
passwd mcsmanager

安装MCSManager

这里可以使用MCSManager官方提供的Linux一键安装脚本(本教程不推荐)

1
2
# 获取一键安装脚本并执行
sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"

推荐使用如下方法安装(即 Linux 手动安装)

安装nodejs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 回到当前用户的家目录
cd
# 创建PATH目录
mkdir bin
# 创建nodejs存储目录
mkdir env
# 移动到nodejs存储目录
cd env
# 下载运行时环境(Node.js)。如果你已经安装了Node.js 16+,请忽略此步骤。(如果下述指令执行失败,请在网上自行百度“linux 安装wget”)
wget https://nodejs.org/dist/v20.16.0/node-v20.16.0-linux-x64.tar.xz
# 解压档案
tar -xvf node-v20.16.0-linux-x64.tar.xz
# 添加程序到系统环境变量
ln -s /home/mcsmanager/env/node-v20.16.0-linux-x64/bin/node bin/node
ln -s /home/mcsmanager/env/node-v20.16.0-linux-x64/bin/npm bin/npm

注意:这里需要断开ssh连接,重新连接 再次连接上ssh后执行以下命令检验是否安装正确

1
2
3
4
# 查看nodejs版本
node -v
# 查看npm包管理器版本
npm -v

执行上述指令后返回诸如以下结果即表明正确安装

1
2
3
4
mcsmanager@Server:~$ node -v
v20.16.0
mcsmanager@Server:~$ npm -v
10.8.1

安装docker

此步骤也非必须内容,但为了更好的隔离各个我的时间服务器环境,推荐安装docker。此处安装请参考以下博客注意:该过程中指令请全程使用root用户操作

**如何区分是yum包管理的linux还是apt包管理的linux?**如何输入以下指令能返回如下所示结果即为apt包管理的linux,否则大概率是yum包管理的linux。

1
2
root@Server:~$ apt --version
apt 2.6.1 (amd64)

安装成功后执行以下命令把用户添加到docker组中

1
2
# 将用户添加到sudo组
usermod -aG docker mcsmanager

注意:这里需要断开ssh连接,重新连接用户为mcsmanager 再次连接上ssh后执行以下命令检验是否安装正确

1
2
mcsmanager@Server:~$ docker --version
Docker version 20.10.24+dfsg1, build 297e128

下载MCSManager

使用mcsmanager用户执行下述指令

1
2
3
4
5
6
7
8
9
# 返回家目录
cd
# 准备好安装目录
mkdir mcsmanager/
cd mcsmanager/

# 下载MCSManager
wget https://github.com/MCSManager/MCSManager/releases/latest/download/mcsmanager_linux_release.tar.gz
tar -zxf mcsmanager_linux_release.tar.gz

这里下载是用github源下载的,可能会下载缓慢,或下载失败。如果下载失败可从如下a、b两种方式中任选一种操作

a. 使用gitee源下载

1
2
3
# 下载MCSManager
wget https://gitee.com/mcsmanager/MCSManager/releases/download/v10.1.0/MCSManager-v10-linux-x64.tar.gz
tar -zxf MCSManager-v10-linux-x64.tar.gz

b. 本地电脑下载使用scp上传到服务器 访问https://github.com/MCSManager/MCSManager/releases/latest/download/mcsmanager_linux_release.tar.gz。下载成功后参考SCP:将本地文件上传到Linux服务器通过 SSH 在远程和本地系统之间传输文件的 4 种方法将文件上传至“/home/mcsmanager/mcsmanager”目录下。之后连接服务器输入以下指令

1
2
cd /home/mcsmanager/mcsmanager
tar -zxf mcsmanager_linux_release.tar.gz

安装nodejs相关依赖

执行以下命令

1
2
3
4
# 进入安装目录
cd /home/mcsmanager/mcsmanager
# 安装依赖库
./install.sh

如果出现以下响应

1
-bash: ./install.sh: No such file or directory

请从a、b、c三种途径中任选一种

a. 自己在当前目录(/home/mcsmanager/mcsmanager)中创建一个文件,内容如下

1
2
3
4
5
6
7
8
#!/bin/bash

cd web
npm install --production
cd ../daemon
npm install --production

echo Dependencies are installed!

b. 执行如下指令下载

1
wget https://raw.githubusercontent.com/mokuaisp/LFS-provider/main/blog/shenghongzha/Minecraft_Server/install.sh

c. 自行下载install.sh利用scp上传到“/home/mcsmanager/mcsmanager”目录下

下载链接 上传教程见安装2.3.b分享的博客

注意以上三种方式补全install.sh后请执行以下命令

1
chmod +x install.sh

之后继续尝试安装依赖,若长时间转圈并未有响应,请参考博客国内npm源镜像(npm加速下载) 指定npm镜像对npm换源后重新尝试下载

注册到 Linux 系统服务

切换至root用户

在“/etc/systemd/system/”目录下创建mcsm-daemon.service文件(创建方法参考2.4a、b、c,将连接替换成mcsm-daemon.service下载链接),内容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[Unit]
Description=MCSManager Daemon

[Service]
User=mcsmanager
WorkingDirectory=/home/mcsmanager/mcsmanager/daemon
ExecStart=/home/mcsmanager/bin/node app.js
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Environment="PATH=/home/mcsmanager/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target

在“/etc/systemd/system/”目录下创建mcsm-web.service文件(创建方法参考2.4a、b、c,将连接替换成mcsm-web.service下载链接),内容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[Unit]
Description=MCSManager Web

[Service]
User=mcsmanager
WorkingDirectory=/home/mcsmanager/mcsmanager/web
ExecStart=/home/mcsmanager/bin/node app.js
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Environment="PATH=/home/mcsmanager/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target

启动MCSManager

root用户下执行以下命令

1
2
3
4
systemctl start mcsm-daemon.service
systemctl start mcsm-web.service
systemctl enable mcsm-daemon.service
systemctl enable mcsm-web.service

检验启动结果,输入以下指令返回类似结果即算成功

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
systemctl status mcsm-daemon.service
● mcsm-daemon.service - MCSManager Daemon
     Loaded: loaded (/etc/systemd/system/mcsm-daemon.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-08-11 16:17:20 CST; 35s ago
   Main PID: 245529 (node)
      Tasks: 11 (limit: 2025)
     Memory: 30.4M
        CPU: 533ms
     CGroup: /system.slice/mcsm-daemon.service
             └─245529 /home/mcsmanager/bin/node app.js

Aug 11 16:17:20 iZ2vcimj6d96eq555um1leZ node[245529]: [08/11 16:17:20] [INFO] 所有应用实例已加载,总计 0Aug 11 16:17:20 iZ2vcimj6d96eq555um1leZ node[245529]: [08/11 16:17:20] [INFO] ----------------------------
Aug 11 16:17:20 iZ2vcimj6d96eq555um1leZ node[245529]: [08/11 16:17:20] [INFO] 守护进程现已成功启动
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
 systemctl status mcsm-web.service
● mcsm-web.service - MCSManager Web
     Loaded: loaded (/etc/systemd/system/mcsm-web.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-08-11 16:04:56 CST; 17min ago
   Main PID: 245187 (node)
      Tasks: 11 (limit: 2025)
     Memory: 45.8M
        CPU: 2.777s
     CGroup: /system.slice/mcsm-web.service
             └─245187 /home/mcsmanager/bin/node app.js


Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[245187]: [08/11 16:04:57] [INFO] 本地用户数:1
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[245187]: [08/11 16:04:57] [INFO] 正在尝试连接远程节点:[xxx]
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[245187]: [08/11 16:04:57] [INFO] 远程节点数:1
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[245187]: [08/11 16:04:57] [INFO] ==================================
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[245187]: [08/11 16:04:57] [INFO] 控制面板端已启动
Licensed under CC BY-NC-SA 4.0
最后修改于 Aug 17, 2024 22:02