关于 minecraft-modpack-server
minecraft-modpack-server 是为用户提供的 Minecraft 模组包服务器部署技能,面向需要配置 NeoForge 或 Forge 服务器的场景。它按模组包要求指导安装、参数调优、防火墙配置和自动备份。
主要功能
- 01检查服务器包和模组加载器
- 02按版本安装 Java
- 03配置服务器属性与 JVM 参数
- 04开放端口并创建启动脚本
- 05设置自动备份与运行检查
适用场景
- 01从服务器包 ZIP 部署模组服务器
- 02为玩家数量和硬件调整性能参数
- 03配置白名单、游戏模式等服务器选项
- 04安排世界备份并检查服务器日志
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nousresearch/ hermes-agent --skill minecraft-modpack-server安装后在 Claude Code 中输入/minecraft-modpack-server确认已加载。
详细介绍
Minecraft 模组包服务器设置
适用场景
- 用户想要使用服务器包 ZIP 文件设置模组版 Minecraft 服务器
- 用户需要 NeoForge/Forge 服务器配置方面的帮助
- 用户询问 Minecraft 服务器性能调优或备份
先了解用户偏好
开始设置前,询问用户:
- 服务器名称 / MOTD — 服务器列表中应显示什么内容?
- 种子 — 使用指定种子还是随机种子?
- 难度 — 和平 / 简单 / 普通 / 困难?
- 游戏模式 — 生存 / 创造 / 冒险?
- 在线模式 — true(Mojang 身份验证,正版账号)还是 false(适合局域网 / 非正版账号)?
- 玩家人数 — 预计有多少名玩家?(会影响 RAM 和视距调优)
- RAM 分配 — 或者让 Agent 根据模组数量和可用 RAM 决定?
- 视距 / 模拟距离 — 或者让 Agent 根据玩家人数和硬件决定?
- PvP — 开启还是关闭?
- 白名单 — 开放服务器还是仅限白名单玩家?
- 备份 — 是否需要自动备份?频率如何?
如果用户不在意,可使用合理的默认值,但生成配置前务必先询问。
步骤
1. 下载并检查模组包
mkdir -p ~/minecraft-server
cd ~/minecraft-server
wget -O serverpack.zip "<URL>"
unzip -o serverpack.zip -d server
ls server/
查找:startserver.sh、安装程序 JAR(neoforge/forge)、user_jvm_args.txt、mods/ 文件夹。
检查脚本以确定:模组加载器类型、版本和所需 Java 版本。
2. 安装 Java
- Minecraft 1.21+ → Java 21:
sudo apt install openjdk-21-jre-headless - Minecraft 1.18-1.20 → Java 17:
sudo apt install openjdk-17-jre-headless - Minecraft 1.16 及更早版本 → Java 8:
sudo apt install openjdk-8-jre-headless - 验证:
java -version
3. 安装模组加载器
大多数服务器包都包含安装脚本。使用 INSTALL_ONLY 环境变量进行安装而不启动:
cd ~/minecraft-server/server
ATM10_INSTALL_ONLY=true bash startserver.sh
# Or for generic Forge packs:
# java -jar forge-*-installer.jar --installServer
此操作会下载库、修补服务器 JAR 等。
4. 接受 EULA
echo "eula=true" > ~/minecraft-server/server/eula.txt
5. 配置 server.properties
模组版 / 局域网的关键设置:
motd=\u00a7b\u00a7lServer Name \u00a7r\u00a78| \u00a7aModpack Name
server-port=25565
online-mode=true # false for LAN without Mojang auth
enforce-secure-profile=true # match online-mode
difficulty=hard # most modpacks balance around hard
allow-flight=true # REQUIRED for modded (flying mounts/items)
spawn-protection=0 # let everyone build at spawn
max-tick-time=180000 # modded needs longer tick timeout
enable-command-block=true
性能设置(根据硬件调整):
# 2 players, beefy machine:
view-distance=16
simulation-distance=10
# 4-6 players, moderate machine:
view-distance=10
simulation-distance=6
# 8+ players or weaker hardware:
view-distance=8
simulation-distance=4
6. 调整 JVM 参数(user_jvm_args.txt)
根据玩家人数和模组数量调整 RAM。模组版的经验值:
- 100-200 个模组:6-12GB
- 200-350+ 个模组:12-24GB
- 至少为操作系统 / 其他任务留出 8GB
-Xms12G
-Xmx24G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
7. 打开防火墙
sudo ufw allow 25565/tcp comment "Minecraft Server"
使用以下命令检查:sudo ufw status | grep 25565
8. 创建启动脚本
cat > ~/start-minecraft.sh << 'EOF'
#!/usr/bin/env bash
cd ~/minecraft-server/server
java @user_jvm_args.txt @libraries/net/neoforged/neoforge/<VERSION>/unix_args.txt nogui
EOF
chmod +x ~/start-minecraft.sh
注意:Forge(非 NeoForge)的参数文件路径不同。查看 startserver.sh 以确认准确路径。
9. 设置自动备份
创建备份脚本:
cat > ~/minecraft-server/backup.sh << 'SCRIPT'
#!/usr/bin/env bash
SERVER_DIR="$HOME/minecraft-server/server"
BACKUP_DIR="$HOME/minecraft-server/backups"
WORLD_DIR="$SERVER_DIR/world"
MAX_BACKUPS=24
mkdir -p "$BACKUP_DIR"
[ ! -d "$WORLD_DIR" ] && echo "[BACKUP] No world folder" && exit 0
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="$BACKUP_DIR/world_${TIMESTAMP}.tar.gz"
echo "[BACKUP] Starting at $(date)"
tar -czf "$BACKUP_FILE" -C "$SERVER_DIR" world
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "[BACKUP] Saved: $BACKUP_FILE ($SIZE)"
BACKUP_COUNT=$(ls -1t "$BACKUP_DIR"/world_*.tar.gz 2>/dev/null | wc -l)
if [ "$BACKUP_COUNT" -gt "$MAX_BACKUPS" ]; then
REMOVE=$((BACKUP_COUNT - MAX_BACKUPS))
ls -1t "$BACKUP_DIR"/world_*.tar.gz | tail -n "$REMOVE" | xargs rm -f
echo "[BACKUP] Pruned $REMOVE old backup(s)"
fi
echo "[BACKUP] Done at $(date)"
SCRIPT
chmod +x ~/minecraft-server/backup.sh
添加每小时运行的 cron 任务:
(crontab -l 2>/dev/null | grep -v "minecraft/backup.sh"; echo "0 * * * * $HOME/minecraft-server/backup.sh >> $HOME/minecraft-server/backups/backup.log 2>&1") | crontab -
注意事项
- 务必为模组版设置
allow-flight=true— 否则,带有喷气背包 / 飞行功能的模组会导致玩家被踢出 - 设置
max-tick-time=180000或更高 — 模组版服务器在生成世界时通常会出现较长的 tick - 首次启动很慢(大型模组包可能需要几分钟)— 不要慌
- 首次启动时出现 “Can't keep up!” 警告属于正常现象,初始区块生成后会恢复正常
- 如果
online-mode=false,也要设置enforce-secure-profile=false,否则客户端会被拒绝连接 - 模组包的 startserver.sh 通常包含自动重启循环 — 请创建一个不带该循环的干净启动脚本
- 删除 world/ 文件夹即可使用新种子重新生成世界
- 有些模组包使用环境变量控制行为(例如,ATM10 使用 ATM10_JAVA、ATM10_RESTART、ATM10_INSTALL_ONLY)
验证
- 使用
pgrep -fa neoforge或pgrep -fa minecraft检查服务器是否正在运行 - 查看日志:
tail -f ~/minecraft-server/server/logs/latest.log - 日志中出现 “Done (Xs)!” 表示服务器已就绪
- 测试连接:玩家在多人游戏中添加服务器 IP
评论
支持 Markdown