通用
约 1526 字大约 5 分钟
2025-03-09
目录
准备工作
Java环境配置
Windows系统
- 下载Java:
- 访问 Adoptium Eclipse Temurin,选择 JDK 17 → Windows x64 MSI Installer
- 安装过程:
- 双击安装包,勾选 "Add to PATH"(自动配置环境变量)
- 若未勾选,需手动添加路径(例如:
C:\Program Files\Eclipse Adoptium\jdk-17.0.5.8-hotspot\bin
)
- 验证安装:
java -version # 应显示类似:openjdk version "17.0.5" 2022-10-18
Linux系统
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-17-jdk-headless
# CentOS/RHEL
sudo yum install java-17-openjdk-devel
# 验证安装
java -version
服务器核心选择
核心类型 | 特点 | 推荐版本 | 下载方式 |
---|---|---|---|
Vanilla | 官方原版,无优化 | 1.20.1 | 官网下载 |
Paper | 高性能,支持插件 | 1.20.1 | [官网下载]https://papermc.io/ |
Forge | 模组服务器首选 | 1.20.1-47.1.0 | Forge安装器 |
Fabric | 轻量级模组支持 | 0.14.22 | Fabric安装器 |
Linux系统开服教程
步骤1:初始化服务器环境
mkdir -p ~/minecraft/server
cd ~/minecraft/server
步骤2:获取核心文件(以Paper为例)
# 自动获取最新版(需替换版本号)
PAPER_VERSION="1.20.1"
BUILD_NUMBER="100"
wget "https://api.papermc.io/v2/projects/paper/versions/${PAPER_VERSION}/builds/${BUILD_NUMBER}/downloads/paper-${PAPER_VERSION}-${BUILD_NUMBER}.jar"
步骤3:首次启动与配置
# 启动服务器(自动生成必要文件)
java -Xmx2G -Xms1G -jar paper-1.20.1-100.jar nogui
# 同意EULA协议
nano eula.txt # 修改 eula=true
# 基础配置
nano server.properties
server.properties
关键参数说明:
server-port=25565 # 监听端口
online-mode=true # 正版验证(关闭需设置为false)
max-players=20 # 最大玩家数
view-distance=10 # 视野区块数(降低可优化性能)
enable-command-block=true # 启用命令方块
步骤4:配置系统服务(可选)
创建系统服务文件 /etc/systemd/system/minecraft.service
:
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xmx4G -Xms2G -jar paper-1.20.1-100.jar nogui
Restart=always
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl enable minecraft
sudo systemctl start minecraft
Windows系统开服教程
步骤1:准备运行环境
- 新建文件夹
C:\MC_Server
- 下载核心文件(如
paper-1.20.1-100.jar
)放入文件夹
步骤2:创建启动脚本
新建 start.bat
,内容如下:
@echo off
title Minecraft Server
java -Xmx4G -Xms2G -XX:+UseG1GC -jar paper-1.20.1-100.jar nogui
pause
步骤3:配置服务器
- 首次运行
start.bat
生成文件 - 编辑
eula.txt
→eula=true
- 修改
server.properties
(参考Linux配置)
步骤4:端口转发设置
- 登录路由器管理页面(通常为
192.168.1.1
) - 找到 端口转发/虚拟服务器 选项
- 添加规则:
- 外部端口:25565
- 内部IP:本机局域网IP(如 192.168.1.100)
- 协议:TCP/UDP
服务器核心配置详解
Vanilla/官方核心
- 配置文件:
server.properties
- 基础优化:
network-compression-threshold=256 # 减少带宽占用 max-tick-time=60000 # 防止服务器卡顿重启
Spigot/Paper核心
spigot.yml
优化:save-user-cache-on-stop-only: true # 减少磁盘IO mob-spawn-range: 4 # 降低刷怪范围
paper.yml
高级设置:chunk-ticking: light-update: false # 禁用光照更新(提升TPS) async-chunks: threads: 2 # 异步区块处理线程数
Forge/Fabric核心
Forge服务端搭建:
- 下载对应版本的 Forge安装器
- 运行安装器:
java -jar forge-1.20.1-47.1.0-installer.jar --installServer
- 将mod文件放入
./mods
文件夹
Fabric服务端搭建:
- 下载 Fabric安装器
- 生成服务端:
java -jar fabric-installer-0.11.2.jar server -mcversion 1.20.1
- 启动命令需指定fabric主类:
java -Xmx4G -jar fabric-server-launch.jar nogui
常见问题与解决方案
问题1:端口冲突检测
Windows:
netstat -ano | findstr :25565
taskkill /PID <进程ID> /F
Linux:
sudo lsof -i :25565
sudo kill -9 <进程ID>
问题2:内存溢出处理
- 调整JVM参数:
-Xmx6G -Xms3G -XX:+UseZGC -XX:+ZUncommitDelay=3000
- 分析内存快照:
- 添加JVM参数
-XX:+HeapDumpOnOutOfMemoryError
- 使用 Eclipse MAT 分析生成的
.hprof
文件
- 添加JVM参数
问题3:玩家连接失败
- 逐步排查:
- 本地测试:
telnet 127.0.0.1 25565
- 局域网测试:另一台设备连接服务器内网IP
- 公网测试:使用 PortCheckTool
- 本地测试:
- 常见修复:
- 关闭Windows防火墙:
Control Panel → Windows Defender Firewall → Turn off
- 检查路由器的NAT设置
- 关闭Windows防火墙:
进阶优化与插件管理
JVM终极优化参数
java -Xms6G -Xmx6G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-jar paper.jar nogui
必备插件清单
插件名称 | 功能 | 下载地址 |
---|---|---|
ClearLag | 自动清理实体/物品 | SpigotMC |
CoreProtect | 方块操作记录 | SpigotMC |
EssentialsX | 基础功能套件 | Essentials |
自动备份脚本
#!/bin/bash
BACKUP_DIR="/opt/minecraft/backups"
DATE=$(date +%Y%m%d-%H%M%S)
# 停止服务器
systemctl stop minecraft
# 打包存档
tar -czf $BACKUP_DIR/world-$DATE.tar.gz world world_nether world_the_end
# 启动服务器
systemctl start minecraft
# 删除7天前的备份
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
设置定时任务(每天凌晨3点备份):
crontab -e
0 3 * * * /path/to/backup_script.sh
服务器维护与更新
Paper核心更新步骤
- 停止服务器
- 备份当前核心文件
- 下载新版本:
- 替换旧jar文件并重启
Forge模组更新规范
- 客户端与服务端的mod版本必须一致
- 按顺序操作:
- 关闭服务器
- 删除旧mod文件
- 放入新mod
- 启动测试服验证兼容性
- 推荐使用 ModManager 管理模组
日志监控
实时查看日志:
tail -f logs/latest.log | grep -E "ERROR|WARN"
使用 mcstatus 监控服务器状态:
mcstatus 127.0.0.1:25565 status