从零开始:我的Minecraft纸端服务端搭建踩坑记
大家好,我是33blog的站长。最近被朋友拉回MC坑,结果发现现在的服务端生态和五年前完全不一样了。折腾了三天终于搞定Paper服务端,把过程中的酸甜苦辣记录下来,希望能帮到同样想自建服务器的你。
为什么选择Paper端?
刚开始我还在纠结用原版服务端还是Bukkit,结果被老玩家朋友一顿嘲讽:”都2023年了还用这些?”现在主流的选择是Paper——基于Spigot优化的高性能分支。实测下来,同样的10人联机,原版服务端TPS掉到15的时候,Paper端还能稳定在18-19,插件兼容性也不错。
准备工作比想象中复杂
本以为下载jar包运行就完事了,结果发现要准备的东西还真不少:
- 至少2GB内存的VPS(学生党用腾讯云轻量级够用了)
- Java 17环境(注意不是Java 8!)
- screen或tmux工具(防断连)
这里踩的第一个坑就是Java版本。我习惯性装了Java 8,结果启动时报错:
UnsupportedClassVersionError: Paper requires Java 17
安装过程实录
在Ubuntu 20.04上的完整安装步骤:
# 安装Java 17
sudo apt install openjdk-17-jdk
# 创建专用用户(安全起见)
sudo adduser mcserver
sudo su - mcserver
# 下载Paper(以1.20.1为例)
wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/100/downloads/paper-1.20.1-100.jar
# 首次启动
java -Xms1G -Xmx2G -jar paper-1.20.1-100.jar --nogui
第一次运行会生成eula.txt,需要修改eula=true
才能继续。这个环节我又犯二了——直接在vim里保存导致权限错误,记得用sudo chown
改回mcserver用户。
性能调优小技巧
默认配置对小型服务器不太友好,推荐几个实测有效的优化项:
# paper-world-defaults.yml
max-auto-save-chunks-per-tick: 8 # 避免自动保存卡顿
mob-spawner-tick-rate: 2 # 降低刷怪笼频率
# server.properties
view-distance: 6 # 视距别开太大
simulation-distance: 4
特别提醒:不要盲目抄网上的JVM参数!我看到有人推荐-XX:+UseG1GC
,结果在自己2G内存的服务器上反而更卡。
插件安装血泪史
装插件时遇到最坑爹的问题:某些插件需要特定版本的ProtocolLib。我的解决方法是:
- 先装ProtocolLib
- 用
/pl versions
查看兼容版本 - 去SpigotMC页面下载历史版本
推荐几个必备插件:
- CoreProtect – 回滚熊孩子操作
- EssentialsX – 基础功能包
- LuckPerms – 权限管理
最后的唠叨
现在服务器稳定运行两周了,最高峰15人在线也不卡。给后来者的建议:
- 定时备份!我写了个cron任务每天3点打包存档
- 用
tmux
而不是screen
,分屏看日志更方便 - 遇到问题先查Paper的GitHub Issues,比论坛靠谱
如果遇到其他坑,欢迎在评论区交流。下次可能会写一篇「如何用Docker部署MC服务端」,感兴趣的话记得订阅哦~
Paper端真的比原版流畅太多了!最近也在搭建服务器,看完果断换了😂