Minecraft Forge 模组服务器搭建教程:整合包部署与模组同步完全指南

Minecraft Forge 模组服务器搭建教程:整合包部署与模组同步完全指南

Minecraft Forge 是最主流的模组框架之一,支持数以万计的社区模组。无论是 FTB(Feed The Beast)、All the Mods(ATM)还是自定义整合包,搭建一个稳定运行的 Forge 模组服务器都需要细致的配置。本教程将带你从零开始,完成 Forge 服务器的部署、模组同步及性能优化。


服务器配置

Forge 模组服务器对内存需求极高,尤其是 ATM9、All the Mods 7 等大型整合包,仅基础加载就需要消耗 4~6GB 内存。推荐使用雨云服务器 rainyun-com4 核 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.xJava 8 或 Java 11
1.18.xJava 17
1.19.xJava 17
1.20.xJava 17 或 Java 21
1.21.xJava 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,按顺序安装所有前置模组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值