Minecraft Forge 模组服务器搭建教程:整合包部署与模组同步完全指南
Minecraft Forge 是最主流的模组框架之一,支持数以万计的社区模组。无论是 FTB(Feed The Beast)、All the Mods(ATM)还是自定义整合包,搭建一个稳定运行的 Forge 模组服务器都需要细致的配置。本教程将带你从零开始,完成 Forge 服务器的部署、模组同步及性能优化。
服务器配置
Forge 模组服务器对内存需求极高,尤其是 ATM9、All the Mods 7 等大型整合包,仅基础加载就需要消耗 4~6GB 内存。推荐使用雨云服务器 rainyun-com的 4 核 8GB 机型,注册填优惠码 2026off 领 5 折优惠券,该配置可稳定支撑 10~20 人同时在线运行中型整合包。
推荐规格:
- CPU:4 核
- 内存:8GB RAM
- 硬盘:SSD 50GB+(整合包 + 世界存档)
- 系统:Ubuntu 22.04 LTS
- 带宽:5Mbps+(保证模组下载同步速度)
前置准备
1. 安装 Java
Forge 对 Java 版本极为敏感,不同 Minecraft 版本需要对应的 Java:
| MC 版本 | 推荐 Java 版本 |
|---|---|
| 1.16.x | Java 8 或 Java 11 |
| 1.18.x | Java 17 |
| 1.19.x | Java 17 |
| 1.20.x | Java 17 或 Java 21 |
| 1.21.x | Java 21 |
以安装 Java 21 为例:
# 更新包列表
sudo apt update && sudo apt upgrade -y
# 安装 Java 21
sudo apt install -y openjdk-21-jre-headless
# 验证安装
java -version
# 输出示例:openjdk version "21.0.3" 2024-04-16
如需同时管理多个 Java 版本:
sudo update-alternatives --config java
2. 创建服务器用户
# 创建专用用户,避免以 root 运行
sudo useradd -m -s /bin/bash mcserver
sudo su - mcserver
mkdir ~/forge-server && cd ~/forge-server
安装步骤
1. 下载 Forge 安装器
前往 Forge 官网 选择对应 MC 版本的 Installer。以 Minecraft 1.20.1 + Forge 47.3.0 为例:
# 下载 Forge installer
wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.1-47.3.0/forge-1.20.1-47.3.0-installer.jar
# 运行安装器(--installServer 指定服务端模式)
java -jar forge-1.20.1-47.3.0-installer.jar --installServer
安装过程会自动下载 Minecraft 服务端核心,耗时约 2~5 分钟。
2. 同意 EULA
# 首次运行生成 eula.txt
java -jar forge-1.20.1-47.3.0.jar nogui
# 修改 eula.txt,同意许可协议
sed -i 's/eula=false/eula=true/' eula.txt
cat eula.txt
# 确认输出包含:eula=true
3. 部署整合包模组
以 ATM9(All the Mods 9)为例,从 CurseForge 下载整合包服务端文件:
# 创建 mods 目录
mkdir -p ~/forge-server/mods
# 解压整合包服务端(以 ATM9 为例)
unzip ATM9-server-9.2.3.zip -d ~/forge-server/
# 或批量上传模组文件
# 将本地 mods 文件夹内容通过 scp 传输
# scp -r ./mods/* mcserver@your-server-ip:~/forge-server/mods/
4. 创建启动脚本
cat > ~/forge-server/start.sh << 'EOF'
#!/bin/bash
# Forge 服务器启动脚本
JAVA_OPTS="-Xms4G -Xmx7G"
JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"
JAVA_OPTS="$JAVA_OPTS -XX:+ParallelRefProcEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=200"
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
JAVA_OPTS="$JAVA_OPTS -XX:G1NewSizePercent=30"
JAVA_OPTS="$JAVA_OPTS -XX:G1MaxNewSizePercent=40"
JAVA_OPTS="$JAVA_OPTS -XX:G1HeapRegionSize=8M"
JAVA_OPTS="$JAVA_OPTS -XX:G1ReservePercent=20"
JAVA_OPTS="$JAVA_OPTS -XX:G1HeapWastePercent=5"
JAVA_OPTS="$JAVA_OPTS -XX:InitiatingHeapOccupancyPercent=15"
java $JAVA_OPTS -jar forge-1.20.1-47.3.0.jar nogui
EOF
chmod +x ~/forge-server/start.sh
核心配置
server.properties 优化
cat > ~/forge-server/server.properties << 'EOF'
# 服务器基础配置
server-port=25565
gamemode=survival
difficulty=normal
max-players=20
online-mode=true
# 性能相关
view-distance=8
simulation-distance=6
max-tick-time=60000
# 世界设置
level-name=world
level-seed=
spawn-protection=16
# 允许飞行(部分模组需要)
allow-flight=true
# 消息限制
rate-limit=0
EOF
模组配置目录结构
forge-server/
├── mods/ # 所有 .jar 模组文件
├── config/ # 各模组配置文件(.toml/.cfg)
├── world/ # 游戏存档
├── logs/ # 日志文件
├── server.properties
├── eula.txt
└── start.sh
进阶功能
模组列表同步给玩家
为保证客户端与服务端模组一致,推荐使用以下方案:
方案一:FTB App / CurseForge 整合包
如果使用标准整合包(如 FTB Revelation、ATM9),玩家直接通过 FTB App 或 CurseForge App 安装相同版本整合包即可自动同步模组列表。
方案二:生成模组清单脚本
# 生成 mods 列表供玩家参考
ls ~/forge-server/mods/ > modlist.txt
echo "当前服务器共加载 $(ls ~/forge-server/mods/*.jar | wc -l) 个模组"
cat modlist.txt
方案三:使用 Simple Voice Chat 等同步工具
部分整合包自带模组同步功能,客户端连接时会自动检测缺失模组并提示下载。
配置 systemd 自启动
sudo tee /etc/systemd/system/mcforge.service << 'EOF'
[Unit]
Description=Minecraft Forge Server
After=network.target
[Service]
User=mcserver
WorkingDirectory=/home/mcserver/forge-server
ExecStart=/home/mcserver/forge-server/start.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable mcforge
sudo systemctl start mcforge
日常维护
查看服务器状态
# 查看服务日志(实时)
journalctl -u mcforge -f
# 查看最近 100 行日志
journalctl -u mcforge -n 100
# 进入服务器控制台(需配合 screen 或 tmux)
screen -r mcserver
使用 screen 管理进程
# 安装 screen
sudo apt install -y screen
# 启动带 screen 的服务器
screen -S mcforge bash ~/forge-server/start.sh
# 分离 screen(不关闭服务器)
# 按 Ctrl+A 然后 D
# 重新连接
screen -r mcforge
定时备份存档
cat > ~/backup-world.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/home/mcserver/backups"
WORLD_DIR="/home/mcserver/forge-server/world"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/world_$DATE.tar.gz $WORLD_DIR
# 只保留最近 7 天的备份
find $BACKUP_DIR -name "world_*.tar.gz" -mtime +7 -delete
echo "备份完成:world_$DATE.tar.gz"
EOF
chmod +x ~/backup-world.sh
# 加入 crontab,每天凌晨 3 点备份
echo "0 3 * * * /home/mcserver/backup-world.sh" | crontab -
常见问题
Q:服务器启动时报 “There is insufficient memory for the Java Runtime Environment to continue” 错误?
A:启动参数 -Xmx 设置过高,超出实际可用内存。将 -Xmx7G 改为 -Xmx6G 或更低值,保留操作系统至少 1GB 余量。
Q:模组加载时报 “Mod file is not a valid mod file” 错误?
A:检查 mods 目录下是否混入了非模组文件(如 .txt、.zip),删除非 .jar 文件后重启。
Q:客户端连接时提示 “Incompatible FML modded server” 错误?
A:客户端 Forge 版本或模组列表与服务端不一致。确保双端使用完全相同的 Forge 版本和模组列表。
Q:服务器 TPS 下降严重,出现卡顿?
A:执行 /forge tps 查看各维度 TPS,若某模组导致大量实体或区块加载,可通过日志定位并在 config 中降低该模组的生成频率。
Q:整合包中部分模组需要 Forge 以外的依赖?
A:部分整合包(如含 OptiFine 的包)需要额外安装依赖。仔细阅读整合包的 README,按顺序安装所有前置模组。

9445

被折叠的 条评论
为什么被折叠?



