1. 项目概述作为一名游戏服务器运维老手最近帮不少朋友在火山引擎上搭建了Minecraft Java版服务器。相比传统物理服务器云服务商的弹性计算实例确实更适合游戏服这种需要灵活调配资源的场景。火山引擎的突发性能实例t5特别适合中小型MC服性价比超高实测10人同时在线的服用1核2G配置就能流畅运行。这个教程会从零开始手把手带你在火山引擎ECS上部署Minecraft Java版服务端。不仅包含标准部署流程还会分享我这些年总结的调优参数、运维技巧和常见问题解决方案。无论你是想开个私人小服和朋友联机还是打算运营小型社区服跟着这个保姆级教程走30分钟内就能搞定全套环境。2. 环境准备2.1 服务器选型建议火山引擎的ECS实例中推荐选择以下配置组合计算型c1.large2核4G内存适合10-20人中小型服系统盘至少40GB SSD云盘MC地图会持续增长操作系统CentOS 7.9或Ubuntu 20.04 LTS带宽按量付费5Mbps起步实测够20人同时在线注意不要选共享型实例MC服务端对CPU稳定性要求高突发性能实例t5也只建议用于5人以下的超小型服。2.2 安全组配置要点在ECS控制台配置安全组时必须开放以下端口TCP 25565MC默认端口TCP 22SSH管理用UDP 19132如需基岩版跨平台需额外开启建议设置IP白名单只允许已知IP访问22端口。我有次没设白名单服务器半小时就被爆破攻击了血泪教训。3. 服务端部署3.1 Java环境安装MC服务端需要Java 17环境推荐用Azul Zulu JDK# Ubuntu/Debian sudo apt update sudo apt install -y wget wget https://cdn.azul.com/zulu/bin/zulu17.42.21-ca-jdk17.0.7-linux_x64.tar.gz tar -xzvf zulu17.42.21-ca-jdk17.0.7-linux_x64.tar.gz sudo mv zulu17.42.21-ca-jdk17.0.7-linux_x64 /usr/lib/jvm/zulu17 # 设置环境变量 echo export JAVA_HOME/usr/lib/jvm/zulu17 ~/.bashrc echo export PATH$JAVA_HOME/bin:$PATH ~/.bashrc source ~/.bashrc验证安装java -version # 应显示类似openjdk version 17.0.7 2023-04-18 LTS3.2 服务端部署实战以PaperMC服务端为例优化最好、插件生态最丰富mkdir mc_server cd mc_server wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/196/downloads/paper-1.20.1-196.jar # 首次运行会生成配置 java -Xms2G -Xmx2G -jar paper-1.20.1-196.jar nogui首次启动后会报错退出这是正常的。现在需要修改关键配置nano server.properties重点修改以下参数online-modefalse # 如果是正版验证服保持true view-distance6 # 视距每增加1级多占用约200MB内存 simulation-distance4 max-players20 # 根据实际调整4. 高级调优4.1 启动参数优化这是我多年总结的最佳JVM参数能减少卡顿和GC停顿java -Xms4G -Xmx4G -XX:UseG1GC -XX:ParallelRefProcEnabled \ -XX:MaxGCPauseMillis200 -XX:UnlockExperimentalVMOptions \ -XX:DisableExplicitGC -XX:AlwaysPreTouch \ -XX:G1HeapRegionSize8M -XX:G1NewSizePercent30 \ -XX:G1ReservePercent20 -XX:G1HeapWastePercent5 \ -XX:G1MixedGCCountTarget4 -XX:InitiatingHeapOccupancyPercent15 \ -XX:G1MixedGCLiveThresholdPercent90 \ -XX:G1RSetUpdatingPauseTimePercent5 -XX:SurvivorRatio32 \ -XX:PerfDisableSharedMem -XX:MaxTenuringThreshold1 \ -jar paper-1.20.1-196.jar nogui参数说明-Xms4G -Xmx4G堆内存设为4GB建议是物理内存的70%-XX:UseG1GCG1垃圾回收器最适合MC这种内存分配模式-XX:MaxGCPauseMillis200控制GC停顿在200ms内4.2 后台运行方案用systemd实现开机自启sudo nano /etc/systemd/system/mc.service写入[Unit] DescriptionMinecraft Server Afternetwork.target [Service] Usermcuser WorkingDirectory/home/mcuser/mc_server ExecStart/usr/bin/java -Xms4G -Xmx4G -jar paper-1.20.1-196.jar nogui Restartalways RestartSec5 [Install] WantedBymulti-user.target然后执行sudo systemctl daemon-reload sudo systemctl start mc sudo systemctl enable mc5. 运维与监控5.1 常用管理命令通过screen会话管理控制台screen -S mc # 进入后启动服务端 CtrlA D # 退出会话 screen -r mc # 重新连接游戏内OP命令示例/op 玩家名 # 给权限 /tp 玩家1 玩家2 # 传送 /gamemode creative 玩家名 # 切换模式5.2 备份方案设置每日自动备份crontab0 3 * * * tar -zcvf /backup/mc_$(date \%Y\%m\%d).tar.gz /home/mcuser/mc_server/world*推荐备份策略每日全量备份保留7天每小时差异备份通过rsync重大更新前手动备份6. 常见问题排查6.1 性能问题症状TPS下降、玩家移动卡顿解决方案检查内存使用free -h查看GC日志在JVM参数中添加-Xlog:gc*:filegc.log降低视距修改server.properties中view-distance安装性能监控插件如Sparkhttps://spark.lucko.me/6.2 连接问题错误Connection refused排查步骤确认服务端进程在运行ps -ef | grep java检查端口监听netstat -tulnp | grep 25565验证安全组规则测试本地连接telnet 127.0.0.1 255657. 插件推荐必备插件清单LuckPerms - 权限管理CoreProtect - 方块操作记录WorldEdit - 地图编辑EssentialsX - 基础功能Plan - 玩家数据分析安装方法cd plugins wget https://download.luckperms.net/1526/bukkit/loader/LuckPerms-Bukkit-5.4.79.jar # 其他插件同理配置建议权限组按阶梯划分默认→VIP→管理员定期备份plugins文件夹新插件先在测试服验证8. 网络优化对于跨地区联机比如国内服务器有海外玩家可以启用TCP BBR加速echo net.core.default_qdiscfq /etc/sysctl.conf echo net.ipv4.tcp_congestion_controlbbr /etc/sysctl.conf sysctl -p在火山引擎控制台开启全加速功能使用GeyserMC实现基岩版兼容需额外端口实测优化后海外玩家延迟能从300ms降到150ms左右。有个澳大利亚玩家反馈移动再也不会卡顿了特别开心。
火山引擎ECS部署Minecraft Java版服务器全攻略
1. 项目概述作为一名游戏服务器运维老手最近帮不少朋友在火山引擎上搭建了Minecraft Java版服务器。相比传统物理服务器云服务商的弹性计算实例确实更适合游戏服这种需要灵活调配资源的场景。火山引擎的突发性能实例t5特别适合中小型MC服性价比超高实测10人同时在线的服用1核2G配置就能流畅运行。这个教程会从零开始手把手带你在火山引擎ECS上部署Minecraft Java版服务端。不仅包含标准部署流程还会分享我这些年总结的调优参数、运维技巧和常见问题解决方案。无论你是想开个私人小服和朋友联机还是打算运营小型社区服跟着这个保姆级教程走30分钟内就能搞定全套环境。2. 环境准备2.1 服务器选型建议火山引擎的ECS实例中推荐选择以下配置组合计算型c1.large2核4G内存适合10-20人中小型服系统盘至少40GB SSD云盘MC地图会持续增长操作系统CentOS 7.9或Ubuntu 20.04 LTS带宽按量付费5Mbps起步实测够20人同时在线注意不要选共享型实例MC服务端对CPU稳定性要求高突发性能实例t5也只建议用于5人以下的超小型服。2.2 安全组配置要点在ECS控制台配置安全组时必须开放以下端口TCP 25565MC默认端口TCP 22SSH管理用UDP 19132如需基岩版跨平台需额外开启建议设置IP白名单只允许已知IP访问22端口。我有次没设白名单服务器半小时就被爆破攻击了血泪教训。3. 服务端部署3.1 Java环境安装MC服务端需要Java 17环境推荐用Azul Zulu JDK# Ubuntu/Debian sudo apt update sudo apt install -y wget wget https://cdn.azul.com/zulu/bin/zulu17.42.21-ca-jdk17.0.7-linux_x64.tar.gz tar -xzvf zulu17.42.21-ca-jdk17.0.7-linux_x64.tar.gz sudo mv zulu17.42.21-ca-jdk17.0.7-linux_x64 /usr/lib/jvm/zulu17 # 设置环境变量 echo export JAVA_HOME/usr/lib/jvm/zulu17 ~/.bashrc echo export PATH$JAVA_HOME/bin:$PATH ~/.bashrc source ~/.bashrc验证安装java -version # 应显示类似openjdk version 17.0.7 2023-04-18 LTS3.2 服务端部署实战以PaperMC服务端为例优化最好、插件生态最丰富mkdir mc_server cd mc_server wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/196/downloads/paper-1.20.1-196.jar # 首次运行会生成配置 java -Xms2G -Xmx2G -jar paper-1.20.1-196.jar nogui首次启动后会报错退出这是正常的。现在需要修改关键配置nano server.properties重点修改以下参数online-modefalse # 如果是正版验证服保持true view-distance6 # 视距每增加1级多占用约200MB内存 simulation-distance4 max-players20 # 根据实际调整4. 高级调优4.1 启动参数优化这是我多年总结的最佳JVM参数能减少卡顿和GC停顿java -Xms4G -Xmx4G -XX:UseG1GC -XX:ParallelRefProcEnabled \ -XX:MaxGCPauseMillis200 -XX:UnlockExperimentalVMOptions \ -XX:DisableExplicitGC -XX:AlwaysPreTouch \ -XX:G1HeapRegionSize8M -XX:G1NewSizePercent30 \ -XX:G1ReservePercent20 -XX:G1HeapWastePercent5 \ -XX:G1MixedGCCountTarget4 -XX:InitiatingHeapOccupancyPercent15 \ -XX:G1MixedGCLiveThresholdPercent90 \ -XX:G1RSetUpdatingPauseTimePercent5 -XX:SurvivorRatio32 \ -XX:PerfDisableSharedMem -XX:MaxTenuringThreshold1 \ -jar paper-1.20.1-196.jar nogui参数说明-Xms4G -Xmx4G堆内存设为4GB建议是物理内存的70%-XX:UseG1GCG1垃圾回收器最适合MC这种内存分配模式-XX:MaxGCPauseMillis200控制GC停顿在200ms内4.2 后台运行方案用systemd实现开机自启sudo nano /etc/systemd/system/mc.service写入[Unit] DescriptionMinecraft Server Afternetwork.target [Service] Usermcuser WorkingDirectory/home/mcuser/mc_server ExecStart/usr/bin/java -Xms4G -Xmx4G -jar paper-1.20.1-196.jar nogui Restartalways RestartSec5 [Install] WantedBymulti-user.target然后执行sudo systemctl daemon-reload sudo systemctl start mc sudo systemctl enable mc5. 运维与监控5.1 常用管理命令通过screen会话管理控制台screen -S mc # 进入后启动服务端 CtrlA D # 退出会话 screen -r mc # 重新连接游戏内OP命令示例/op 玩家名 # 给权限 /tp 玩家1 玩家2 # 传送 /gamemode creative 玩家名 # 切换模式5.2 备份方案设置每日自动备份crontab0 3 * * * tar -zcvf /backup/mc_$(date \%Y\%m\%d).tar.gz /home/mcuser/mc_server/world*推荐备份策略每日全量备份保留7天每小时差异备份通过rsync重大更新前手动备份6. 常见问题排查6.1 性能问题症状TPS下降、玩家移动卡顿解决方案检查内存使用free -h查看GC日志在JVM参数中添加-Xlog:gc*:filegc.log降低视距修改server.properties中view-distance安装性能监控插件如Sparkhttps://spark.lucko.me/6.2 连接问题错误Connection refused排查步骤确认服务端进程在运行ps -ef | grep java检查端口监听netstat -tulnp | grep 25565验证安全组规则测试本地连接telnet 127.0.0.1 255657. 插件推荐必备插件清单LuckPerms - 权限管理CoreProtect - 方块操作记录WorldEdit - 地图编辑EssentialsX - 基础功能Plan - 玩家数据分析安装方法cd plugins wget https://download.luckperms.net/1526/bukkit/loader/LuckPerms-Bukkit-5.4.79.jar # 其他插件同理配置建议权限组按阶梯划分默认→VIP→管理员定期备份plugins文件夹新插件先在测试服验证8. 网络优化对于跨地区联机比如国内服务器有海外玩家可以启用TCP BBR加速echo net.core.default_qdiscfq /etc/sysctl.conf echo net.ipv4.tcp_congestion_controlbbr /etc/sysctl.conf sysctl -p在火山引擎控制台开启全加速功能使用GeyserMC实现基岩版兼容需额外端口实测优化后海外玩家延迟能从300ms降到150ms左右。有个澳大利亚玩家反馈移动再也不会卡顿了特别开心。