MCSpot 使用文档

字数总计: 3.6k 预计需要: 9分钟 阅读时长: 小于1分钟 评论数: 0 访问量: 0
ShinX 发布于 2026-03-08
其他游戏

文笔不好,没写清楚的地方尽管问🤐🤐

MCSpot 是一个基于腾讯云 API 的 Minecraft 服务器按需启动系统。

核心能力:

  • 一键创建实例
  • 无人自动关服
  • 自动上传存档
  • 自动释放实例节省费用

目标:让 Minecraft 服务器做到“用的时候才花钱”。

适用对象:不想每次游玩都开房间,希望与好友开服务器、随时可以游玩MC但预算有限的玩家。

Github:https://github.com/zhengweixin0101/MCSpot

费用参考

环境:

  • 2C4G 竞价实例
  • 300MB 存档
  • COS 存储(同地域内网)

费用构成:

项目 费用
实例费用 约 0.04 元 / 小时
存储费用 约 0.2 元 / 月
流量费用 0.8 元 / GB (或 0.06/Mbps/h)

说明:

  • 存档上传/下载是主要流量来源
  • COS内网传输不会消耗流量
  • 实测两人游玩时按量付费每小时消耗0.1~0.27元(低带宽时按小时似乎更划算)

使用竞价实例可最大限度节约服务器成本。

但竞价实例会随价格波动被随时释放,被系统回收时通常会提前 2 分钟通知。

需要做好随时备份的准备(有一键备份脚本)。

当然也可以多话点服务器费用使用普通的按量付费。

项目原理说明

  1. 用户在网页点击“创建服务器”
  2. 调用腾讯云API创建实例(基于启动模板)
  3. 实例启动后运行start.sh
  4. 无玩家时 auto_shutdown.sh 自动上传存档
  5. 调用腾讯云API释放实例

重要限制说明

当前通过查询账号下的实例列表来定位目标实例,

因此要求账号下仅存在唯一一个用于游戏的实例。

否则可能:

  • 获取错误的实例ID
  • 删除错误实例
  • 显示错误的公网IP

可通过使用子账号来解决此问题。

创建自定义镜像

需要先在腾讯云创建一个CVM云服务器实例。

创建完成后用SSH登录服务器。

Tips:

该实例仅用于配置自定义镜像,与运行MC服务端无关。

地域最好选择和之后创建游戏服务器相同。

在公共镜像里选择需要使用的操作系统,创建自定义镜像后将无法更换。

磁盘建议选最小值(20G)其他配置怎么便宜怎么来。

本文以Debian 12系统为例。

部署MC服务端

这一步没啥特殊的,我写的比较简单,可以自行按照网上的其他教程部署。

我使用的是命令行启动。也可以选择其他方法(如:MCSG),但后续步骤可能需要自行调整。

安装好服务端所需的java环境。

下载服务端jar包 上传到 /opt/mcs/(目录可自定义)

本文以原版 Minecraft 1.21.11 为例(需 Java 21)

启动并配置好服务端,测试没问题后继续下一步。

配置存储

支持配置腾讯云COS对象存储AWS S3兼容API作为游戏存档的存储服务,可按实际情况选择。

部分S3有免费额度(如:Cloudflare R2),但使用S3时服务器会产生更多的流量费用(按量付费时)。

COS无免费额度,但存档上传、下载可以走内网,只需要支付存储费用,理论消耗更低。

配置 S3

  1. 登录服务器,执行下列命令安装 awscli
sudo apt update
sudo apt install -y awscli
  1. 执行 aws configure

    按终端的提示填写Access Key IDSecret Access KeyDefault region等信息。

awscli 对部分 S3 兼容服务的 endpoint 支持存在兼容问题,

需要在每条命令中显式使用: --endpoint-url <你的S3访问地址>

  1. 配置完成后执行aws s3 ls --endpoint-url <你的S3访问地址>

    如果成功输出了你的存储桶,那恭喜你配置成功!

配置 COS

首先需要登录腾讯云控制台,创建一个和服务器桶地域的存储桶。

建议给存储桶添加一个标签,后面可能会用到。

存储桶必须与CVM实例处于同地域,否则无法走内网。

服务器使用nslookup命令检查是否指向内网地址

然后安装 coscli 并配置存储桶。

安装和配置步骤前往 腾讯云文档中心 查阅。

按照文档配置完成后,还需要将coscli移动到系统 PATH:

# 移动到 /usr/local/bin
mv coscli /usr/local/bin/coscli

# 验证
coscli --version

上传脚本

将 MCSpot 仓库中sh目录下的文件全部上传到/opt/sh/目录,并给予可执行权限。

.env.example改名为.env,并修改为自己的配置。

文件内注释,这里不重复说明了。不清楚的评论区提问或pr。

脚本使用的账号需要给予read_instanceterminate_instance权限

可手动执行每个脚本,测试功能是否正常。

start.sh:一键启动,需配置开机自启。

stop.sh:手动停止,运行后停止服务端并上传存档但不释放实例。

auto_shutdown.sh:由start.sh自动运行,持续监听玩家数量,到达阈值时停止服务端后自动上传存档到s3并释放实例。

我先测试过没问题才上传的,所有理论上脚本本身是没问题的,但还是测试一下比较好。

设置开机自启

创建文件 /etc/systemd/system/minecraft.service:sudo nano /etc/systemd/system/minecraft.service

内容如下(按需调整):

[Unit]
Description=Minecraft Server with Auto Shutdown
After=network.target

[Service]
Type=forking
User=root
WorkingDirectory=/opt/mcs
ExecStart=/opt/sh/start.sh
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

查看实时日志:journalctl -u minecraft.service -f

创建镜像

系统配置完并测试没问题后,前往腾讯云云服务器控制台,找到你刚创建的实例,点右边更多-镜像/操作系统-创建自定义镜像

输入名称后点创建镜像,等待创建完成。

腾讯云创建自定义镜像

创建实例启动模板

按正常流程选择服务器配置。

到镜像这里,选择自定义镜像-你刚才创建的镜像

登录方式选立即关联密钥,否则无法创建模板。密钥请备份。

建议添加一个标签,后面可能会用到。

创建云服务器

确认配置信息后,可以看到有一个另存为模板按钮,点击后输入名称,保存。

腾讯云服务器配置信息页面

创建完成后,前往控制台-云服务器-实例启动模板找到你刚才创建的模板,点击右侧编辑标签选项,添加和前面云服务器一样的标签。

编辑标签界面

创建腾讯云子账号

如果你觉得太麻烦且可以保证账号只有这一个CVM实例,那么也可以跳过该部分,直接使用主账号。

前往 访问管理 - 用户列表 - 用户 - 新建用户 - 快速创建

输入用户名,访问方式添加编程访问,然后创建用户即可。

快速创建用户

创建后会显示用户名、密码、密钥,请保存好,退出后将无法重新查看。

创建完成后需要配置所需权限。

转到策略-新建自定义策略-按标签授权

新建自定义策略界面

服务这栏添加cos和cvm,两个都勾选的话操作默认是全部且不可更改。

选择前面资源绑定的标签,其他选项默认即可。

可视化策略编辑器界面

配置好后点下一步,会提示:“当前策略内容过多,超出策略字符限制,需要拆分多条策略。”

直接选自动拆分,策略名称建议修改一下方便辨认(如:mcs-1、mcs-2、mcs-3)。

最下面选择将此权限授权给用户,选择刚刚创建的子账号,然后点击完成即可。

因为子账号还没有创建实例和付款的权限,授权这些权限。

继续点击新建自定义策略,注意这次要选按策略生成器创建

服务这栏勾选cvm。

操作这栏找到写操作并展开,只需要勾选RunInstances

新建自定义策略

配置好后点下一步,和刚刚一样授权给子账号。

完成后回到策略页面,找到QCloudFinanceFullAccess这个预设策略关联到子账号。

至此,子账号的权限配置完成,可登录子账号,检查存储桶、实例启动模板、镜像等资源释放可见,如果都能看见就成功了。

新账号默认的区域是广州,记得切换的原来创建资源去区域,不要和我一样傻傻的重试了一个小时还是加载不出来...

部署 MCSpot

我以Vercel部署为例,还有很多免费的PaaS平台可以部署。

Fork 项目仓库:https://github.com/zhengweixin0101/MCSpot

登录 Vercel,Add new project,improt刚刚fork的仓库。

点击Environment Variables根据仓库根目录下的.env.example文件中的说明添加环境变量。

注意不要搞成sh目录下的.env.example

项目所需的Redis数据库也可在Vercel中创建

填写完环境变量后部署即可,部署完成后看访问默认域名,账号密码为环境变量中设置的,登录后可点击创建服务器来启动服务。

MCSpot控制台截图

使用管理员账号登录后,控制台会显示操作日志,如创建失败,可在此查看日志。

评论
© 2026 ShinX. All rights reserved.