MCSManager:Minecraft 游戏服务端和所有控制台程序的管理面板
本文最后更新于 204 天前,其中的信息可能已经有所发展或是发生改变。

MCSManager

MCSManager 面板(简称:MCSM 面板)是一款全中文,开源,分布式,开箱即用,支持 Minecraft 游戏服务端和所有控制台程序的管理面板。

image-20230711175909686

Linux 安装

一行命令快速安装(适用于AMD64架构 Ubuntu/Centos/Debian/Archlinux)

wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup_cn.sh | bash
  • 该脚本专为 AMD64 架构的 Ubuntu/Centos/Debian/Archlinux 设计。
  • 用于在安装后启动服务。systemctl start mcsm-{web,daemon}
  • 面板组件和运行时的目录:/opt/mcsmanager/

启动面板

使用一键安装脚本后,才可以使用下列命令,如果是手动安装,则需要使用screen命令,在后面会进行说明。

# 先启动面板守护进程。
# 这是用于进程控制,终端管理的服务进程。
systemctl start mcsm-daemon.service
# 再启动面板 Web 服务。
# 这是用来实现支持网页访问和用户管理的服务。
systemctl start mcsm-web.service 

# 重启面板命令
systemctl restart mcsm-daemon.service
systemctl restart mcsm-web.service

# 停止面板命令
systemctl stop mcsm-web.service
systemctl stop mcsm-daemon.service

面板 Web 服务是提供用户管理与网页访问功能的服务,守护进程是提供进程管理和容器管理的服务,两者缺一不可。如果某个功能不正常,可以只重启这一部分的服务来热修复问题。

手动安装面板并运行

# 切换到安装目录,没有此目录请执行 mkdir /opt/
cd /opt/

# 下载运行环境
wget https://nodejs.org/dist/v14.17.6/node-v14.17.6-linux-x64.tar.gz

# 解压文件
tar -zxvf node-v14.17.6-linux-x64.tar.gz

# 链接程序到环境变量中
ln -s /opt/node-v14.17.6-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-v14.17.6-linux-x64/bin/npm /usr/bin/npm

#创建安装文件夹
mkdir /opt/mcsmanager/
cd /opt/mcsmanager/

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

./install-dependency.sh

# 打开两个终端或者两个screen
# 首先在一个screen中开启 daemon 
./start-daemon.sh

# 在第二个screen中代开web服务
./start-web.sh

#通过http://localhost:23333/就可以访问web服务
#通常,web应用程序会自动扫描并连接到本地守护进程。

安装JAVA

# 如何获取JDK安装包?

进入JAVA官网,注册登录后下载

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

选择你需要的版本 在这里我们选择 Linux x64 Compressed Archive ,请根据自己的架构选择版本
本文档创建时的版本: jdk-8u251-linux-x64.tar.gz
请下载后自行上传到 root 目录或者 用户目录
请注意!!!请根据自己下载的版本修改下面相关命令中的版本
比如 8u251 这一段 请修改为自己上传的版本的数字
修改的内容包括 解压文件 设置环境变量  软链接程序到环境变量中 这几项

# 切换到用户目录
cd ~
# 创建安装目录
mkdir /usr/local/java/
# 解压当前目录下的JDK压缩文件
tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/java/
# 设置环境变量(安装 VIM 输入 yum -y install vim)
vim /etc/profile
# 在末尾添加对应变量
滚动光标到末尾 按下 键盘上的 INS 键,切换至插入模式
输入这几串内容后 按下 Shift + ; 输入 wq 并回车保存

export JAVA_HOME=/usr/local/java/jdk1.8.0_251
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_251/bin/java /usr/bin/java
# 测试是否安装正常,显示 java version "1.8.0_251" 则为正常
java -version

使用 Screen 保持后台运行

Ctrl+C关闭面板,我们使用 screen 软件来让面板保持后台运行。

yum install screen # (Centos)
apt install screen # (Ubuntu)

# 创建一个名为 daemon 的窗口
screen -S daemon
./start-daemon.sh

# 创建一个名为 mcsm 的窗口
#首先在一个screen中开启 daemon 
screen -S mcsm
# 在第二个screen中打开web服务
./start-web.sh

直接断开终端连接即可,面板将保持后台运行。

若要重新控制,请输入命令即可:

screen -r mcsm
screen -r daemon

请注意,上述步骤不会将面板组件注册到系统服务。您必须使用“屏幕”来管理它或手动注册系统服务。

Docker部署

创建一个文件夹/opt/docker-mcsm用于保存docker部署的配置文件

面板分为网页前端(Web)和守护进程后端(Daemon),所以需要先备好两个 Dockerfile 文件。

WEB

FROM node:14-slim
ARG INSTALL_PATH=/opt/docker-mcsm
ARG TZ=Asia/Shanghai
ENV TZ=${TZ}
RUN sed -i -E 's/http:\/\/deb.debian.org/http:\/\/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt update && apt install -y git
RUN git clone --single-branch -b master --depth 1 https://gitee.com/MCSManager/MCSManager-Web-Production $INSTALL_PATH/releases/web
RUN cd $INSTALL_PATH/releases/web && npm i --production --registry=https://registry.npmmirror.com
WORKDIR $INSTALL_PATH/releases/web
CMD node app.js

复制并保存文件名为 dockerfile-web 的文件

Daemon

FROM node:14-slim
ARG INSTALL_PATH=/opt/docker-mcsm
ARG TZ=Asia/Shanghai
ENV TZ=${TZ}
RUN sed -i -E 's/http:\/\/deb.debian.org/http:\/\/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt update && apt install -y git
RUN git clone --single-branch -b master --depth 1 https://gitee.com/MCSManager/MCSManager-Daemon-Production $INSTALL_PATH/releases/daemon
RUN cd $INSTALL_PATH/releases/daemon && npm i --production --registry=https://registry.npmmirror.com
WORKDIR $INSTALL_PATH/releases/daemon
CMD node app.js

复制并保存文件名为 dockerfile-daemon 的文件

docker-compose

version: "3"
services:
    mcsm-web:
        container_name: mcsm-web
        build:
            context: .
            dockerfile: dockerfile-web
            args:
                INSTALL_PATH: ${INSTALL_PATH-/opt/docker-mcsm}
                TZ: ${TZ-Asia/Shanghai}
        network_mode: "host"
        restart: always
        environment:
            - PUID=0
            - PGID=0
            - UMASK=022
        volumes:
            - ${INSTALL_PATH-/opt/docker-mcsm}/releases/web/data:${INSTALL_PATH-/opt/docker-mcsm}/releases/web/data
            - ${INSTALL_PATH-/opt/docker-mcsm}/releases/web/logs:${INSTALL_PATH-/opt/docker-mcsm}/releases/web/logs
            - ${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data/Config:${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data/Config:ro
    mcsm-daemon:
        container_name: mcsm-daemon
        build:
            context: .
            dockerfile: dockerfile-daemon
            args:
                INSTALL_PATH: ${INSTALL_PATH-/opt/docker-mcsm}
                TZ: ${TZ-Asia/Shanghai}
        network_mode: "host"
        restart: always
        environment:
            - PUID=0
            - PGID=0
            - UMASK=022
        volumes:
            - ${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data:${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data
            - ${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/logs:${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/logs
            - /var/run/docker.sock:/var/run/docker.sock:ro

复制并保存文件名为 docker-compose.yml 的文件

.env

INSTALL_PATH=/opt/docker-mcsm
TZ=Asia/Shanghai

安装

将四个文件放在之前创建的文件夹中,进入文件目录,运行以下命令进行部署

docker-compose up -d # 运行 web 和 daemon

docker-compose up -d mcsm-web # 仅运行 web

docker-compose up -d mcsm-daemon # 仅运行 daemon
  • 发布版中不携带 java,如需运行 java 程序请在 面板->环境镜像->环境镜像管理->新建镜像 中自行构建
    • 实例设置中的 进程启动方式 选择 虚拟化容器
  • 关闭服务器请进入到 docker-compose.yml 文件目录运行 docker-compose stop
    • 运行 docker-compose down 来移除容器

更新容器

docker-compose exec mcsm-web bash -c "git pull && npm i --production --registry=https://registry.npmmirror.com" # 更新 web

docker-compose exec mcsm-daemon bash -c "git pull && npm i --production --registry=https://registry.npmmirror.com" # 更新 daemon

docker-compose restart

端口开放

面板需要 23333(主功能) 端口与 20010 - 20200(FTP功能)端口区间。

如果你使用阿里云,腾讯云或者服务商,请进入控制台到防火墙安全组策略,放行以上端口

如果依然无法访问,请关闭系统自带防火墙:

# 关闭防火墙,依次执行
systemctl stop firewalld.service
service iptables stop

其他太过复杂操作本教程不提供,请读者有想法的自己搜索。

现在,访问 http://你的ip:23333/ 即可进入面板。

  • 默认账号:#master
  • 默认密码: 123456
  • 请及时修改密码。

image-20230711200246024

游戏实例

游戏服务端(MC服务器)或脚本(Shell)都视作为一个 应用实例 由面板统一管理,如下图所示。

image-20230711201829932

McsManager应用实例 支持多种类型的程序如JAVA、基岩版等,所以这里可以指定这个实例是什么类型,不同的选项会导致一些行为不一样,比如配置文件解析,命令执行方式等等。

守护进程

如果你在 Linux 下启动面板时,会启动两个服务,其中 daemon 就代表守护进程,它是一个类似于 被控端 的程序,由自带网页的控制中心来控制它们,从而实现多个物理主机互相连接。

所以守护进程就是类似于一个 被控端 的角色,你的 MC 服务器是在这个 被控端 上运行,而网页就是 控制中心 的角色。

下图表示了从网页上连接各个地方的 守护进程

image-20230711205651698

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇