[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"post-mcspot-documentation":3},{"success":4,"message":5,"frontmatter":6,"content":15},true,"获取成功",{"slug":7,"title":8,"date":9,"description":10,"tags":11,"published":4},"mcspot-documentation","MCSpot 使用文档","2026-03-08","MCSpot 是一个基于腾讯云 API 的 Minecraft 服务器按需启动、自动备份与释放的轻量级工具。提供创建、启动、删除实例以及查询实例信息等功能。",[12,13,14],"其他","游戏","MC","> 文笔不好，没写清楚的地方尽管问🤐🤐\n\nMCSpot 是一个基于腾讯云 API 的 Minecraft 服务器按需启动、即开即用的自动开服工具。\n\n核心能力：\n- 一键创建实例\n- 无人自动关服\n- 自动上传存档\n- 自动释放实例节省费用\n\n目标：让 Minecraft 服务器做到“用的时候才花钱”。\n\n适用对象：不想每次游玩都开房间，希望与好友开服务器、随时可以游玩MC但预算有限的玩家。\n\nGithub：[https:\u002F\u002Fgithub.com\u002Fzhengweixin0101\u002FMCSpot](https:\u002F\u002Fgithub.com\u002Fzhengweixin0101\u002FMCSpot)\n\n## 费用参考\n\n环境：\n- 2C4G 竞价实例\n- 300MB 存档\n- COS 存储（同地域内网）\n\n费用构成：\n\n| 项目 | 费用 |\n|------|------|\n| 实例费用 | 约 0.04 元 \u002F 小时 |\n| 存储费用 | 约 0.2 元 \u002F 月 |\n| 流量费用 | 0.8 元 \u002F GB （或 0.06\u002FMbps\u002Fh） |\n\n说明：\n- 存档上传\u002F下载是主要流量来源\n- COS内网传输不会消耗流量\n- 实测两人游玩时按量付费每小时消耗0.1~0.27元（低带宽时按小时似乎更划算）\n\n> 使用竞价实例可最大限度节约服务器成本。\n>\n> 但竞价实例会随价格波动被随时释放，被系统回收时通常会提前 2 分钟通知。\n>\n> 需要做好随时备份的准备（有一键备份脚本）。\n>\n> 当然也可以多话点服务器费用使用普通的按量付费。\n\n## 项目原理说明\n\n1. 用户在网页点击“创建服务器”\n2. 调用腾讯云API创建实例（基于启动模板）\n3. 实例启动后运行start.sh\n4. 无玩家时 auto_shutdown.sh 自动上传存档\n5. 调用腾讯云API释放实例\n\n## 重要限制说明\n\n当前通过查询账号下的实例列表来定位目标实例，\n\n因此要求账号下仅存在唯一一个用于游戏的实例。\n\n否则可能：\n- 获取错误的实例ID\n- 删除错误实例\n- 显示错误的公网IP\n\n可通过使用子账号来解决此问题。\n\n## 创建自定义镜像\n\n需要先在腾讯云创建一个CVM云服务器实例。\n\n创建完成后用SSH登录服务器。\n\n> Tips：\n> \n>该实例仅用于配置自定义镜像，与运行MC服务端无关。\n>\n> 地域最好选择和之后创建游戏服务器相同。\n>\n> 在公共镜像里选择需要使用的操作系统，创建自定义镜像后将无法更换。\n>\n> 磁盘建议选最小值（20G）其他配置怎么便宜怎么来。\n>\n> 本文以**Debian 12**系统为例。\n\n### 部署MC服务端\n\n这一步没啥特殊的，我写的比较简单，可以自行按照网上的其他教程部署。\n\n我使用的是命令行启动。也可以选择其他方法（如：MCSG），但后续步骤可能需要自行调整。\n\n安装好服务端所需的java环境。\n\n下载服务端jar包 上传到 `\u002Fopt\u002Fmcs\u002F`（目录可自定义）\n\n> 本文以原版 Minecraft 1.21.11 为例（需 Java 21）\n\n启动并配置好服务端，测试没问题后继续下一步。\n\n### 配置存储\n\n支持配置**腾讯云COS对象存储**或**AWS S3兼容API**作为游戏存档的存储服务，可按实际情况选择。\n\n> 部分S3有免费额度（如：Cloudflare R2），但使用S3时服务器会产生更多的流量费用（按量付费时）。\n>\n> COS无免费额度，但存档上传、下载可以走内网，只需要支付存储费用，理论消耗更低。\n\n#### 配置 S3\n\n1. 登录服务器，执行下列命令安装 `awscli`\n\n```bash\nsudo apt update\nsudo apt install -y awscli\n```\n\n2. 执行 `aws configure`\n\n   按终端的提示填写`Access Key ID`、`Secret Access Key`、`Default region`等信息。\n\n> awscli 对部分 S3 兼容服务的 endpoint 支持存在兼容问题，\n> \n> 需要在每条命令中显式使用： `--endpoint-url \u003C你的S3访问地址>`\n\n3. 配置完成后执行`aws s3 ls --endpoint-url \u003C你的S3访问地址>`\n\n   如果成功输出了你的存储桶，那恭喜你配置成功！\n\n#### 配置 COS\n\n首先需要登录腾讯云控制台，创建一个和服务器桶地域的存储桶。\n\n> 建议给存储桶添加一个标签，后面可能会用到。\n>\n> 存储桶必须与CVM实例处于同地域，否则无法走内网。\n>\n> 服务器使用`nslookup`命令检查是否指向内网地址\n\n然后安装 `coscli` 并配置存储桶。\n\n安装和配置步骤前往 [腾讯云文档中心](https:\u002F\u002Fcloud.tencent.com\u002Fdocument\u002Fproduct\u002F436\u002F63144) 查阅。\n\n按照文档配置完成后，还需要将coscli移动到系统 PATH：\n\n```bash\n# 移动到 \u002Fusr\u002Flocal\u002Fbin\nmv coscli \u002Fusr\u002Flocal\u002Fbin\u002Fcoscli\n\n# 验证\ncoscli --version\n```\n\n### 上传脚本\n\n将 MCSpot 仓库中sh目录下的文件全部上传到`\u002Fopt\u002Fsh\u002F`目录,并给予可执行权限。\n\n将`.env.example`改名为`.env`，并修改为自己的配置。\n\n文件内注释，这里不重复说明了。不清楚的评论区提问或pr。\n\n> 脚本使用的账号需要给予`read_instance`和`terminate_instance`权限\n\n可手动执行每个脚本，测试功能是否正常。\n\n`start.sh`：一键启动，需配置开机自启。\n\n`stop.sh`：手动停止，运行后停止服务端并上传存档但不释放实例。\n\n`auto_shutdown.sh`：由`start.sh`自动运行，持续监听玩家数量，到达阈值时停止服务端后自动上传存档到s3并释放实例。\n\n我先测试过没问题才上传的，所有理论上脚本本身是没问题的，但还是测试一下比较好。\n\n### 设置开机自启\n\n创建文件 \u002Fetc\u002Fsystemd\u002Fsystem\u002Fminecraft.service：`sudo nano \u002Fetc\u002Fsystemd\u002Fsystem\u002Fminecraft.service`\n\n内容如下（按需调整）：\n\n```ini\n[Unit]\nDescription=Minecraft Server with Auto Shutdown\nAfter=network.target\n\n[Service]\nType=forking\nUser=root\nWorkingDirectory=\u002Fopt\u002Fmcs\nExecStart=\u002Fopt\u002Fsh\u002Fstart.sh\nExecStop=\u002Fbin\u002Fkill -SIGTERM $MAINPID\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target\n```\n\n查看实时日志：`journalctl -u minecraft.service -f`\n\n### 创建镜像\n\n系统配置完并测试没问题后，前往腾讯云云服务器控制台，找到你刚创建的实例，点右边`更多`-`镜像\u002F操作系统`-`创建自定义镜像`\n\n输入名称后点创建镜像，等待创建完成。\n\n![腾讯云创建自定义镜像](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771160215382_07aa12f4d884489e905ff7cd913470fd.png)\n\n## 创建实例启动模板\n\n按正常流程选择服务器配置。\n\n到镜像这里，选择`自定义镜像`-`你刚才创建的镜像`。\n\n登录方式选`立即关联密钥`，否则无法创建模板。密钥请备份。\n\n建议添加一个标签，后面可能会用到。\n\n![创建云服务器](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771721040562_6c0463a0e50c466babad1c736e1837e9.png)\n\n确认配置信息后，可以看到有一个`另存为模板`按钮，点击后输入名称，保存。\n\n![腾讯云服务器配置信息页面](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771161488393_8cb4960de94c4a39a66723f519349d6f.png)\n\n创建完成后，前往`控制台-云服务器-实例启动模板`找到你刚才创建的模板，点击右侧**编辑标签**选项，添加和前面云服务器一样的标签。\n\n![编辑标签界面](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771721235439_b9e7fb21c1fb412ba92ceb4221f70316.png)\n\n## 创建腾讯云子账号\n\n> 如果你觉得太麻烦且可以保证账号只有这一个CVM实例，那么也可以跳过该部分，直接使用主账号。\n\n前往 [访问管理 - 用户列表 - 用户 - 新建用户 - 快速创建](https:\u002F\u002Fconsole.cloud.tencent.com\u002Fcam\u002Fuser\u002Fcreate?systemType=FastCreateV2)\n\n输入用户名，访问方式添加编程访问，然后创建用户即可。\n\n![快速创建用户](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771721766153_58422cfb8c2e47a8a6a1912082d0e84d.png)\n\n创建后会显示用户名、密码、密钥，请保存好，退出后将无法重新查看。\n\n创建完成后需要配置所需权限。      \n\n转到`策略-新建自定义策略-按标签授权`\n\n![新建自定义策略界面](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771722679489_52141f49371042cab65fb14360d9918f.png)\n\n服务这栏添加cos和cvm，两个都勾选的话操作默认是全部且不可更改。\n\n选择前面资源绑定的标签，其他选项默认即可。\n\n![可视化策略编辑器界面](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771722808319_042cb2ddd21242da9f7d32138f7901d6.png)\n\n配置好后点下一步，会提示：“当前策略内容过多，超出策略字符限制，需要拆分多条策略。”\n\n直接选自动拆分，策略名称建议修改一下方便辨认（如：mcs-1、mcs-2、mcs-3）。\n\n最下面选择`将此权限授权给用户`，选择刚刚创建的子账号，然后点击完成即可。\n\n因为子账号还没有创建实例和付款的权限，授权这些权限。\n\n继续点击`新建自定义策略`，注意这次要选`按策略生成器创建`。\n\n服务这栏勾选cvm。\n\n操作这栏找到写操作并展开，只需要勾选`RunInstances`。\n\n![新建自定义策略](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771723328740_41243af370234831a5f35fd4a083fbad.png)\n\n配置好后点下一步，和刚刚一样授权给子账号。\n\n完成后回到策略页面，找到`QCloudFinanceFullAccess`这个预设策略关联到子账号。\n\n至此，子账号的权限配置完成，可登录子账号，检查存储桶、实例启动模板、镜像等资源释放可见，如果都能看见就成功了。\n\n> 新账号默认的区域是广州，记得切换的原来创建资源去区域，不要和我一样傻傻的重试了一个小时还是加载不出来...\n\n## 部署 MCSpot\n\n我以Vercel部署为例，还有很多免费的PaaS平台可以部署。\n\nFork 项目仓库：[https:\u002F\u002Fgithub.com\u002Fzhengweixin0101\u002FMCSpot](https:\u002F\u002Fgithub.com\u002Fzhengweixin0101\u002FMCSpot)\n\n登录 Vercel，Add new project，improt刚刚fork的仓库。\n\n点击`Environment Variables`根据仓库根目录下的`.env.example`文件中的说明添加环境变量。\n\n> 注意不要搞成sh目录下的.env.example\n>\n> 项目所需的Redis数据库也可在Vercel中创建\n\n填写完环境变量后部署即可，部署完成后看访问默认域名，账号密码为环境变量中设置的，登录后可点击创建服务器来启动服务。\n\n![MCSpot控制台截图](https:\u002F\u002Fcdn.zhengweixin.top\u002Fblog\u002Fposts\u002F1771724455182_fda32757d94846a599b68c5ce7a9aed5.png)\n\n使用管理员账号登录后，控制台会显示操作日志，如创建失败，可在此查看日志。"]