最近在和朋友联机玩《我的世界》时,发现很多玩家都渴望找到一个稳定、热闹、玩法纯粹的生存服务器。自己搭建服务器虽然自由,但面临网络、硬件、维护等一系列门槛。本文将为你提供一份从零开始的《我的世界》Java版服务器搭建与优化全攻略,以当前热门的1.20.1版本为例,手把手教你如何在Linux系统(以Ubuntu 20.04为例)上,使用云服务器搭建一个高性能、可长期运行的“我的世界”服务器。无论你是想创建一个小型私人社区,还是运营一个公开的多人世界,这篇教程都能为你提供完整的解决方案。
1. 核心概念:我的世界服务器是什么?
在深入实操之前,我们有必要厘清几个核心概念,这能帮助你更好地理解后续的配置和优化。
我的世界服务器本质上是一个运行在后台的Java应用程序。它负责管理游戏世界的数据(区块、实体、玩家状态等),处理所有玩家的连接请求,执行游戏逻辑(如红石、生物AI),并确保所有在线玩家看到的世界状态是同步的。当你进入一个多人服务器时,你的客户端不再负责运算世界,而是作为一个“终端”,接收服务器发来的数据并发送你的操作指令。
服务器类型主要分为两种:
- 原版 (Vanilla) 服务器:由Mojang官方提供的
minecraft_server.jar运行。它完全遵循游戏原版特性,没有任何修改,适合追求纯净生存体验的玩家。 - 插件 (Plugin) / 模组 (Mod) 服务器:基于原版服务器核心进行功能扩展。
- 插件服务器:通常使用Bukkit/Spigot/Paper这类服务端核心。插件通过API接口修改或增加服务器功能,如领地保护、经济系统、传送等,不改变游戏本身的玩法和内容,客户端无需安装任何额外文件。
- 模组服务器:使用Forge或Fabric等服务端核心。模组可以深度修改游戏内容,添加新的方块、物品、生物和机制。要求客户端也必须安装完全相同的模组才能进入。
本文将以搭建原版服务器和Paper服务端(高性能插件服务器)为主线,因为这是最通用和稳定的起点。理解了原版,再迁移到插件或模组服务端就会非常容易。
2. 环境准备:服务器与工具选择
“工欲善其事,必先利其器”。搭建一个稳定的服务器,环境选择至关重要。
2.1 服务器硬件与网络要求
对于《我的世界》服务器,性能瓶颈通常在于单核CPU性能和内存,其次是网络带宽和硬盘I/O。
- CPU:推荐使用主频较高的CPU。Java版MC服务器是单线程重度应用,高主频比多核心更重要。云服务器选择时,可以关注Intel Xeon E5系列或AMD EPYC系列。
- 内存 (RAM):这是最重要的资源。建议分配:
- 小型私人服(2-5人):2GB - 4GB
- 中小型社区服(10-20人):4GB - 8GB
- 大型公开服(20人以上):8GB以上,并根据插件/模组数量增加。
- 硬盘:推荐使用SSD。世界文件读写频繁,SSD能极大减少区块加载和保存导致的卡顿。至少预留10-20GB空间。
- 网络:上行带宽至关重要。每个玩家大约需要100-500Kbps的稳定带宽。对于10人同时在线的服务器,建议有5Mbps以上的公网上行带宽。使用云服务器可以完美解决家庭宽带无公网IP和上行带宽不足的问题。
2.2 云服务器选择与配置
对于绝大多数玩家,购买一台云服务器是最佳选择。它省去了维护物理硬件、解决网络问题的麻烦。
- 选择服务商:国内主流的有阿里云、腾讯云、华为云等。它们经常有新人优惠活动,可以很低成本体验。
- 选择地域:选择离你和你的朋友主要活动区域最近的机房,以降低网络延迟。
- 选择配置:根据上文建议选择。对于新手入门,可以选择“轻量应用服务器”,它通常包含了流量包,配置简单。例如:2核CPU、4GB内存、60GB SSD硬盘、5Mbps带宽的配置,足以支撑一个小型社区服。
- 选择系统镜像:强烈推荐选择 Ubuntu 20.04 LTS 或 22.04 LTS。LTS代表长期支持版,稳定且社区资源丰富。本文将以Ubuntu 20.04为例。
2.3 本地工具准备
你需要以下工具来连接和管理你的云服务器:
- SSH客户端:用于远程连接Linux服务器。Windows系统推荐使用PuTTY或Windows Terminal(内置OpenSSH)。macOS和Linux系统可直接使用终端(Terminal)。
- SFTP/FTP客户端:用于在本地电脑和服务器之间传输文件(如世界存档、插件)。推荐FileZilla或WinSCP。
- 文本编辑器:用于编辑服务器配置文件。推荐Notepad++、VS Code或Nano(服务器内命令行编辑器)。
3. 服务器系统初始化与Java环境搭建
购买并启动云服务器后,你会获得一个公网IP地址、用户名(通常是root或ubuntu)和密码或密钥。
3.1 首次登录与系统更新
使用SSH客户端连接你的服务器。
# 在本地终端执行,将 your-server-ip 替换为你的公网IP ssh root@your-server-ip # 或如果是 ubuntu 用户 ssh ubuntu@your-server-ip输入密码或选择密钥文件登录。
登录后,首先更新系统软件包列表并升级现有软件,这是一个好习惯。
sudo apt update && sudo apt upgrade -y3.2 安装Java运行环境
《我的世界》服务器需要Java运行环境。推荐安装OpenJDK,这是一个开源实现。
首先,检查是否已安装Java:
java -version如果未安装或版本过低,则进行安装。Minecraft 1.17+版本需要Java 16或更高版本,推荐安装Java 17(LTS版本)。
# 安装 OpenJDK 17 sudo apt install openjdk-17-jre-headless -y # -headless 表示无图形界面版本,更适合服务器环境 # 再次验证安装 java -version你应该能看到类似openjdk version "17.0.10" 2024-01-16的输出。
3.3 创建专用用户与目录
为了安全,不建议一直使用root用户运行游戏服务器。我们创建一个专用用户。
# 创建一个名为 mcserver 的用户,并为其创建家目录 sudo adduser --system --home /opt/minecraft mcserver # 切换到该用户的家目录 cd /opt/minecraft4. 实战搭建:部署原版服务器
现在,我们开始部署最基础的原版服务器。
4.1 下载官方服务器核心
前往 Minecraft官网服务器下载页面 获取最新版服务器jar文件。或者直接使用wget命令下载指定版本。
# 确保你在 /opt/minecraft 目录下 # 下载 Minecraft 1.20.1 原版服务器核心 sudo wget https://piston-data.mojang.com/v1/objects/84194a2f286ef7c14ed7ce0090dba59902951553/server.jar # 注意:此链接可能会随版本更新失效,请以官网为准。4.2 首次运行与同意EULA
首次运行服务器会生成一些必要文件,但会因未同意EULA而退出。
# 使用 mcserver 用户身份运行,并分配2GB内存 sudo -u mcserver java -Xms2G -Xmx2G -jar server.jar nogui-Xms2G:初始堆内存为2GB。-Xmx2G:最大堆内存为2GB。请根据你的服务器总内存调整,通常设置为总内存的70-80%。-nogui:不启动图形界面,纯命令行运行。
运行后,你会看到一些日志输出,然后服务器停止,并生成了eula.txt等文件。查看并编辑它:
sudo nano eula.txt将文件中的eula=false改为eula=true,然后按Ctrl+X,再按Y,最后回车保存。
4.3 基础服务器配置
现在可以配置服务器的主要设置了。编辑server.properties文件:
sudo nano server.properties以下是一些关键配置项及其说明,你可以按需修改:
# 服务器端口,默认25565,除非冲突否则不用改 server-port=25565 # 服务器IP,默认留空(绑定所有网络接口) server-ip= # 游戏模式:survival(生存), creative(创造), adventure(冒险), spectator(旁观) gamemode=survival # 是否开启强制游戏模式(玩家无法更改) force-gamemode=false # 最大玩家数 max-players=20 # 是否生成结构(村庄、神殿等) generate-structures=true # 最大世界大小,单位区块。默认-1(无限) max-world-size=10000 # 是否生成怪物 spawn-monsters=true # 是否生成动物 spawn-animals=true # 是否生成NPC村民 spawn-npcs=true # 是否开启白名单(需要在whitelist.json中添加玩家) white-list=false # 是否开启正版验证(如果关闭,任何离线客户端都能进入) online-mode=true # 视距,单位区块。越大越吃性能,推荐6-10 view-distance=10 # 是否启用命令方块 enable-command-block=false # 服务器 MOTD(玩家在服务器列表中看到的描述) motd=A Minecraft Server Built by CSDN Tutorial保存并退出。
4.4 启动服务器与后台运行
现在,我们可以正式启动服务器了。为了让服务器在SSH断开后也能持续运行,我们需要使用一个屏幕管理工具,如screen或tmux。这里使用screen。
# 安装 screen sudo apt install screen -y # 创建一个名为 mc 的 screen 会话,并以 mcserver 用户身份进入 sudo -u mcserver screen -S mc # 此时你进入了新的 screen 会话,在此会话中启动服务器 cd /opt/minecraft java -Xms2G -Xmx2G -jar server.jar nogui服务器开始启动,你会看到加载世界、生成区块的日志。当出现Done (XX.XXXs)! For help, type "help"时,表示启动成功。
重要操作:
- 暂时脱离 screen 会话:按
Ctrl+A,然后按D。这样服务器会在后台继续运行。 - 重新连接 screen 会话:
sudo -u mcserver screen -r mc - 在服务器控制台输入命令:重新连接会话后,可以直接输入游戏内命令,如
op YourPlayerName给玩家管理员权限,或stop安全关闭服务器。
现在,你的朋友就可以在《我的世界》客户端中,通过“多人游戏”->“添加服务器”,输入你的服务器公网IP:端口(例如123.123.123.123:25565)来加入了!
5. 进阶优化:部署Paper服务端
原版服务器性能有限,尤其是红石、实体多的时候容易卡顿。Paper是Spigot的一个分支,进行了大量性能优化和Bug修复,并且完全兼容Bukkit/Spigot插件,是搭建插件服务器的首选。
5.1 下载与替换Paper核心
首先,停止原版服务器(在screen会话中输入stop)。然后下载Paper。
前往 PaperMC官网 找到对应版本(如1.20.1)的下载链接。使用wget下载。
# 回到 /opt/minecraft 目录 cd /opt/minecraft # 备份原版核心(可选) mv server.jar server.jar.vanilla.backup # 下载 Paper 1.20.1 构建版本(以构建 #100为例,请查看官网最新) sudo wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/100/downloads/paper-1.20.1-100.jar -O server.jar5.2 首次运行与配置
运行方式与原版完全相同,它会自动继承之前的world存档和server.properties配置。
sudo -u mcserver java -Xms2G -Xmx2G -jar server.jar nogui首次运行Paper会生成一些额外的配置文件,如spigot.yml、paper.yml、bukkit.yml。这些文件提供了更细致的性能调优选项。
一个重要的优化:调整paper.yml中的视距设置。
sudo nano paper.yml找到view-distances部分,可以设置不同的视距策略,降低服务器负担:
view-distances: default: 8 # 默认视距,比原版稍低 entity-tracking-distance: default: 48 players: 48 animals: 48 monsters: 48 misc: 32 other: 64保存后,需要在游戏内或控制台执行paper reload或重启服务器生效。
5.3 安装与管理插件
Paper的核心优势在于海量的插件生态。插件文件是.jar格式,需要放入plugins文件夹。
- 下载插件:从可靠的源如 SpigotMC 或 Bukkit 下载你需要的插件(如EssentialsX——基础功能,WorldEdit——创世神,WorldGuard——领地保护)。
- 上传插件:使用FileZilla等SFTP工具,连接到服务器,导航到
/opt/minecraft/plugins目录,将插件jar文件上传至此。如果plugins文件夹不存在,首次启动Paper后会生成。 - 加载插件:上传后,在服务器控制台输入
reload confirm或重启服务器(stop然后重新启动)。插件会自动加载并生成各自的配置文件夹。 - 配置插件:每个插件会在
plugins目录下生成一个同名文件夹,里面有其配置文件(通常是config.yml)。根据插件文档进行配置。
6. 服务器运维与常见问题排查
服务器搭建只是第一步,长期稳定运行需要日常维护。
6.1 自动化启动与守护进程
使用screen是手动方式,更专业的方法是配置为系统服务,实现开机自启和自动重启。
创建系统服务文件:
sudo nano /etc/systemd/system/minecraft.service写入以下内容(根据你的路径和内存调整):
[Unit] Description=Minecraft Server After=network.target [Service] Type=simple User=mcserver WorkingDirectory=/opt/minecraft ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar server.jar nogui Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target保存后,启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable minecraft.service sudo systemctl start minecraft.service现在,你可以使用sudo systemctl status minecraft.service查看状态,使用sudo systemctl stop/restart minecraft.service来管理服务器。服务器会在系统重启后自动启动。
6.2 常见问题与解决方案
| 问题现象 | 可能原因 | 排查与解决思路 |
|---|---|---|
| 客户端无法连接,显示“无法连接至服务器” | 1. 服务器未启动。 2. 防火墙/安全组未放行端口。 3. 客户端与服务器版本不一致。 | 1. 检查服务状态:sudo systemctl status minecraft。2.重点检查:云服务器控制台的安全组规则,确保入方向放行了TCP:25565端口。 3. 确认客户端与服务端都是1.20.1(或相同版本)。 |
服务器启动时报错:java.lang.UnsupportedClassVersionError | Java版本过低。 | 安装更高版本的Java,如Java 17:sudo apt install openjdk-17-jre-headless,并确保java -version输出正确。 |
| 游戏内延迟高、卡顿 | 1. 服务器性能不足(CPU/内存)。 2. 视距过高或实体过多。 3. 玩家网络到服务器网络不佳。 | 1. 使用top或htop命令查看服务器资源使用情况。2. 降低 server.properties中的view-distance(如设为8),或优化paper.yml。3. 使用 /tps命令(Paper端)查看服务器Tick速率,低于18说明服务器卡顿。考虑升级配置或安装性能优化插件(如ClearLag清理实体)。 |
| 玩家破坏/偷窃他人财物 | 未安装领地保护插件。 | 安装WorldGuard和WorldEdit插件,并学习配置区域保护。这是公开服必备的插件。 |
| 服务器后台日志刷屏,出现大量异常 | 某个插件存在错误或与其他插件冲突。 | 查看日志文件logs/latest.log,找到报错插件的名字。尝试更新该插件到最新版本,或暂时移除它。 |
| 世界文件过大,硬盘空间不足 | 长期运行,探索区域过大。 | 1. 定期使用//chunk命令(WorldEdit)或安装Chunky插件预生成世界边界内的区块,减少运行时生成卡顿。2. 安装ClearLag等插件定期清理掉落物和怪物。 3. 考虑使用多世界插件,将不同玩法隔离开。 |
6.3 备份与恢复
定期备份是运维的生命线。可以编写一个简单的Shell脚本,并配置Cron定时任务。
创建备份脚本:
sudo nano /opt/minecraft/backup.sh写入以下内容:
#!/bin/bash BACKUP_DIR="/opt/minecraft/backups" SERVER_DIR="/opt/minecraft" DATE=$(date +%Y%m%d-%H%M%S) # 发送保存命令到服务器控制台(如果通过Rcon或tmux) # 这里以通过 systemd 服务管理为例,我们先停止服务进行冷备份(适合小型服) # 对于大型服,应研究支持热备份的插件如 BackupOnSave sudo systemctl stop minecraft.service # 创建备份目录 mkdir -p $BACKUP_DIR # 打包世界、插件配置等重要文件 tar -czf $BACKUP_DIR/backup-$DATE.tar.gz -C $SERVER_DIR world world_nether world_the_end plugins server.properties sudo systemctl start minecraft.service # 删除7天前的备份 find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete给脚本添加执行权限并设置定时任务(每天凌晨3点备份):
sudo chmod +x /opt/minecraft/backup.sh sudo crontab -e # 在打开的编辑器中添加一行: 0 3 * * * /opt/minecraft/backup.sh7. 最佳实践与高级建议
要让你的服务器从“能用”变得“好用、稳定、热闹”,还需要注意以下几点:
- 权限管理是核心:不要轻易给玩家OP权限。使用LuckPerms这类现代权限管理插件,为不同组(如默认玩家、VIP、管理员)分配精细的权限节点。
- 配置读写分离:将
server.properties、spigot.yml等核心配置纳入版本管理(如Git),方便回滚和迁移。 - 监控与日志:除了查看
latest.log,可以安装Spark性能分析插件,它能生成性能报告,精准定位卡顿源头(是实体、红石还是区块加载)。 - 社区与规则:一个热闹的服务器离不开良好的社区氛围。建立清晰的服务器规则(如禁止作弊、禁止恶意破坏、聊天礼仪),并在玩家进入时通过提示告知。
- 内容与玩法:纯净生存久了容易腻。可以定期举办建筑比赛、寻宝活动,或者利用插件增加小游戏(如起床战争、空岛生存),保持服务器活力。
- 安全第一:
- 为服务器控制台设置强密码,并考虑使用RCON(远程控制)替代直接SSH执行命令。
- 定期更新Java、Paper核心和插件到稳定版本。
- 使用防火墙(如
ufw)严格限制除了游戏端口和SSH端口外的所有入站连接。
搭建和维护一个《我的世界》服务器是一个充满乐趣的技术项目,它融合了系统运维、网络知识和社区管理。从在云服务器上敲下第一条命令开始,到看到朋友们陆续加入你的世界,共同建造、探险,这个过程本身就是一种创造。希望这篇详尽的指南能帮你扫清障碍,顺利开启你的服务器管理员之旅。如果在实践中遇到具体问题,多查阅官方Wiki、插件文档和活跃的技术社区,大部分难题都能找到答案。