搭建Minecraft服务器
|Word Count:1.1k|Reading Time:4mins|Post Views:
因为上小学的娃在鼓动他同学和他一块来玩Minecraft,已经成功的拉了两个,但其他小朋友又没有正版微软游戏账号,所以就需要搭建一个私服。于是,有了这个游戏私服的搭建过程。

2025.03 天津·和平大悦城·内山书店
部署实施
节点拓扑
我手头正好有两个阿里云的低价促销主机,其中99元的主机承载了包括blog、rss阅读器、看板等角色,就拿它来当管理面板。另外,还有一台199的2核4G内存服务器除了测试和学习外,其他负载不大,这里就把它作为游戏私服。
基本情况如下:
主机 |
域名 |
功能 |
配置 |
备注 |
wulan |
mcsm.contoso.com |
控制面板 |
2核2G |
搭建MCSM的管理面板 |
beijing |
mc.contoso.com |
部署站点、服务站点 |
2核4G |
通过MCSM daemon来部署Minecraft的服务器 |
部署方式
MCSManager 是一款开源,分布式,一键部署,支持 Minecraft
和 Steam 游戏服务器
的控制面板,具有快捷上手、部署方便、支持分布式部署的优点。MCSM可以本地部署使用,也可以使用Docker来部署。其实,两种方法大同小异。我们这里就使用本地安装来进行部署。首先,要在阿里云上开通23333 24444 25655 这三个端口的安全组,其次,要配置DNS解析来访问主机。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # 在wulan主机上拉取安装脚本并进行安装 sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash" # 拉起面板管理的服务进程。 systemctl enable --now mcsm-web.service systemctl enable --now firewalld # 开启web访问端口 firewall-cmd --permanent --add-port=23333/tcp firewall-cmd --reload
# 在beijing主机上拉取安装脚本并进行安装 sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash" # 拉起终端管理的服务进程。 systemctl enable --now mcsm-web.service systemctl enable --now firewalld # 开启管理进程端口 firewall-cmd --permanent --add-port=24444/tcp # 开启游戏连接端口 firewall-cmd --permanent --add-port=25655/tcp firewall-cmd --reload
|
运维管理
登陆管理页面
访问 http://mcsm.contoso.com:23333 管理入口

创建管理账号

添加远程节点

主机管理界面

搭建应用实例
添加应用实例

选择快速部署

选择不同预制部署方案,拉取服务端和配置文件

启动应用进程,部署Paper版本MC的Server

玩家界面
获取启动器

下载客户端
注意: 客户端版本要与服务器版本一致

登陆游戏

配置私服地址
在多人游戏中,指定服务器地址

进阶调整
由于MCSM管理默认为非加密通信,同时还要访问自定义端口,需要格外配置防火墙,因此我将这些端口反向代理到常用端口上去,可以相对的提高安全性.由于MCSM的控制流量实际是web socket的协议,仅仅将网页前端加密是无法正常访问后端的守护进程的,必须要将两端的通信都要加密才可以.因此,就需要配置两台服务器的SSL.

创建SSL证书
管理面板的代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| # 安装Nginx dnf install -y nginx systemctl enable --now nginx
# 配置防火墙 firewall-cmd --permanent --add-service={http,https} firewall-cmd --reload
# 配置Nginx cat > /etc/nginx/conf.d/05-mcsm-web.conf <<EOF server { listen 443 ssl ; listen 80 ; charset utf-8; server_name mcsm.contoso.com ; resolver 223.5.5.5;
error_page 497 https://$host$request_uri; if ($scheme = "http"){ return 302 https://$host$request_uri; }
location / { proxy_pass http://localhost:23333 ;
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; add_header X-Cache $upstream_cache_status; proxy_cookie_flags ~ secure; } } EOF
nginx -t nginx -s reload
# 关闭多余端口 firewall-cmd --permanent --remove-port=23333/tcp firewall-cmd --reload
|

管理进程的代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| # 安装Nginx dnf install -y nginx systemctl enable --now nginx
# 配置防火墙 firewall-cmd --permanent --add-service={http,https} firewall-cmd --reload
# 配置Nginx,使用443端口代理mcsm-daemon程序 cat > /etc/nginx/conf.d/05-mcsm-daemon.conf <<EOF server { listen 443 ssl; server_name mc.contoso.com; resolver 223.5.5.5; charset utf-8; include /etc/nginx/ssl/ssl.conf;
proxy_hide_header Upgrade; location / { proxy_set_header Host $host; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass http://127.0.0.1:24444;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
proxy_request_buffering off; proxy_buffering off; } } EOF
nginx -t nginx -s reload
# 关闭多余端口 firewall-cmd --permanent --remove-port=24444/tcp firewall-cmd --reload
|

相关网址
- MC原版服务端下载
- MCSM管理面板下载
- PaperMC版本服务端下载
- PCL2 启动器下载