Ubuntu24 系统图形界面 Minecraft1.21 服务端配置文档
- 系统初始化
1.1 更新系统
在开始之前,确保系统是最新的:
sudo apt update
sudo apt upgrade -y
1.2 安装必要工具
安装一些常用的工具,如 curl、wget、unzip 等:
sudo apt install -y curl wget unzip
- 安装Node.js
MCSM 需要 Node.js 环境。截至 2025年3月2日,Node.js 的最新稳定版本是 23.6.0,长期支持(LTS)版本是 22.x。以下是安装步骤:
2.1 使用ubuntu官方包安装
sudo apt install nodejs
sudo apt install npm
2.2 验证安装
运行以下命令,确保 Node.js 和 npm 已正确安装:
node -v
npm -v
- 下载并配置 Minecraft 服务端
3.1 下载服务端文件
在 你的Windows电脑上下载以下文件:
• Minecraft 服务端(server.jar)
• Fabric 服务端(可选)
• MEFRP Linux 版(内网穿透工具)
3.2 将文件传输到 Ubuntu
通过 U 盘或网络将文件传输到 Ubuntu 的根目录(例如 /home/ct/)。
3.3 解压 MEFRP
解压 MEFRP 文件:
unzip mefrp-linux.zip -d ~/mefrp
3.4 初次调试 Minecraft 服务端
这里使用的是1.21,故也需安装Java21
sudo apt install openjdk-21-jdk
安装完成后使用Java -version验证
cd到sserver.jar的位置运行 Minecraft 服务端,确保它能正常工作:
java -Xmx4G -jar server.jar
首次运行会失败以及生成一些配置文件和目录。这是正常的
cd到根目录或server.jar同意 EULA 协议:
nano ~/eula.txt
将 eula=false 改为 eula=true,保存并退出。
重新运行,成功运行后可以先关掉,输入:
stop
- 配置 MEFRP 内网穿透
4.1 运行 MEFRP
进入 MEFRP 目录并运行:
cd ~/mefrp
chmod +x ./mefrpc
按照mefrpc官网,你账号下的隧道快捷启动参数来启动,如:
sudo ./mefrpc -t 0cc8b3057b5bc7435de12973cd990c60 -p 62638
4.2 测试公网连接
在其他电脑上使用公网 IP 和端口连接 Minecraft 服务端,确保能正常进入游戏。
- 设置开机自启
5.1 创建 Systemd 服务文件 - 创建 mcserver.service 文件:
sudo nano /etc/systemd/system/mcserver.service - 输入以下内容:
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=ct
WorkingDirectory=/home/ct/
ExecStart=/usr/bin/java -Xmx4G -jar /home/ct/server.jar
Restart=always
[Install]
WantedBy=multi-user.target
#注意:将 User=ct 和路径 /home/ct/ 替换为实际的用户名和路径。
3. 保存并退出。
4. 重新加载 Systemd 配置:
sudo systemctl daemon-reload
5. 启用并启动服务:
sudo systemctl enable mcserver.service
sudo systemctl start mcserver.service
6. 检查服务状态:
sudo systemctl status mcserver.service
5.2 设置 MEFRP 开机自启
- 创建 mefrp.service 文件:
sudo nano /etc/systemd/system/mefrp.service - 输入以下内容:
[Unit]
Description=MEFRP Service
After=network.target
[Service]
User=ct
WorkingDirectory=/home/ct/MCserver/mefrpc
ExecStart=/home/ct/MCserver/mefrpc/mefrpc -t 0cc8b3057b5bc7435de12973cd990c60 -p 62638
Restart=always
[Install]
WantedBy=multi-user.target
#注意:将 User=ct 和路径/home/ct/MCserver/mefrpc替换为实际的用户名和路径。
3. 保存并退出。
4. 重新加载 Systemd 配置:
sudo systemctl daemon-reload
5. 启用并启动服务:
sudo systemctl enable mefrp.service
sudo systemctl start mefrp.service
6. 检查服务状态:
sudo systemctl status mefrp.service
- 安装MCSM
6.1 下载MCSM
下载 MCSM:
sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"
启动方式
先启动面板守护进程。
这是用于进程控制,终端管理的服务进程。
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
以下为配置简单控制(能在桌面通过图形化的方式就完成常用的基本控制)
7. 配置MC服务端
7.1 创建服务文件
systemd 服务文件用于定义如何启动和管理 Minecraft 服务端
- 打开终端,创建并编辑服务文件:
sudo nano /etc/systemd/system/mcserver.service - 在文件中输入以下内容
[Unit]
Description=Minecraft Server
After=network.target
[Service]
ExecStart=/usr/bin/java -Xmx4G -jar /home/ct/MCserver/server.jar nogui
WorkingDirectory=/home/ct/MCserver
Restart=always
User=ct
Group=ct
[Install]
WantedBy=multi-user.target
o ExecStart:启动 Minecraft 服务端的命令。
o WorkingDirectory:Minecraft 服务端的工作目录。
o User 和 Group:运行服务的用户和组(替换为你的用户名)。
o Restart=always:确保服务崩溃后自动重启
重新加载配置:
sudo systemctl daemon-reload
启动服务:
sudo systemctl start mcserver.service
检查服务状态:
sudo systemctl status mcserver.service
如果显示 active (running),说明服务已成功启动
将 mcserver.service 设置为开机自启
启用开机自启:
sudo systemctl enable mcserver.service
验证是否启用成功:
sudo systemctl is-enabled mcserver.service
如果显示 enabled,说明开机自启已成功设置
7.2.确保 sudo 不需要密码
如果你不希望每次运行脚本时都输入密码,配置 sudo 免密码执行 systemctl 命令。
步骤:
- 打开 sudoers 文件:
sudo visudo - 在文件末尾添加以下内容:
ct ALL=(ALL) NOPASSWD: /bin/systemctl enable mcserver.service, /bin/systemctl disable mcserver.service, /bin/systemctl is-enabled mcserver.service
将 ct 替换为你的用户名
7.3 创建管理服务的脚本
创建一个脚本用于管理 mcserver.service 的开机自启:
nano ~/MCserver/easy/mcserver-control.sh
输入以下内容:
#!/bin/bash
SERVICE_NAME="mcserver.service"
ACTION=$(zenity --list
--title="管理 mcserver.service"
--text="请选择操作:"
--column="操作" "启用开机自启" "禁用开机自启" "检查状态")
case $ACTION in
"启用开机自启")
sudo systemctl enable $SERVICE_NAME
zenity --info --text="已启用 $SERVICE_NAME 的开机自启。"
;;
"禁用开机自启")
sudo systemctl disable $SERVICE_NAME
zenity --info --text="已禁用 (sudo systemctl is-enabled SERVICE_NAME 的当前状态:$SYSTEMCTL_STATUS"
;;
*)
zenity --error --text="无效的选择。"
;;
Esac
chmod +x ~/MCserver/easy/mcserver-control.sh
7.4 创建脚本的桌面快捷方式
创建 .desktop 文件:
nano ~/桌面/mcserver-control.desktop
在文件中输入以下内容:
[Desktop Entry]
Version=1.0
Type=Application
Name=管理 mcserver.service
Comment=控制 mcserver.service 的开机自启
Exec=/home/ct/MCserver/easy/mcserver-control.sh
Icon=utilities-terminal
Terminal=false
Categories=Utility;
保存并退出。
- 赋予执行权限并标记为可信任:
chmod +x ~/桌面/mcserver-control.desktop
gio set ~/桌面/mcserver-control.desktop metadata::trusted true
8.配置Mefrpc
8.1安装 screen:
screen 是一个终端复用工具,可以让进程在后台运行,即使关闭终端也不会中断。
安装命令:
sudo apt install screen
8.2创建启动脚本:
1.在 mefrpc 目录下创建 start-mefrpc.sh 脚本:
nano /home/ct/MCserver/mefrpc/start-mefrpc.sh
脚本内容:
#!/bin/bash
cd /home/ct/MCserver/mefrpc
screen -L -Logfile mefrpc.log -dmS mefrpc ./mefrpc -t 0cc8b3057b5bc7435de12973cd990c60 -p 62638
sleep 5 # 等待 screen 会话启动
screen -L -Logfile mefrpc.log:将 screen 会话的输出保存到日志文件。
sleep 5:等待 screen 会话启动,确保 mefrpc 有足够时间运行。
2.赋予脚本执行权限:
chmod +x /home/ct/MCserver/mefrpc/start-mefrpc.sh
8.3通过 /etc/rc.local 设置start-mefrpc.sh开机自启
注意:不能使用服务的方式设置开机自启,mefrp开机启动后会莫名被反复关闭
-
创建或编辑 /etc/rc.local 文件
打开 /etc/rc.local 文件:
sudo nano /etc/rc.local
添加以下内容:
#!/bin/bash
su - ct -c "/home/ct/MCserver/mefrpc/start-mefrpc.sh"
exit 0
su - ct -c:以 ct 用户身份运行脚本。
exit 0:确保脚本正常退出。
保存并退出(按 Ctrl + O,回车,然后按 Ctrl + X)。 -
赋予 /etc/rc.local 执行权限
赋予执行权限:
sudo chmod +x /etc/rc.local
验证权限:
ls -l /etc/rc.local
输出应显示 -rwxr-xr-x(755 权限)。 -
确保 rc-local.service 已启用
检查 rc-local.service 状态:
systemctl status rc-local.service
如果显示 active (running),说明已启用。
如果显示 inactive (dead),需要手动启用:
sudo systemctl enable rc-local.service
sudo systemctl start rc-local.service
- 配置图形化控制MC服务端当前状态(运行中/关闭中)的桌面快捷方式
9.1 安装 zenity
确保系统已安装 zenity,用于创建图形化对话框。
sudo apt update
sudo apt install zenity - 创建控制脚本
创建一个脚本 (/home/ct/MCserver/control_mc_server.sh),用于控制 MC 服务端的状态。
nano /home/ct/MCserver/control_mc_server.sh
脚本内容:
#!/bin/bash
检查 mcserver.service 的状态
SERVICE_STATUS=$(systemctl is-active mcserver.service)
将状态转换为中文
if [ "$SERVICE_STATUS" = "active" ]; then
STATUS="MC服务端正在运行"
ACTIONS=("停止" "重启")
else
STATUS="MC服务端已关闭"
ACTIONS=("启动")
fi
使用 zenity 创建图形化对话框
ACTION=$(zenity --list
--title="MC服务端控制"
--text="当前状态: STATUS" \
--column="操作" "{ACTIONS[@]}"
--width=300 --height=200)
根据用户选择执行操作
case ACTION in
"启动")
sudo systemctl start mcserver.service
# 检查服务是否成功启动
START_STATUS=(systemctl is-active mcserver.service)
if [ "START_STATUS" = "active" ]; then
zenity --info --title="MC服务端" --text="MC服务端已启动" --width=300 --height=100
else
zenity --error --title="MC服务端" --text="MC服务端启动失败,请检查日志" --width=300 --height=100
fi
;;
"停止")
sudo systemctl stop mcserver.service
# 再次检查状态以确保服务已停止
STOP_STATUS=(systemctl is-active mcserver.service)
if [ "$STOP_STATUS" = "inactive" ]; then
zenity --info --title="MC服务端" --text="MC服务端已停止" --width=300 --height=100
else
zenity --error --title="MC服务端" --text="无法停止MC服务端,请检查日志" --width=300 --height=100
fi
;;
"重启")
sudo systemctl restart mcserver.service
zenity --info --title="MC服务端" --text="MC服务端已重启" --width=300 --height=100
;;
*)
# 用户取消操作
exit 0
;;
esac
保存并退出编辑器。
-
使脚本可执行
为脚本添加可执行权限:
chmod +x /home/ct/MCserver/control_mc_server.sh -
创建桌面快捷方式
创建一个桌面快捷方式文件 (~/桌面/MC_Control.desktop)。
nano ~/桌面/MC_Control.desktop
文件内容:
[Desktop Entry]
Version=1.0
Type=Application
Name=MC服务端控制
Exec=/home/ct/MCserver/control_mc_server.sh
Icon=utilities-terminal
Terminal=false
保存并退出编辑器。 -
标记快捷方式为可信任
使用 gio set 命令将快捷方式标记为可信任:
gio set ~/桌面/MC_Control.desktop metadata::trusted true
10.配置图形化控制 mefrpc 是否开机启动的桌面快捷方式
- 创建控制脚本
在 /home/ct/MCserver/mefrpc/ 目录下创建控制脚本 (control_mefrpc_autostart.sh)。
nano /home/ct/MCserver/mefrpc/control_mefrpc_autostart.sh
脚本内容:
#!/bin/bash
检查 /etc/rc.local 是否包含 mefrpc 启动命令
RC_LOCAL="/etc/rc.local"
MEFRPC_CMD='su - ct -c "/home/ct/MCserver/mefrpc/start-mefrpc.sh"'
检查是否已启用开机启动
if grep -Fxq "RC_LOCAL"; then
AUTOSTART_STATUS="已启用"
ACTIONS=("禁用开机启动")
else
AUTOSTART_STATUS="已禁用"
ACTIONS=("启用开机启动")
fi
使用 zenity 创建图形化对话框
ACTION=$(zenity --list
--title="mefrpc 开机启动控制"
--text="当前开机启动状态: AUTOSTART_STATUS" \
--column="操作" "{ACTIONS[@]}"
--width=300 --height=200)
根据用户选择执行操作
case ACTION in
"启用开机启动")
# 在 /etc/rc.local 中添加启动命令
if ! grep -Fxq "MEFRPC_CMD" "$RC_LOCAL"; then
sudo sed -i "/^exit 0/i RC_LOCAL"
fi
zenity --info --title="mefrpc" --text="已启用 mefrpc 的开机启动" --width=300 --height=100
;;
"禁用开机启动")
# 从 /etc/rc.local 中删除启动命令
if grep -Fxq "RC_LOCAL"; then
sudo sed -i "|^RC_LOCAL"
fi
zenity --info --title="mefrpc" --text="已禁用 mefrpc 的开机启动" --width=300 --height=100
;;
*)
# 用户取消操作
exit 0
;;
esac
保存并退出编辑器。
-
使脚本可执行
为脚本添加可执行权限:
chmod +x /home/ct/MCserver/mefrpc/control_mefrpc_autostart.sh -
创建桌面快捷方式
创建一个桌面快捷方式文件 (~/桌面/mefrpc_Autostart_Control.desktop)。
nano ~/桌面/mefrpc_Autostart_Control.desktop
文件内容:
[Desktop Entry]
Version=1.0
Type=Application
Name=mefrpc 开机启动控制
Exec=gnome-terminal -- bash -c "/home/ct/MCserver/mefrpc/control_mefrpc_autostart.sh; exit"
Icon=utilities-terminal
Terminal=false
保存并退出编辑器。 -
标记快捷方式为可信任
使用 gio set 命令将快捷方式标记为可信任:
gio set ~/桌面/mefrpc_Autostart_Control.desktop metadata::trusted true
如果 gio set 无效,可以右键点击快捷方式,选择“属性”,在“权限”选项卡中勾选“允许执行文件作为程序”。
-
配置图形化控制 mefrpc 当前状态(运行中/关闭中)的桌面快捷方式
-
创建控制脚本
在 /home/ct/MCserver/mefrpc/ 目录下创建控制脚本 (control_mefrpc_status.sh)。
nano /home/ct/MCserver/mefrpc/control_mefrpc_status.sh
脚本内容:
#!/bin/bash
检查 mefrpc 是否在运行
if screen -list | grep -q "mefrpc"; then
STATUS="mefrpc 正在运行"
ACTIONS=("停止" "重启" "查看启动代码" "修改启动代码")
else
STATUS="mefrpc 已关闭"
ACTIONS=("启动" "查看启动代码" "修改启动代码")
fi
使用 zenity 创建图形化对话框
ACTION=$(zenity --list
--title="mefrpc 状态控制"
--text="当前状态: STATUS" \
--column="操作" "{ACTIONS[@]}"
--width=300 --height=200)
根据用户选择执行操作
case ACTION in
"启动")
/home/ct/MCserver/mefrpc/start-mefrpc.sh
zenity --info --title="mefrpc" --text="mefrpc 已启动" --width=300 --height=100
;;
"停止")
screen -S mefrpc -X quit
zenity --info --title="mefrpc" --text="mefrpc 已停止" --width=300 --height=100
;;
"重启")
screen -S mefrpc -X quit
/home/ct/MCserver/mefrpc/start-mefrpc.sh
zenity --info --title="mefrpc" --text="mefrpc 已重启" --width=300 --height=100
;;
"查看启动代码")
# 显示当前启动代码
START_CODE=(grep -oP '(?<=screen -L -Logfile mefrpc.log -dmS mefrpc ).' /home/ct/MCserver/mefrpc/start-mefrpc.sh)
zenity --info --title="mefrpc 启动代码" --text="当前启动代码:\nSTART_CODE" --width=400 --height=200
;;
"修改启动代码")
# 获取当前启动代码
CURRENT_CODE=(grep -oP '(?<=screen -L -Logfile mefrpc.log -dmS mefrpc ).' /home/ct/MCserver/mefrpc/start-mefrpc.sh)
# 使用 zenity 输入新启动代码
NEW_CODE=(zenity --entry \
--title="修改 mefrpc 启动代码" \
--text="当前启动代码:\nCURRENT_CODE"
--entry-text="CURRENT_CODE" \
--width=400)
if [ -n "NEW_CODE" ]; then
# 更新启动脚本中的启动代码
sed -i "s|screen -L -Logfile mefrpc.log -dmS mefrpc .*|screen -L -Logfile mefrpc.log -dmS mefrpc NEW_CODE|" /home/ct/MCserver/mefrpc/start-mefrpc.sh
zenity --info --title="mefrpc" --text="启动代码已更新为:\nNEW_CODE" --width=400 --height=200
else
zenity --error --title="mefrpc" --text="未输入新的启动代码,更新取消" --width=300 --height=100
fi
;;
*)
# 用户取消操作
exit 0
;;
esac
保存并退出编辑器。
2. 使脚本可执行
为脚本添加可执行权限:
chmod +x /home/ct/MCserver/mefrpc/control_mefrpc_status.sh
3. 创建桌面快捷方式
创建一个桌面快捷方式文件 (~/桌面/mefrpc状态控制.desktop)。
nano ~/桌面/mefrpc状态控制.desktop
文件内容:
[Desktop Entry]
Version=1.0
Type=Application
Name=mefrpc状态控制
Exec=gnome-terminal -- bash -c "/home/ct/MCserver/mefrpc/control_mefrpc_status.sh; exit"
Icon=utilities-terminal
Terminal=false
保存并退出编辑器。
4. 标记快捷方式为可信任
使用 gio set 命令将快捷方式标记为可信任:
gio set ~/桌面/mefrpc状态控制.desktop metadata::trusted true
- 配置配置 MCSM 的桌面快捷方式
- 创建桌面快捷方式
创建一个桌面快捷方式文件 (~/桌面/MCSM.desktop)。
nano ~/桌面/MCSM.desktop
在文件中输入以下内容:
[Desktop Entry]
Version=1.0
Type=Application
Name=MCSM 管理页面
Exec=xdg-open http://localhost:23333/#/
Icon=web-browser
Terminal=false
保存并退出编辑器。 - 标记快捷方式为可信任
使用 gio set 命令将快捷方式标记为可信任:
gio set ~/桌面/MCSM.desktop metadata::trusted true