MC 服务器部署与架构
服务器:49.232.135.134 · 版本:Fabric 1.16.5 · 部署方式:AI 一句话部署 · 状态:🟡 需手动开机(探针已停用)
本文档介绍技术架构;玩家看 MC服务器游玩指南。
〇、核心:这是 AI 托管服务器
部署、白名单、世界设置、换地图——全程 AI 一句话搞定,从头到尾没有手动敲命令。
服务器上运行 AI Agent(Hermes / Amadeus),微信可直连:
| 一句话 | 实际做什么 |
|---|---|
| "帮 HCN 加白名单" | 远程执行 whitelist add HCN |
| "换个地图玩探险图" | 切换世界目录 + 重启 MC |
| "把和平难度改成困难" | 改 server.properties + 重启 |
| "服务器卡不卡" | 查 TPS / 内存 / 日志 |
即便本人不在电脑前,微信上也能完全管理这台 MC 服务器。
一、技术栈与现状(2026-08-11)
| 项目 | 值 |
|---|---|
| 版本 | Fabric 1.16.5(Loader 0.19.3) |
| Java | OpenJDK 17(/usr/bin/java) |
| 路径 | /home/ubuntu/mc-server/ |
| mod | Lithium 0.6.6 / FerriteCore 2.1.1 / Krypton 0.1.2 / Phosphor 0.8.0 / Fabric API / Chunky |
| JVM | -Xms768M -Xmx1536M -XX:+UseG1GC -XX:MaxGCPauseMillis=200 |
| 内存 | MC 最多 1.5G + 2G swap 兜底 |
| 端口 | 25565(游戏)· 25575(RCON 管理) |
| 白名单 | whitelist=true(离线服安全核心) |
二、核心机制:手动启停(省内存)
想玩 ──▶ 微信说一声 / sudo systemctl start mc-server ──▶ 约 15 秒开机
玩完 ──▶ sudo systemctl stop mc-server ──────────────▶ 释放约 1.5G
- 省内存:不开机时 MC 完全不占内存,释放给其他服务(网站/数据库)
- 游戏模式切换:MC 启动时自动
docker stop searxng+ 杀闲置 Chrome(省 ~350MB);MC 停止自动恢复 - 为什么不再自动唤醒:旧的 mc-wake 探针无条件信任任何连上 25565 的连接,被公网扫描器当门铃按——2026-09-25 前 24 小时内唤醒 91 次(84 次来自同一段 IP),每次空跑一个 1.5G 的 JVM 十五分钟。无人游玩期不值得,已停用。
- 恢复自动唤醒:
sudo systemctl enable --now mc-wake.service mc-idle.timer,并取消/etc/systemd/system/mc-server.service里ExecStopPost=... restart mc-wake.service那行的注释(不取消的话,每次关服都会把探针重新拉起来)。更彻底的方案是先给探针加next_state判别(握手包next_state=1是列表查询,=2才是真登录),只对真登录唤醒。
三、内存与性能预算
总内存 3.3G
Hermes/网站/数据库 ≈ 1.2G(常驻)
MC 独占 ≈ 1.5G(游戏时)
swap 兜底 ≈ 2G(防 OOM,平时空着)
卡顿判断:
- 挖方块"等一下才掉"、怪瞬移 → 服务器 TPS 掉了(人太多/区块加载)→ 别开第三个玩家或等它缓
- 画面一顿一顿 → 客户端掉帧 → 玩家装 Sodium
- 动作有延迟 → 网络延迟(几十 ms 正常)
四、管理入口
日常管理(微信 → AI Agent)
白名单添加、资料查看、重启、换图、改设置,全部一句话远程完成,无需 SSH。
手动兜底(SSH)
sudo systemctl start mc-server # 手动开机
sudo systemctl stop mc-server # 手动关机
systemctl status mc-server # 状态
sudo journalctl -u mc-server -n 50 # 日志
systemctl is-active mc-wake # 探针已停用,应为 inactive
游戏内命令(控制台)
whitelist add <名字> # 加白名单
whitelist list # 看白名单
op <名字> # 给管理员
gamemode creative <名字> # 切创造
五、配置修改
/home/ubuntu/mc-server/server.properties 关键项:
online-mode=false # 离线模式(同学能进;别改回 true)
view-distance=5 # 视野(调大=更吃内存)
max-players=5 # 人数上限
whitelist=true # 白名单开关
JVM 参数在 /etc/systemd/system/mc-server.service 的 ExecStart 行。
改完:sudo systemctl daemon-reload && sudo systemctl restart mc-server
六、故障排查
| 症状 | 原因 | 解决 |
|---|---|---|
| 连不上/超时 | 安全组没放行 | 腾讯云防火墙加 25565 |
| 一直卡"连接中" | 服务器没开机 | 微信说一声,或 sudo systemctl start mc-server |
| 进去说"不在白名单" | 名字没加 | 微信一句话加白名单 |
| 内存爆了 | MC 超 1.5G(人太多) | 等空闲自动关,重开 |
| 服务器起不来 | 看日志 | journalctl -u mc-server -n 50 |
| 无人在玩却反复起停 | 探针被公网扫描器触发 | 已停用探针,改手动启停(见第二节) |
七、升级记录
- 2026-08-11:初始部署(AI 一句话完成:Fabric 1.16.5 + 4 性能 mod + 探针唤醒 + 空闲关闭 + 游戏模式切换)
- 2026-08-11 v2:修复空闲检测自激循环(mc-idle.sh 改走 RCON 25575,不再触发唤醒探针);预生成世界 10,201 区块(半径 800 格);补装 Fabric API + Chunky
- 2026-09-25:停用按需唤醒(mc-wake + mc-idle.timer 已 disable,ExecStopPost 重启探针那行已注释)——公网扫描器把探针当门铃,24h 唤醒 91 次、每次空跑 1.5G JVM 十五分钟;改为手动启停,游戏模式切换逻辑保留