Skip to content

通用

约 1526 字大约 5 分钟

2025-03-09

目录

  1. 准备工作
  2. Linux系统开服教程
  3. Windows系统开服教程
  4. 服务器核心配置详解
  5. 常见问题与解决方案
  6. 进阶优化与插件管理
  7. 服务器维护与更新

准备工作

Java环境配置

Windows系统

  1. 下载Java
  2. 安装过程
    • 双击安装包,勾选 "Add to PATH"(自动配置环境变量)
    • 若未勾选,需手动添加路径(例如:C:\Program Files\Eclipse Adoptium\jdk-17.0.5.8-hotspot\bin
  3. 验证安装
    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.0Forge安装器
Fabric轻量级模组支持0.14.22Fabric安装器

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:准备运行环境

  1. 新建文件夹 C:\MC_Server
  2. 下载核心文件(如 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:配置服务器

  1. 首次运行 start.bat 生成文件
  2. 编辑 eula.txteula=true
  3. 修改 server.properties(参考Linux配置)

步骤4:端口转发设置

  1. 登录路由器管理页面(通常为 192.168.1.1
  2. 找到 端口转发/虚拟服务器 选项
  3. 添加规则:
    • 外部端口: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服务端搭建:

  1. 下载对应版本的 Forge安装器
  2. 运行安装器:
    java -jar forge-1.20.1-47.1.0-installer.jar --installServer
  3. 将mod文件放入 ./mods 文件夹

Fabric服务端搭建:

  1. 下载 Fabric安装器
  2. 生成服务端:
    java -jar fabric-installer-0.11.2.jar server -mcversion 1.20.1
  3. 启动命令需指定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
  • 分析内存快照
    1. 添加JVM参数 -XX:+HeapDumpOnOutOfMemoryError
    2. 使用 Eclipse MAT 分析生成的 .hprof 文件

问题3:玩家连接失败

  • 逐步排查
    1. 本地测试:telnet 127.0.0.1 25565
    2. 局域网测试:另一台设备连接服务器内网IP
    3. 公网测试:使用 PortCheckTool
  • 常见修复
    • 关闭Windows防火墙:Control Panel → Windows Defender Firewall → Turn off
    • 检查路由器的NAT设置

进阶优化与插件管理

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核心更新步骤

  1. 停止服务器
  2. 备份当前核心文件
  3. 下载新版本:
  4. 替换旧jar文件并重启

Forge模组更新规范

  1. 客户端与服务端的mod版本必须一致
  2. 按顺序操作:
    • 关闭服务器
    • 删除旧mod文件
    • 放入新mod
    • 启动测试服验证兼容性
  3. 推荐使用 ModManager 管理模组

日志监控

实时查看日志:

tail -f logs/latest.log | grep -E "ERROR|WARN"

使用 mcstatus 监控服务器状态:

mcstatus 127.0.0.1:25565 status