1. 项目概述从零搭建一个稳定的《我的世界》官方服务器最近有不少朋友在后台私信问我怎么自己搭一个《我的世界》的服务器特别是想用最新的1.21.11版本和朋友联机。网上的教程要么太老要么语焉不详照着做总会在奇奇怪怪的地方卡住。作为一个从Java版Beta 1.8就开始折腾服务器的老玩家今天我就把自己这些年开服、维护、优化的经验结合最新的1.21.11官方服务端整理成一份保姆级的教程。这份教程的目标很明确让你即使没有任何服务器运维经验也能在自己的电脑或者租用的云服务器上成功搭建一个稳定、流畅、可自定义的《我的世界》服务器并且理解每一步操作背后的逻辑以后出了问题自己也能排查。自己开服的好处太多了。首先你和朋友们的游戏世界完全由你们掌控想装什么模组、玩什么玩法、定什么规则都不受第三方平台限制。其次数据完全私有存档想备份就备份想迁移就迁移安全感十足。最后这也是一个绝佳的学习机会你能接触到基础的网络、系统、Java环境配置这些技能在数字时代非常实用。接下来我会从最基础的环境准备讲起一直讲到服务器上线后的日常维护和性能调优确保你不仅能“开起来”更能“开得稳”。2. 核心思路与方案选型为什么选择官方服务端在开始动手之前我们先要搞清楚几个核心问题用什么服务端在哪里运行需要什么样的硬件这些选择直接决定了后续操作的复杂度和服务器的最终体验。2.1 官方服务端 vs. 第三方核心对于1.21.11版本我们首选Mojang官方提供的minecraft_server.1.21.11.jar。这是最纯净、最稳定、与客户端兼容性最好的选择。第三方服务端核心如Paper、Spigot、Fabric服务端模组虽然能提供更好的性能和丰富的插件生态但它们修改了游戏的原生逻辑可能会引入一些不稳定性或与未来版本更新的兼容性问题。对于初次开服、追求原版纯净体验、或者只是想和小范围朋友联机的玩家来说官方服务端是入门和稳定的不二之选。它的配置逻辑清晰出了问题也更容易在官方Wiki或社区找到标准答案。2.2 运行环境选择本地电脑 vs. 云服务器本地开服适合临时和小范围的联机比如2-4个好友。优点是零成本、延迟极低、操作直观。你只需要一台性能尚可的电脑建议CPU不低于4核内存8GB以上并为服务器单独分配2-4GB内存并确保网络上传速度足够每个玩家大约需要100Kbps的上传带宽10人联机至少需要1Mbps稳定上传。但缺点也很明显你的电脑必须一直开着公网IP问题需要解决后面会详细讲而且会占用本地资源影响你同时做其他事情。云服务器开服是更专业和持久的选择。它提供了公网IP、7x24小时稳定运行、以及通常比家庭宽带更优质的上行带宽。国内外的云服务商如阿里云、腾讯云、AWS Lightsail等都有提供轻量应用服务器选择一款配置为2核4GB或以上的Linux服务器CentOS 7/8或Ubuntu 20.04/22.04 LTS就完全足够支持10-20人同时在线。云服务器的初始配置稍复杂但一劳永逸特别适合想要长期运营一个小型社区服的朋友。本教程会同时涵盖这两种方式的详细步骤。2.3 硬件与网络需求估算很多新手开服卡顿问题往往出在资源分配不足上。这里给一个简单的估算公式CPU核心频率比核心数量更重要。Minecraft服务器是单线程性能敏感型应用。一个高主频的CPU如3.5GHz比多核低频CPU体验更好。内存RAM这是最重要的参数。分配太少会频繁垃圾回收导致卡顿分配太多反而会降低Java垃圾回收效率。对于原版1.21.11服务端一个经验法则是基础占用约1GB每增加10名在线玩家增加500MB-1GB。因此5人服建议分配2-3GB10人服建议3-4GB20人服建议4-6GB。我们会在启动脚本中精确控制。硬盘SSD固态硬盘是必须的。机械硬盘的读写速度会严重拖慢区块加载和存档保存速度导致玩家移动时“卡区块”。至少需要预留10GB空间给服务器文件、世界存档和日志。网络带宽计算下行和上行。下行带宽需求很低主要上行。公式所需上行带宽 (Mbps) ≈ 在线玩家数 * 0.1 Mbps。10人联机有1Mbps的稳定上行带宽就足够了但为了应对峰值建议有2-3Mbps的余量。注意家庭宽带通常上行带宽远小于下行例如100M宽带可能上行只有20M。开服前务必用测速工具测试你的实际上行速度。云服务器的带宽通常是上下行对等的。3. 详细开服步骤全解析我们将开服过程拆解为清晰的四个阶段环境准备、服务端获取与配置、网络打通、启动与测试。无论你选择本地还是云服务器逻辑都是相通的。3.1 第一阶段基础运行环境搭建Minecraft官方服务端是一个Java应用程序因此第一步就是安装合适版本的Java。1. 安装Java 17或更高版本从1.18版本开始Minecraft服务端要求Java 17或以上。不要安装Java 8虽然旧版教程可能推荐它。前往Oracle官网或AdoptiumEclipse Temurin网站下载JDK 17的安装包。Windows系统下载.msi安装包双击安装记住安装路径例如C:\Program Files\Java\jdk-17。Linux系统云服务器通过包管理器安装更简单。以Ubuntu为例打开终端SSH连接后执行以下命令sudo apt update sudo apt install openjdk-17-jdk-headless -y安装后通过java -version验证应显示“openjdk 17.x.x”。2. 创建专属服务器目录不要在桌面或下载文件夹直接运行服务器创建一个独立的文件夹例如D:\MC_Server_1.21.11或Linux下的~/mc_server。所有相关文件都放在这里便于管理。3. 获取官方服务端文件前往Minecraft官网的 下载服务器页面 找到对应1.21.11版本的minecraft_server.1.21.11.jar下载并放入你刚创建的服务器目录。3.2 第二阶段服务端配置与启动脚本编写直接双击Jar文件是开不了服的我们需要编写启动脚本和配置文件。1. 创建启动脚本start.bat 或 start.sh启动脚本的核心作用是告诉Java如何运行服务端最关键的是分配内存。Windows (start.bat)在服务器目录新建文本文档重命名为start.bat右键编辑输入以下内容echo off title Minecraft 1.21.11 Server java -Xms3G -Xmx3G -jar minecraft_server.1.21.11.jar nogui pauseLinux (start.sh)在终端中于服务器目录执行nano start.sh输入以下内容#!/bin/bash java -Xms3G -Xmx3G -jar minecraft_server.1.21.11.jar nogui然后赋予执行权限chmod x start.sh启动参数详解-Xms3G初始堆内存大小JVM启动时分配。这里设为3GB。-Xmx3G最大堆内存大小JVM能使用的上限。这里也设为3GB。通常将Xms和Xmx设为相同值可以避免运行时堆内存动态调整带来的性能波动。-jar minecraft_server.1.21.11.jar指定要运行的Jar包。nogui以无图形界面模式启动节省资源。对于服务器这是必须的。pause(Windows批处理)让窗口在服务器关闭后暂停方便查看错误信息。2. 首次运行生成配置文件双击start.bat或执行./start.sh。第一次运行会失败并提示需要同意EULA最终用户许可协议。同时它会生成一些必要的文件和文件夹如eula.txt、server.properties。3. 编辑关键配置文件同意EULA用记事本或nano打开eula.txt将eulafalse改为eulatrue。这表示你同意Mojang的服务器运行协议。配置服务器属性打开server.properties这是服务器的核心配置文件。我们修改几个关键项# 服务器IP默认留空即可让服务器绑定所有网络接口 server-ip # 服务器端口默认25565。如果此端口被占用或想在单机开多个服可以修改。 server-port25565 # 最大玩家数 max-players20 # 服务器 MOTD (描述)会显示在玩家服务器列表里。支持颜色代码§符号 motdMy First 1.21.11 Server # 是否开启正版验证。true表示只有正版账号能进入false则离线账号也可进入局域网联机常设为false。 online-modetrue # 视距控制玩家能看到的区块距离。越大越吃性能建议设为6-10。 view-distance10 # 是否生成怪物 spawn-monsterstrue # 是否生成动物 spawn-animalstrue # 游戏模式survival生存 creative创造 adventure冒险 gamemodesurvival # 是否开启命令方块 enable-command-blockfalse # 网络压缩阈值。降低此值如256可以减小网络包体积提升高延迟玩家的体验但会增加CPU负担。 network-compression-threshold256其他选项保持默认即可。保存文件。3.3 第三阶段打通网络连接最关键的一步这是让朋友能从外部连接到你服务器的核心步骤90%的连接问题都出在这里。情况A在本地电脑开服让朋友通过互联网连接家庭网络中的设备通常没有独立的公网IP且处于路由器防火墙之后。你需要进行“端口转发”。确定本地服务器的内网IP在Windows命令提示符输入ipconfig找到“IPv4 地址”如192.168.1.105。在Linux终端输入ip addr show或ifconfig查找。登录路由器管理后台浏览器输入路由器网关地址通常是192.168.1.1或192.168.0.1输入管理员账号密码。设置端口转发Port Forwarding在路由器设置中找到“端口转发”、“虚拟服务器”或“NAT”相关选项。新建一条规则。服务名称随意如“Minecraft”。内部IP地址填入你刚才查到的本地IP如192.168.1.105。内部端口25565。外部端口25565。协议选择“TCP”或“TCP/UDP”。获取你的公网IP在百度搜索“IP”会显示你的公网IP地址如123.123.123.123。注意很多家庭宽带是动态公网IP重启光猫后可能会变化。可以考虑使用DDNS动态域名解析服务来解决。朋友连接让你的朋友在Minecraft客户端“多人游戏”中直接添加服务器地址输入你的公网IP:25565例如123.123.123.123:25565。情况B在云服务器开服云服务器自带公网IP操作更简单但需要配置系统防火墙。获取云服务器的公网IP在云服务商控制台查看。配置服务器安全组/防火墙这是云服务器的虚拟防火墙必须放行端口。登录云服务商控制台找到你的服务器实例进入“安全组”或“防火墙”配置。添加入站规则协议TCP端口范围25565源地址0.0.0.0/0允许所有IP访问或你朋友家的IP段以增加安全。配置系统自身防火墙以Ubuntu为例sudo ufw allow 25565/tcp sudo ufw reload朋友连接地址为云服务器公网IP:25565。重要提示无论哪种方式在让朋友连接前请务必先在你自己本地服务器本机或同一内网的另一台电脑用localhost或内网IP测试连接成功确保服务器本身运行无误再解决外部网络问题。3.4 第四阶段启动、测试与基础管理1. 正式启动服务器再次运行start.bat或./start.sh。这次应该能看到服务器控制台开始加载生成世界最后出现类似“Done (XX.XXXs)! For help, type “help””的提示表示服务器启动成功。2. 基础控制台命令服务器运行后你可以在控制台输入命令管理服务器help查看帮助。list列出当前在线玩家。op 玩家ID给予玩家管理员权限。ban 玩家ID封禁玩家。save-all手动立即保存世界。stop安全关闭服务器务必用此命令关机直接关闭窗口可能导致存档损坏。3. 首次进入与设置用Minecraft客户端版本必须是1.21.11添加服务器地址本地测试用localhost外部连接用你的公网IP进入游戏。如果你是OP管理员可以在游戏内按T打开聊天栏输入命令如/gamemode creative 玩家名切换模式/time set day设置时间为白天。4. 性能优化与高级配置指南服务器跑起来只是第一步要让它运行得流畅稳定还需要进行一些优化。4.1 JVM参数调优我们之前用的-Xms3G -Xmx3G是最基础的参数。对于追求更高性能的服务器可以优化启动脚本。以下是一个更专业的Linux启动脚本示例start_optimized.sh#!/bin/bash cd /home/user/mc_server java \ -Xms4G -Xmx4G \ # 堆内存 -XX:UseG1GC \ # 使用G1垃圾回收器适合大内存、低延迟场景 -XX:ParallelRefProcEnabled \ -XX:MaxGCPauseMillis200 \ # 目标最大GC停顿时间200毫秒 -XX:UnlockExperimentalVMOptions \ -XX:DisableExplicitGC \ -XX:AlwaysPreTouch \ # 启动时预分配内存减少运行时延迟 -XX:G1HeapRegionSize8M \ -XX:G1NewSizePercent20 \ -XX:G1ReservePercent20 \ -XX:G1HeapWastePercent5 \ -XX:G1MixedGCCountTarget4 \ -XX:InitiatingHeapOccupancyPercent15 \ -XX:G1MixedGCLiveThresholdPercent90 \ -XX:G1RSetUpdatingPauseTimePercent5 \ -XX:SurvivorRatio32 \ -XX:PerfDisableSharedMem \ -XX:MaxTenuringThreshold1 \ -Dusing.aikars.flagstrue \ -Daikars.new.flagstrue \ -jar minecraft_server.1.21.11.jar nogui这些参数特别是Aikar‘s Flags经过社区大量测试能显著改善GC垃圾回收行为减少游戏内的“TPS骤降”和卡顿。Windows系统也可以将这些参数添加到start.bat的java命令后面。4.2 服务器属性深度优化回头再看server.properties有几个对性能影响巨大的参数view-distance这是性能头号杀手。视距每增加2服务器需要处理的区块数量呈指数级增长。对于10人左右的服设为8-10是平衡点。超过12将对硬件提出很高要求。simulation-distance模拟距离控制哪些区块内的生物、红石等会进行更新。通常设置得比view-distance小或相等如8可以有效减轻服务器运算负担。max-tick-time单个tick游戏刻允许的最大执行时间毫秒。默认600001分钟如果某个tick卡住超过这个时间看门狗线程会强制关闭服务器。可以适当调低如30000以便更快发现严重卡顿问题。max-world-size限制世界边界可以防止世界文件无限膨胀默认值29999984通常不用改。4.3 使用Screen或Tmux保持服务器后台运行Linux在Linux云服务器上如果你直接SSH运行服务器关闭SSH窗口进程就会终止。我们需要使用screen或tmux来创建持久化的会话。# 安装screen sudo apt install screen -y # 创建一个名为mc的screen会话并进入 screen -S mc # 在screen会话中启动服务器 cd ~/mc_server ./start_optimized.sh # 然后按下 CtrlA再按 D 键将会话分离detach服务器在后台继续运行。 # 要重新连接会话查看控制台 screen -r mc # 如果忘记了会话名可以用 screen -ls 列出所有会话。这样即使你断开SSH连接服务器也会持续运行。5. 日常维护、备份与故障排查一个合格的服主不仅要会开服更要会维护。5.1 自动化备份脚本世界存档是服务器最宝贵的资产。必须定期备份。这里提供一个简单的Linux备份脚本backup.sh#!/bin/bash SERVER_DIR/home/user/mc_server BACKUP_DIR/home/user/mc_backups DATE$(date %Y%m%d_%H%M%S) cd $SERVER_DIR # 在备份前通知服务器并强制保存 screen -S mc -X stuff say 服务器备份开始可能会略有卡顿。$(printf \r) screen -S mc -X stuff save-all$(printf \r) sleep 5 # 创建备份压缩包包含世界、玩家数据等关键文件夹 tar -czf $BACKUP_DIR/world_backup_$DATE.tar.gz world/ world_nether/ world_the_end/ playerdata/ stats/ advancements/ # 删除超过7天的旧备份 find $BACKUP_DIR -name world_backup_*.tar.gz -mtime 7 -delete screen -S mc -X stuff say 备份完成。$(printf \r)然后使用crontab -e设置定时任务例如每天凌晨4点执行备份0 4 * * * /bin/bash /home/user/mc_server/backup.sh5.2 常见问题与解决方案速查表问题现象可能原因解决方案服务器启动失败提示端口被占用25565端口已被其他程序如另一个MC服务器使用。1. 修改server.properties中的server-port为其他端口如25566。2. 查找占用端口的进程并结束它netstat -ano | findstr :25565。玩家无法连接提示“连接超时”1. 服务器防火墙/安全组未放行端口。2. 本地开服未做端口转发或转发错误。3. 服务器未成功启动。1. 检查云服务器安全组和系统防火墙规则。2. 检查路由器端口转发设置确保内网IP和端口正确。3. 在服务器本机用localhost连接测试先确保服务本身正常。玩家连接被拒绝提示“无效会话”server.properties中online-modetrue但玩家使用了离线模式或非正版启动器。1. 确保所有玩家使用正版账号登录官方启动器。2. 若为内部测试或特定情况可将online-mode改为false注意这会降低安全性任何知道你IP的人都能用任意ID进入。游戏内频繁卡顿TPS过低TPS每秒刻数低于20。原因可能是1. 内存分配不足或过多。2. 视距(view-distance)设置过高。3. 世界内存在大量高频红石、实体生物、掉落物堆积。1. 在控制台输入tps命令查看TPS。如果持续低于20需要优化。2. 适当降低view-distance和simulation-distance。3. 使用/kill e[typeitem]清理掉落物检查并拆除高频红石电路。4. 考虑升级硬件或使用性能更好的服务端核心如Paper。服务器运行一段时间后内存占用很高逐渐变卡Java垃圾回收GC不充分内存泄漏虽不常见。1. 使用优化后的JVM参数如前文Aikar‘s Flags。2. 定期重启服务器如每天一次这是最直接有效的方法。可以通过计划任务在凌晨低峰期执行重启脚本。世界存档损坏服务器非正常关闭断电、强制结束进程。1.立即停止对原存档的写入2. 尝试使用备份恢复。3. 如果没有备份可以尝试使用Minecraft自带的level.dat旧备份将world/文件夹中的level.dat_old重命名为level.dat替换损坏的文件。5.3 监控与日志查看实时监控在服务器控制台可以输入debug start开始性能分析一段时间后输入debug stop会在服务器目录生成一个性能分析文件可以用专业工具查看。日志文件服务器目录下的logs/latest.log记录了所有运行信息。遇到玩家报错或崩溃首先查看这个文件。特别是崩溃时生成的hs_err_pid*.log文件对于诊断JVM层面的错误至关重要。内存监控可以安装简单的监控工具如Linux下的htop观察Java进程的内存和CPU占用是否正常。开服是一个从搭建到持续优化的过程。按照这份教程你应该已经成功启动了自己的1.21.11服务器。记住稳定性源于细节合理的硬件资源、优化的JVM参数、定期的备份和重启习惯。遇到问题不要慌多查看日志善用搜索引擎和社区如MCBBS、Reddit的r/admincraft。最开始的搭建阶段可能会遇到一些挫折但当你和朋友在自己搭建的世界里畅游时那种成就感是完全不同的。如果后续想增加模组、插件或者升级到更高性能的服务端核心那又是另一个有趣的故事了。