目录

引言:为什么要在云上开MC服?

一、Java版 vs 基岩版:先搞清楚你在玩哪个

二、服务端核心选型:Paper,还是Forge?

三、配置选型:多少人才用多大的机器

3.1 内存怎么估算?

3.2 各场景配置推荐表

3.3 选型建议

四、部署实战:从购买服务器到进游戏

4.1 环境准备

4.2 安装服务端

4.3 启动服务器

4.4 配置防火墙与安全组

五、JVM参数调优:从能跑到流畅的关键一步

5.1 基础方案:G1GC(4GB内存以下服务器首选)

5.2 进阶方案:Aikar Flags(4GB以上服务器推荐)

5.3 高端方案:ZGC(8GB以上、Java 17+)

六、服务端配置优化:每个参数都在影响TPS

6.1 server.properties 核心调整

6.2 Paper独有优化(需编辑 config/paper-world-defaults.yml)

6.3 大型服务器进阶优化(30人以上)

七、进阶部署方案

7.1 Docker部署(推荐新手、快速迁移)

7.2 systemd服务配置(推荐生产环境)

7.3 多服务器/群组架构(50人以上)

八、服务器安全与日常维护

8.1 安全基线五步法

8.2 开服必备插件清单

8.3 日常维护清单

九、总结:从2人基友服到50人社区服的完整路径

相关阅读


引言:为什么要在云上开MC服?

想和朋友一起玩《我的世界》,无非三种方案:局域网联机(同一WiFi下)、租面板服(按人数付费)、或者自己开服(本机或云服务器)。局域网限制最多,面板服自由度受限,而真正能让你掌控全局的,还是自己搭一台云服务器

云服务器开服有三大好处:

  1. 24小时在线:不用自己电脑一直开着,朋友想玩随时进;

  2. 全国低延迟:云厂商BGP多线接入,不管你朋友在哪个城市,网络延迟都能控制在可接受范围;

  3. 弹性扩展:前期2核4G带5个朋友玩,后期加人直接升级配置,数据和地图无缝保留。

本文将从零开始,带你完成服务端核心选型 → 配置选择 → 环境部署 → JVM调优 → 日常运维的全流程。不论你是刚接触开服的新手,还是已经开了服但经常卡顿的老手,都能在这篇里找到对你有用的内容。

一、Java版 vs 基岩版:先搞清楚你在玩哪个

Minecraft服务端分两套完全独立的生态,两套生态使用的服务端核心、联机方式、Mod体系都不一样。开服前先确认你和朋友们主要在哪个平台玩:

项目 Java版 基岩版(Bedrock)
客户端平台 PC(Windows / Mac / Linux) 手机、主机、Win10/11
服务端类型 Paper / Purpur / Forge / Fabric Bedrock Dedicated Server(BDS)
Mod / 插件生态 ✅ 极其丰富 ⚠️ 有限(以Addon为主)
跨平台联机 ❌ 仅Java版之间 ✅ 手机/主机/PC互通

本文以Java版为主线(玩家最多、生态最成熟),基岩版的部署区别在文中会标注。

游戏版本与Java版本的对应关系:开服前务必确认:

MC版本 需要的Java版本
1.16及以下 Java 8
1.17 ~ 1.20.4 Java 17(当前最主流)
1.20.5及以上 Java 21

如果用Docker部署,镜像会自动适配Java版本,无需手动安装。

二、服务端核心选型:Paper,还是Forge?

服务端核心是MC服务器的“操作系统”,选错了后面全是坑。以下是当前(2026年)主流服务端的横向对比:

服务端 特点 Mod兼容性 插件兼容性 性能 推荐度
Vanilla Mojang官方服务端 仅原版 ❌ 不支持 ⭐⭐ 不推荐
Spigot 经典插件端 Bukkit/Spigot插件 ⭐⭐⭐ 可选
Paper Spigot的深度优化版,Bug修复更及时 Bukkit/Spigot插件 ⭐⭐⭐⭐⭐ ✅ 强烈推荐
Purpur Paper基础上增加更多可自定义项 同Paper ⭐⭐⭐⭐⭐ ✅ 推荐
Forge Mod服务端标准,大型整合包首选 ✅ Forge Mod ⭐⭐⭐ Mod必选
Fabric 轻量Mod框架,启动快、占用低 ✅ Fabric Mod ⭐⭐⭐⭐ 轻量Mod推荐
Mohist Forge + Bukkit插件混合 ✅ Forge Mod ✅ Bukkit插件 ⭐⭐⭐ 混合生态

选型决策口诀

  • 纯原版生存 / 插件服(城镇、地皮、经济系统)→ 选Paper。Paper是目前社区事实上的标准,性能比原版提升30~50%,且兼容几乎所有Bukkit/Spigot插件。Paper是Spigot的一个fork,专注于性能优化和Bug修复,现在已成为插件服务器中使用最广泛的核心。

  • 要玩Mod整合包(如RLcraft、Better MC、FTB系列)→ 选Forge。几乎所有大型整合包都基于Forge构建。

  • 轻量优化向Mod(钠、锂、磷等性能优化Mod)→ 选Fabric。启动更快,占用更低,适合低配机器。

  • 既要插件又要Mod → 选Mohist或Arclight,但兼容性不如纯Forge/Paper方案稳定,建议先做好测试。

  • 基岩版用户:服务端只有一个官方选择——BDS,直接从Minecraft官网下载即可。

一个常见误区:不要因为“原版最纯净”就用Vanilla开服。Vanilla几乎没有性能优化,20个玩家同时在线的Vanilla服比同配置的Paper服TPS可能差40%以上。

什么是TPS? TPS(Ticks Per Second)是衡量MC服务器性能的核心指标,满值为20.0。可以把它理解为服务器的“帧率”——TPS低于18,玩家就会感觉到明显卡顿(挖方块回弹、生物瞬移)。20.0表示服务器完全流畅。

三、配置选型:多少人才用多大的机器

MC服务器的首要瓶颈是内存,其次是CPU单核性能(MC主游戏循环是单线程的,多核并不能直接加速主循环),最后才是带宽。

3.1 内存怎么估算?

服务器基础占用(系统+Java虚拟机):约1 ~ 1.5 GB
每个在线玩家:额外 200 ~ 400 MB
每个Mod:额外 50 ~ 200 MB

举个例子:5个朋友玩一个30个Mod的整合包——

  • 基础:1.5 GB

  • 玩家:5 × 0.3 = 1.5 GB

  • Mod:30 × 0.1 = 3 GB

  • 合计:约 6 GB → 选8 GB内存的机器,分配6 GB给MC,留2 GB给系统。

3.2 各场景配置推荐表

玩家人数 玩法类型 推荐CPU 推荐内存 带宽 存储 参考月费
2~5人 原版纯净/Paper 2核 4 GB 3 Mbps SSD 50 GB 40~70元
5~10人 原版/少量插件 2核(高频>3.0GHz) 4 GB 5 Mbps SSD 80 GB 70~100元
10~20人 插件服/中小型Mod包 4核(高频>3.0GHz) 8 GB 8~10 Mbps SSD 100 GB 120~200元
20~30人 大型Mod整合包(80+Mod) 8核 16 GB 15 Mbps NVMe SSD 200 GB 500~700元
30~50人 社区服/多子服架构 8核+ 16~32 GB 20 Mbps+ NVMe SSD 200 GB+ 800~1200元
50人以上 大型网络服 详见进阶方案(第七节) 32 GB+ 50 Mbps+ NVMe SSD 500 GB+ 2000元+

轻量级场景(2-5人,无模组)2核2G即可满足需求,2核4G配置可支撑15人同时在线且TPS稳定在19.8-20.1。轻量应用服务器完全可满足10人以下小型MC服务器的需求,配置2核4G+5M带宽的服务器可稳定运行,10人以内延迟低于60ms。

3.3 选型建议

  • CPU:优先选主频≥3.0GHz的型号。MC的主游戏循环是单线程的,核心数多不如单核强。实测显示,同等核心数下,3.5GHz主频比2.5GHz主频的服务器TPS稳定性显著更优。

  • 内存:建议给系统留至少1~2GB,不要把全部内存分配给MC。MC的JVM内存不是越大越好——分配过多会导致GC(垃圾回收)扫描范围过大,反而引发周期性的长时间停顿。

  • 带宽:每个玩家约消耗100 Kbps上传带宽,10 Mbps带宽可支持约20-30人同时在线。

  • 存储:必须SSD起步。世界加载、区块读写极度依赖随机IOPS,HDD机械硬盘会让跑图时全服卡顿。

  • 操作系统:推荐 Ubuntu 22.04 LTS(资源占用低、社区支持好),其次 CentOS Stream 9。Windows Server也可用但内存开销更大。

四、部署实战:从购买服务器到进游戏

以下以 Ubuntu 22.04 + Paper 1.21 为例,全程命令行操作,零基础也能跟着走。

4.1 环境准备

# === 第1步:登录云服务器 ===
# 在本地终端执行(Windows用PowerShell或CMD,Mac用终端):
ssh root@你的服务器公网IP

# === 第2步:更新系统并安装必要软件 ===
# apt update:刷新软件包列表
# apt upgrade -y:升级所有已安装的软件包(-y 自动确认)
sudo apt update && sudo apt upgrade -y

# === 第3步:安装Java 17(Paper 1.21所需的最低版本)===
# openjdk-17-jre-headless:无图形界面的精简版Java运行环境
sudo apt install -y openjdk-17-jre-headless

# 验证Java安装(应显示类似 openjdk version "17.0.x")
java -version

# === 第4步:安装screen(后台会话管理工具)===
# screen可以让MC服务端在你退出SSH后继续运行
sudo apt install -y screen

# === 第5步:创建专用用户(安全最佳实践,避免root直接运行)===
sudo adduser mcserver
# 按提示设置密码(建议12位以上),其余信息可留空按回车跳过

# 切换到新用户
sudo su - mcserver

为什么用screen而不是直接java -jar 直接运行java -jar后,你的SSH窗口就被MC服务端占用了。一旦关闭SSH窗口,MC进程也会终止。screen相当于在服务器上开了一个“虚拟窗口”,你可以随时断开SSH后回来接上。备选方案还有tmux(功能更丰富)或配置systemd服务(第七节介绍)。

4.2 安装服务端

# === 第6步:创建MC服务器目录 ===
# 将游戏服务器文件与用户主目录其他文件隔离开
mkdir -p ~/mc-server
cd ~/mc-server

# === 第7步:下载Paper服务端jar ===
# PaperMC官方提供最新构建版本的直接下载链接
wget https://api.papermc.io/v2/projects/paper/versions/1.21.5/builds/53/downloads/paper-1.21.5-53.jar

# === 第8步:同意Minecraft EULA(必须!否则服务器无法启动)===
# 启动前必须将 eula.txt 中的 eula=false 改为 eula=true
# echo 命令直接写入同意标识
echo "eula=true" > eula.txt

文件下载完成后建议重命名,方便后续启动命令书写:

mv paper-1.21.5-53.jar server.jar

基岩版用户注意:基岩版服务端(BDS)直接从Minecraft官网下载,解压后执行 ./bedrock_server 即可启动,不需要安装Java。Windows版BDS需要额外配置防火墙,允许UDP协议的19132端口通过。

4.3 启动服务器

# === 第9步:创建screen会话并启动MC服务端 ===
# -S mc:给screen会话命名为mc,方便后续查找
screen -S mc

# 在screen会话中执行启动命令:
# -Xms4G:JVM启动时初始堆内存大小(4 GB)
# -Xmx4G:JVM最大堆内存大小(与初始值相同,避免运行时动态调整开销)
# -jar server.jar:指定服务端jar文件
# nogui:不启动MC的图形界面(服务器上没必要)
java -Xms4G -Xmx4G -jar server.jar nogui

# 首次启动会自动生成 server.properties 配置文件,等待看到 "Done!" 后执行:
stop

# 按 Ctrl+A 再按 D 可以暂时离开screen会话(服务端仍在后台运行)
# 下次想回到MC控制台时执行:screen -r mc

4.4 配置防火墙与安全组

云服务器有两层防火墙,都必须配置才能让朋友连进来:

系统防火墙(以UFW为例):

# 切换回root用户执行(或使用 sudo)
# UFW(Uncomplicated Firewall)是Ubuntu上的防火墙管理工具
exit  # 退出mcserver用户
# 回到root后:

# 开放MC默认端口25565(TCP协议)
sudo ufw allow 25565/tcp

# 限制SSH端口22的访问来源(仅允许你的IP,替换为你的公网IP)
# 这一步很重要:防止黑客暴力破解你的root密码
sudo ufw allow from 你的公网IP to any port 22 proto tcp

# 启用防火墙(输入 y 确认)
sudo ufw enable

# 查看已添加的规则
sudo ufw status numbered

云厂商安全组(在网页控制台操作):

进入云服务器控制台 → 找到“安全组”或“防火墙”选项 → 添加入方向规则:

端口 协议 来源 用途
25565 TCP 0.0.0.0/0 Minecraft Java版
22 TCP 你的公网IP/32 SSH远程管理(严禁全网开放)

⚠️ 关键提醒

  • 22端口不要对0.0.0.0/0开放! 全网开放的22端口会在几分钟内被扫描到,引来大量暴力破解攻击。

  • 25565端口是黑客的重点扫描目标。如果服务器被DDoS攻击,轻则卡顿,重则封IP。建议根据预算考虑高防IP服务。

  • 基岩版服务器的端口默认是 19132(UDP) ,与Java版不同。

  • 可以用 cip.cc 查询自己的公网IP,安全组的来源IP后面要加/32(如123.456.789.0/32)。

五、JVM参数调优:从能跑到流畅的关键一步

MC服务端的性能瓶颈主要来自两方面:GC(垃圾回收)停顿和区块加载。JVM参数调优的核心目标就是减少GC停顿的频率和时长

5.1 基础方案:G1GC(4GB内存以下服务器首选)

适用于2~4GB内存的小型服务器,可直接复制使用:

java -Xms3G -Xmx3G \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=200 \
  -XX:ParallelGCThreads=4 \
  -XX:ConcGCThreads=2 \
  -XX:+UseStringDeduplication \
  -jar server.jar nogui

参数解读:

参数 含义 调优建议
-Xms3G -Xmx3G 初始和最大堆内存均设为3GB 两个值必须相同,避免运行时动态调整
-XX:+UseG1GC 启用G1垃圾回收器 Java 9+默认,MC场景首选
-XX:MaxGCPauseMillis=200 GC最大停顿目标200毫秒 调低可减少卡顿但增加CPU占用
-XX:ParallelGCThreads=4 并行GC线程数 一般设为核心数的一半
-XX:ConcGCThreads=2 并发GC线程数 约为ParallelGCThreads的1/4~1/2
-XX:+UseStringDeduplication 自动去重重复字符串 MC中大量重复方块名,能省10-20%堆内存

5.2 进阶方案:Aikar Flags(4GB以上服务器推荐)

Aikar's Flags是Paper社区的核心开发者Aikar贡献的一套JVM启动参数,专门为Minecraft服务端的工作负载特征(大量短生命周期对象、频繁内存分配)进行了优化,围绕G1GC精细调优。社区广泛验证该参数集可将服务端在高负载下的GC停顿时间降低约67%。

4GB服务器推荐Aikar参数:

java -Xms4G -Xmx4G \
  -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 server.jar nogui

参数解读(核心参数):

参数 含义
-XX:+AlwaysPreTouch 启动时预分配并物理初始化所有堆内存,避免运行时缺页中断
-XX:G1NewSizePercent=30 新生代初始占堆的30%(MC对象大多短命,加大新生代减少晋升到老年代的对象)
-XX:MaxTenuringThreshold=1 对象经过1次GC后直接晋升老年代(MC场景下幸存者对象通常都是长生命周期数据,快速晋升避免在Survivor区反复拷贝)
-XX:G1MixedGCCountTarget=4 混合GC的目标次数(更频繁但单次更短的混合回收)
-XX:InitiatingHeapOccupancyPercent=15 堆占用15%就开始考虑并发标记周期(提前触发,避免堆满后紧急Full GC)
-XX:+PerfDisableSharedMem 禁用JVM性能统计共享内存(减少不必要的系统调用开销)

5.3 高端方案:ZGC(8GB以上、Java 17+)

适用于8GB以上内存的大型服务器,ZGC(Z Garbage Collector)支持亚毫秒级停顿,所有GC阶段均与应用线程并发执行:

java -Xms8G -Xmx8G \
  -XX:+UseZGC \
  -XX:+ZGenerational \
  -XX:+AlwaysPreTouch \
  -XX:+DisableExplicitGC \
  -jar server.jar nogui

三种方案怎么选?

  • 内存 ≤ 4GB → G1GC 基础方案,简单够用

  • 内存 4~8GB → Aikar Flags,精细调优,G1GC的最佳实践

  • 内存 > 8GB → ZGC,大堆内存的低延迟终极方案

三个通用注意事项

  1. -Xms-Xmx必须设成相同的值,否则JVM运行时动态调整堆大小会触发额外的GC停顿。

  2. 不要给MC分配全部物理内存,至少保留1~2GB给操作系统和系统缓存。

  3. 不是内存越大越好——堆太大(>12GB)时G1GC的标记周期变长,反而可能加剧卡顿,此时应优先考虑换ZGC。

六、服务端配置优化:每个参数都在影响TPS

服务端的 server.properties 和 Paper 独有的 paper-world-defaults.yml 中有大量参数可以调整。以下是收益最明显的几项:

6.1 server.properties 核心调整

# === 视距(view-distance):影响最大的参数 ===
# 表示服务器向每个玩家发送多少区块的地图数据
# 每降低1级,服务器需要处理的区块数量减少约30%
view-distance=8
# 推荐:小型服8,中型服6,大型服4-5

# === 模拟距离(simulation-distance)===
# 服务器实际计算实体AI、作物生长的范围
simulation-distance=6
# 推荐:设为view-distance的60%-75%

# === 最大玩家数 ===
# 不要设得远超实际需求,每多一个槽位都占资源
max-players=20

# === 开启网络压缩 ===
# 256是推荐值,减少带宽占用但轻微增加CPU负载
network-compression-threshold=256

# === 关闭在线模式会导致非正版玩家也能连接 ===
# 小范围朋友服可以关,社区服建议开启
online-mode=false

6.2 Paper独有优化(需编辑 config/paper-world-defaults.yml

entities:
  # === 实体激活范围 ===
  # 控制怪物、动物在距离玩家多远时开始AI计算
  # 降低这些值能显著减少CPU占用——实体AI是MC服务器最吃CPU的部分之一
  spawning:
    despawn-ranges:
      soft: 28     # 软清除距离(实体超过此距离会被随机清除)
      hard: 64     # 硬清除距离(实体超过此距离会被立即清除)
  tracking-range:
    monsters: 48   # 怪物追踪范围
    animals: 48    # 动物追踪范围
    misc: 32       # 其他实体(矿车等)

# === 区块系统 ===
chunk-system:
  # 自动保存间隔(单位:tick,20 tick = 1秒)
  auto-save-interval: 6000
  # 默认1200 tick(1分钟),大型服务器可拉长到6000 tick(5分钟)减少I/O抖动
  # 代价:万一服务器崩溃,最多丢失5分钟的进度

# === 非阻塞IO ===
# 开启后世界保存不再阻塞主线程,极大改善定时保存时的卡顿
use-async-chunks: true

# === 掉落物品合并 ===
# 每秒钟合并相邻的同类掉落物为一个堆叠,减少地面上散落的独立实体数量
alt-item-despawn-rate:
  enabled: true
  items:
    cobblestone: 300
    dirt: 300
    # 圆石和泥土等常见掉落物加速清理

6.3 大型服务器进阶优化(30人以上)

面向有经验的服务器管理员,以下优化方案需要仔细评估:

优化项 措施 收益
世界预生成 使用Chunky插件预先加载并生成地图区块 消除玩家跑图时的实时地形生成卡顿
视距再降低 大型服务器将view-distance设为4-5 极大减少区块加载压力
定时重启 通过crontab每日凌晨自动重启服务端 清除内存碎片,防止长时间运行后的性能退化
实体数量控制 设置每个区块/玩家的实体生成上限 防止刷怪塔/养殖场导致实体爆炸拖垮TPS
分离存档 将世界存档放在独立的NVMe SSD上 减少主系统盘的I/O竞争

七、进阶部署方案

7.1 Docker部署(推荐新手、快速迁移)

Docker将MC服务端及其运行环境打包在一个独立容器中,自动处理Java版本适配,备份/迁移只需复制一个目录即可:

# 拉取PaperMC的官方Docker镜像
# -e EULA=true:自动同意EULA
# -e MEMORY=4G:分配给MC的内存
# -v:挂载宿主机目录到容器,实现数据持久化
docker run -d \
  --name mc-server \
  -e EULA=true \
  -e TYPE=PAPER \
  -e MEMORY=4G \
  -e ONLINE_MODE=false \
  -p 25565:25565 \
  -v ~/mc-data:/data \
  itzg/minecraft-server:latest

# 查看运行日志
docker logs -f mc-server

# 对容器内服务端执行命令(如op某玩家)
docker exec mc-server rcon-cli op 玩家名

7.2 systemd服务配置(推荐生产环境)

screen的方式在你退出SSH后虽然服务端仍在运行,但机器重启后不会自动恢复。systemd是Linux的服务管理器,可以让MC服务端在机器重启后自动拉起:

# 使用root用户创建systemd服务单元文件
# /etc/systemd/system/ 是systemd默认的服务定义目录
sudo nano /etc/systemd/system/minecraft.service

粘贴以下内容(修改路径和用户名):

[Unit]
Description=Minecraft Server (Paper)
# 在网络就绪之后才启动
After=network.target

[Service]
# 指定运行用户
User=mcserver
# 工作目录(替换为你的MC服务器实际路径)
WorkingDirectory=/home/mcserver/mc-server
# ExecStart:服务启动命令
# ExecStop:服务停止时执行的命令(发送stop指令让MC安全保存世界后退出)
ExecStart=/usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -jar server.jar nogui
ExecStop=/bin/bash -c 'echo "stop" > /run/minecraft.stdin'
Restart=on-failure
# 崩溃后等待10秒再尝试重启(防止连续崩溃循环)
RestartSec=10

[Install]
# 多用户模式下自动启动
WantedBy=multi-user.target

启用服务:

# 重载systemd配置(识别新创建的minecraft.service)
sudo systemctl daemon-reload
# 设置开机自启
sudo systemctl enable minecraft
# 启动服务
sudo systemctl start minecraft
# 查看状态
sudo systemctl status minecraft

7.3 多服务器/群组架构(50人以上)

当你需要同时运行多个子服(如登录服、生存服、小游戏服),或者想把不同玩法的玩家分流时,就需要引入代理端架构——使用BungeeCord或Velocity将所有子服串联起来,玩家连入代理端后选择进入不同的子服:

             玩家 → 代理端(Velocity)
                       ├── 登录服(1核2G)   ─ 负责玩家注册和登录
                       ├── 生存服(4核8G)   ─ 主生存世界
                       ├── 资源服(2核4G)   ─ 资源世界(定期刷新)
                       └── 小游戏服(2核4G)─ 跑酷/竞技场等

这种架构的优势:

  • 故障隔离:一个子服崩溃不影响其他子服

  • 独立优化:不同游戏模式可以针对性地调整配置

  • 动态扩展:活动期间临时加一个子服,结束后关闭即可

  • 插件级反作弊:跨服行为监控更全面

八、服务器安全与日常维护

8.1 安全基线五步法

  1. 禁用root用户SSH登录

    # 编辑SSH服务配置文件
    sudo vi /etc/ssh/sshd_config
    # 修改或添加:PermitRootLogin no
    # 重启SSH服务使配置生效
    sudo systemctl restart sshd

    之后只使用普通用户(如前面创建的mcserver)登录,需要root权限时用sudo

  2. SSH密钥登录:禁用密码登录,只用密钥对认证,彻底杜绝暴力破解。

  3. IP白名单:在安全组中限制SSH端口(22)的来源IP为固定办公IP。

  4. 非root运行:MC服务端必须使用独立用户(如mcserver)运行,切勿用root运行。一旦MC服务端被远程代码执行漏洞攻击,攻击者将获得root权限,可以完全控制你的服务器。

  5. 关闭在线模式时加强验证:如果你设了online-mode=false允许离线玩家进入,务必安装AuthMe或类似的登录插件,防止陌生人以任意用户名登入。

8.2 开服必备插件清单

基于Paper/Spigot生态的社区共识:

插件 用途 必装程度
CoreProtect 方块操作日志+回滚,查熊孩子必备 ⭐⭐⭐⭐⭐
LuckPerms 权限管理系统,轻量且功能强大 ⭐⭐⭐⭐⭐
EssentialsX 基础功能合集(/home /spawn /warp /tpa等) ⭐⭐⭐⭐
WorldEdit 地图编辑,建筑服必备 ⭐⭐⭐⭐
AuthMe 离线模式下的登录验证 ⭐⭐⭐⭐
Chunky 世界预生成,消除跑图卡顿 ⭐⭐⭐⭐
CheatReaper 轻量级反作弊,适合中小型服务器 ⭐⭐⭐
SMPGuard 集性能优化+安全+反作弊于一体 ⭐⭐⭐

新手误区提示:很多新手在小型服务器上一次性安装几十个插件,导致服务端启动变慢、内存飙升、插件之间冲突导致莫名崩溃。建议初期只保留CoreProtect和LuckPerms两个核心插件,再根据玩家反馈和需求逐步添加。

8.3 日常维护清单

维护项 频率 说明
世界备份 每天 使用CoreProtect备份或直接压缩world目录
检查TPS 每次上线 游戏内/tps命令,低于18需排查
清理掉落物 每2-3天 地面上的掉落物占大量实体计算,可手动或插件自动清理
服务器重启 每1-3天 定时重启有助于清除内存碎片,释放Java堆中长期未回收的对象
更新服务端 每次MC版本更新后 Paper通常在官方更新后1-2天内发布对应版本
检查日志 每周 查看logs/latest.log关注报错和异常信息
安全审计 每月 检查登录日志,排查可疑连接和未授权访问

九、总结:从2人基友服到50人社区服的完整路径

回顾整个开服流程,核心决策只有四个:

  1. 选服务端:纯生存/插件 → Paper;Mod整合包 → Forge;轻量优化Mod → Fabric。

  2. 定配置:2~5人4GB起步,10~20人8GB,30人以上16GB+,CPU主频≥3.0GHz优先。

  3. 配JVM:≤4GB用G1GC基础方案,4~8GB用Aikar Flags,>8GB用ZGC。

  4. 做安全:非root运行、关闭root SSH、安全组IP白名单、安装CoreProtect。

特别提示:本文仅作技术分享,请勿在未取得【网络文化经营许可证】等合法资质的情况下,私设面向公众的收费商业游戏服务器,否则将面临行政处罚等法律风险。请务必遵守【网络出版服务管理规定】及【网络游戏管理暂行办法】等法律法规。

相关阅读


本文由塔基信息(www.tajiidc.com)技术团队撰写并首发于CSDN,内容基于PaperMC社区文档及Aikar's Flags官方指南编写,涵盖服务端核心选型、配置选型、部署实战、JVM调优及日常运维等全流程。我们为数据中心提供MPO光纤跳线和光模块,支持OM4/OS2定制,小批量现货。电信增值许可证代办同步进行中。若需游戏用云服务器选型方案,可评论区或私信咨询。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐