
Minecraft 1.16.5 LoliServer 云服务器自动化部署指南1. 环境准备与系统配置在开始部署之前我们需要确保服务器环境满足运行Minecraft服务端的基本要求。Ubuntu 22.04 LTS作为长期支持版本提供了稳定的运行环境和良好的软件兼容性。首先通过SSH连接到你的云服务器执行系统更新和基础软件安装# 更新软件包列表并升级现有软件 sudo apt update sudo apt upgrade -y # 安装必要工具 sudo apt install -y curl wget git unzip htop对于2核4G配置的云服务器建议分配3GB内存给Minecraft服务端剩余1GB留给系统和Java运行时。可以通过以下命令验证系统资源# 查看CPU和内存信息 lscpu free -h2. Java环境部署LoliServer 1.16.5需要Java 11运行环境。我们选择OpenJDK 11作为JVM实现# 安装OpenJDK 11 sudo apt install -y openjdk-11-jdk # 验证Java安装 java -version输出应类似openjdk version 11.0.22 2024-01-16 OpenJDK Runtime Environment (build 11.0.227-post-Ubuntu-0ubuntu222.04.1) OpenJDK 64-Bit Server VM (build 11.0.227-post-Ubuntu-0ubuntu222.04.1, mixed mode, sharing)为优化Java性能建议设置以下环境变量# 编辑/etc/environment文件 sudo nano /etc/environment # 添加以下内容 JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64 JAVA_OPTS-XX:UseG1GC -XX:MaxGCPauseMillis150 -XX:ParallelRefProcEnabled3. 服务端部署与自动化脚本3.1 下载LoliServer核心创建专用用户和目录来运行服务端# 创建专用用户 sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft # 下载LoliServer sudo -u minecraft wget -O /opt/minecraft/server.jar \ http://nat.loliidc.cn:33644/job/LoliServer1.16/lastStableBuild/artifact/target/LoliServer-1.16.5-185-server.jar3.2 自动化部署脚本创建完整的部署脚本/opt/minecraft/setup.sh#!/bin/bash # 初始化目录 mkdir -p /opt/minecraft/{mods,plugins,world,backups} # 同意EULA echo eulatrue /opt/minecraft/eula.txt # 基础server.properties配置 cat /opt/minecraft/server.properties EOF server-port25565 max-players20 view-distance8 simulation-distance6 online-modefalse enable-command-blocktrue motdMy LoliServer 1.16.5 EOF # 创建启动脚本 cat /opt/minecraft/start.sh EOF #!/bin/bash JAVA_OPTS-Xms3G -Xmx3G \ -XX:UseG1GC \ -XX:MaxGCPauseMillis150 \ -XX:ParallelRefProcEnabled \ -XX:ConcGCThreads2 \ -XX:UnlockExperimentalVMOptions \ -XX:DisableExplicitGC \ -XX:AlwaysPreTouch cd /opt/minecraft exec java ${JAVA_OPTS} -jar server.jar nogui EOF # 设置权限 chown -R minecraft:minecraft /opt/minecraft chmod x /opt/minecraft/start.sh执行脚本并验证sudo -u minecraft bash /opt/minecraft/setup.sh4. 进程管理与后台运行4.1 tmux基础配置安装tmux并创建持久会话sudo apt install -y tmux # 创建tmux配置文件 cat ~/.tmux.conf EOF set -g mouse on set -g history-limit 10000 set -g default-terminal screen-256color EOF # 创建服务端会话 sudo -u minecraft tmux new-session -d -s mcserver -c /opt/minecraft4.2 自动化服务管理创建systemd服务单元实现开机自启sudo tee /etc/systemd/system/minecraft.service /dev/null EOF [Unit] DescriptionMinecraft Server (LoliServer 1.16.5) Afternetwork.target [Service] Userminecraft WorkingDirectory/opt/minecraft ExecStart/usr/bin/tmux new-session -d -s mcserver /opt/minecraft/start.sh ExecStop/usr/bin/tmux send-keys -t mcserver stop Enter Restarton-failure RestartSec60 [Install] WantedBymulti-user.target EOF # 启用并启动服务 sudo systemctl daemon-reload sudo systemctl enable minecraft sudo systemctl start minecraft验证服务状态sudo systemctl status minecraft5. 网络与安全配置5.1 防火墙设置配置UFW防火墙允许必要端口sudo ufw allow 22/tcp comment SSH sudo ufw allow 25565/tcp comment Minecraft sudo ufw enable5.2 安全组规则各云平台安全组需开放相应端口云平台协议端口源IP描述阿里云TCP255650.0.0.0/0Minecraft腾讯云TCP255650.0.0.0/0游戏端口AWSTCP255650.0.0.0/0主游戏连接5.3 定期备份方案创建自动化备份脚本/opt/minecraft/backup.sh#!/bin/bash BACKUP_DIR/opt/minecraft/backups TIMESTAMP$(date %Y%m%d-%H%M%S) # 发送保存命令 sudo -u minecraft tmux send-keys -t mcserver save-all Enter sleep 5 # 创建压缩备份 tar -czf ${BACKUP_DIR}/world-${TIMESTAMP}.tar.gz -C /opt/minecraft world # 保留最近7天备份 find ${BACKUP_DIR} -type f -name world-*.tar.gz -mtime 7 -delete添加到cron定时任务(crontab -l 2/dev/null; echo 0 3 * * * /opt/minecraft/backup.sh) | crontab -6. 监控与日志管理6.1 实时监控方案安装并配置基础监控工具sudo apt install -y sysstat # 配置sar数据收集 sudo sed -i s/ENABLEDfalse/ENABLEDtrue/ /etc/default/sysstat sudo systemctl enable sysstat sudo systemctl start sysstat6.2 日志处理脚本创建日志分析脚本/opt/minecraft/logstats.sh#!/bin/bash LOG_FILE/opt/minecraft/logs/latest.log # 分析最近1小时日志 analyze_logs() { echo 服务器状态统计 grep -a Server thread/INFO ${LOG_FILE} | awk -v date$(date %H:%M) /joined the game/ {join} /left the game/ {leave} /Done/ {startup$0} END { printf 当前时间: %s\n, date printf 在线玩家: %d\n, join-leave print startup } } # 监控资源使用 monitor_resources() { echo -e \n 系统资源监控 free -m | awk /Mem/ {printf 内存: %.1f/%.1fMB (%.1f%%)\n, $3,$2,$3*100/$2} top -bn1 | grep Cpu(s) | sed s/.*, *\([0-9.]*\)%* id.*/CPU使用率: 100 - \1%/e }7. 常见问题排查7.1 启动问题诊断常见错误及解决方案错误现象可能原因解决方案无法绑定端口端口被占用/无权限sudo netstat -tulnp | grep 25565Java版本不兼容安装了错误的Java版本sudo update-alternatives --config java内存不足Xmx设置过高调整start.sh中的-Xmx参数世界加载失败磁盘空间不足/文件损坏检查df -h和备份恢复7.2 性能优化参数针对不同规模服务器的JVM参数建议小型服务器 (2-5人)-Xms2G -Xmx2G \ -XX:UseG1GC \ -XX:MaxGCPauseMillis200 \ -XX:ParallelGCThreads2中型服务器 (5-15人)-Xms4G -Xmx4G \ -XX:UseG1GC \ -XX:MaxGCPauseMillis150 \ -XX:ParallelGCThreads4 \ -XX:AlwaysPreTouch大型服务器 (15人)-Xms8G -Xmx8G \ -XX:UseZGC \ -XX:ZGenerational \ -XX:ConcGCThreads4 \ -XX:AlwaysPreTouch8. 进阶配置与扩展8.1 Mod管理技巧使用CurseForge管理Mod的自动化方案# 安装jq处理JSON sudo apt install -y jq # 下载Mod列表并批量安装 curl -s https://api.curseforge.com/v1/mods/search?gameId432 | \ jq -r .data[] | select(.name | test(Create)) | .latestFilesIndexes[0].downloadUrl | \ xargs -I {} wget -P /opt/minecraft/mods {}8.2 多世界管理通过Multiverse-Core插件实现多世界下载插件放入plugins目录在tmux会话中执行mv create world normal mv create world_nether nether mv create world_the_end end /reload confirm8.3 自动化运维方案使用Ansible进行集群管理的基础playbook示例- hosts: mc_servers become: yes tasks: - name: Ensure Java is installed apt: name: openjdk-11-jdk state: present - name: Deploy startup script copy: src: files/start.sh dest: /opt/minecraft/start.sh mode: 0755 owner: minecraft group: minecraft - name: Restart service systemd: name: minecraft state: restarted enabled: yes