从零开始:我的Fabric服务端踩坑全记录
大家好,我是33。最近在折腾Minecraft Fabric模组服务端,发现网上教程虽然多,但真正能用的实战经验却很少。今天就把我这半个月的踩坑经历整理出来,希望能帮到同样在折腾Fabric的小伙伴们。
为什么选择Fabric?
最开始我也纠结过用Forge还是Fabric。说实话,Forge生态更成熟,但Fabric的性能优势太明显了。实测在相同配置下,Fabric服务端的TPS能稳定在19.5以上,而Forge经常掉到15左右。特别是当装了30+个模组后,这个差距会更明显。
环境准备那些坑
第一次安装时直接用了官方提供的fabric-installer,结果启动就报错:
java.lang.UnsupportedClassVersionError:
net/fabricmc/installer/ServerLauncher has been compiled by
a more recent version of the Java Runtime (class file version 61.0)
这个报错折腾了我两小时!后来发现是Java版本问题。Fabric 1.18+需要Java 17,而我的服务器默认是Java 8。解决方法:
sudo apt install openjdk-17-jdk
update-alternatives --config java # 选择Java17
模组兼容性检查
血泪教训:不是所有客户端模组都能用在服务端!有次我把OptiFine
扔进服务端mods文件夹,直接导致服务器启动卡死。后来发现要用专门的服务器优化模组,比如:
- Lithium – 性能优化
- Phosphor – 光照优化
- Krypton – 网络优化
推荐用Modrinth筛选服务端可用模组,比CurseForge更直观。
内存分配技巧
看到很多教程说”内存越大越好”,实测完全不是这样!我的4核8G服务器,分配6G给MC反而比8G更稳定。关键是要加JVM参数:
java -Xms4G -Xmx6G -XX:+UseG1GC -jar fabric-server-launch.jar
几个重点参数:
-Xms4G
初始内存别太小,避免频繁扩容-XX:+UseG1GC
G1垃圾回收器对MC更友好- 不要加
-XX:+AggressiveHeap
!实测会适得其反
自动化运维方案
最让我头疼的是服务器崩溃后不会自动重启。后来用systemd
解决了:
# /etc/systemd/system/mc.service
[Unit]
Description=Minecraft Fabric Server
After=network.target
[Service]
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms4G -Xmx6G -jar fabric-server-launch.jar
Restart=always
User=minecraft
[Install]
WantedBy=multi-user.target
记得chown -R minecraft:minecraft /opt/minecraft
,安全第一!
最后的建议
1. 备份!备份!备份!我写了个每日自动备份脚本:
tar -zcvf backup-$(date +%Y%m%d).tar.gz world/
2. 装模组前先在测试服验证,有次一个错误的权限模组把我的主城数据全清了…
3. 定期清理logs/
和crash-reports/
,特别是开了debug模式时,日志能吃掉几十G空间。
如果遇到其他问题,欢迎在评论区交流。下次准备写一篇”Fabric+Paper混合核心的优化方案”,有兴趣的可以关注~
Fabric性能是真的香,TPS稳多了😊