公司动态
从零搭建Minecraft 1.21.11官方服务器:Java环境配置、端口映射与运维指南
1. 项目概述从零搭建一个稳定的《我的世界》官方服务器最近有不少朋友在后台私信问我怎么自己搭一个《我的世界》Minecraft的官方服务器。确实无论是想和朋友联机还是想开一个小型的社区服自己动手搭建服务器都是最自由、最可控的选择。尤其是1.21.11这个版本带来了不少新内容和优化自己开服能第一时间体验到。网上的教程要么太老要么语焉不详新手照着做很容易卡在某个步骤上。今天我就以一个老服主的身份手把手带你走一遍从下载官方服务端到成功进入游戏的完整流程过程中我会穿插我踩过的坑和总结的经验目标是让你看完就能开出一个稳定、可玩的服务器。这个教程面向的是有一定电脑操作基础但可能是第一次接触服务器搭建的玩家。我们会使用Mojang官方提供的Java版服务器核心server.jar在Windows系统上进行操作。为什么选官方核心因为它最纯净、最稳定没有第三方修改适合作为学习和搭建的基础。后续如果你想加插件Bukkit/Spigot或者模组Forge/Fabric也都是在这个纯净核心上进行的。整个流程的核心就是准备环境 - 获取服务端 - 配置启动 - 端口映射 - 连接测试。听起来简单但每一步都有细节需要注意我们一步步来。2. 开服前的核心准备与环境搭建在激动地双击那个jar文件之前我们需要把“地基”打好。很多新手服务器启动失败八成问题都出在准备工作没做好。这部分工作决定了你的服务器能否顺利跑起来以及后续管理的便利性。2.1 Java运行环境的精准安装与验证《我的世界》服务器是Java程序所以Java环境是重中之重。这里有个关键点版本必须匹配。Minecraft 1.21.11官方推荐使用Java 21。你用老版本的Java比如Java 8很可能无法启动或者运行不稳定。第一步下载正确的JDK。我强烈建议从Oracle官网或AdoptiumEclipse Temurin这类开源发行版下载完整的JDKJava Development Kit而不是只装JREJava Runtime Environment。JDK包含了运行和开发所需的所有工具更为完整。去Adoptium官网选择Java 21根据你的系统Windows x64下载安装程序。安装过程中记住你的安装路径比如C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot。第二步配置系统环境变量。这是让系统在任何位置都能识别java命令的关键。右键点击“此电脑” - “属性” - “高级系统设置” - “环境变量”。在“系统变量”部分找到并选中Path变量点击“编辑”。点击“新建”将你的JDK的bin目录路径添加进去例如C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot\bin。为了更规范你还可以新建一个系统变量变量名JAVA_HOME变量值就是你的JDK安装目录不带bin例如C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot。这样一些高级工具可能会用到它。第三步验证安装。打开命令提示符CMD或 PowerShell输入java -version并回车。如果安装配置成功你会看到类似下面的输出明确显示版本是“21.x.x”java version 21.0.2 2024-01-16 LTS Java(TM) SE Runtime Environment (build 21.0.213-LTS-58) Java HotSpot(TM) 64-Bit Server VM (build 21.0.213-LTS-58, mixed mode, sharing)如果显示“不是内部或外部命令”说明环境变量没配好请返回检查路径是否正确。注意有些电脑可能预装了其他版本的Java。通过上述方法配置后系统会优先使用我们新添加的路径下的Java。验证时务必确认版本号是21。2.2 创建专属的服务器文件夹与获取核心不要在桌面或下载文件夹里直接运行服务器这会导致所有生成的文件世界、配置、日志散落一地管理起来是灾难。我们要创建一个专属文件夹。在非系统盘比如D盘或E盘新建一个文件夹名字要有辨识度例如Minecraft_Server_1.21.11。访问《我的世界》官方服务器下载页面。你需要找到1.21.11版本的server.jar文件。最稳妥的方式是通过官方启动器获取打开官方启动器进入“安装选项”新建一个1.21.11的游戏版本并启动一次这会在你的.minecraft目录下缓存对应的服务端jar文件。但更直接的方法是从Mojang的版本清单里获取直链。不过我建议新手使用一个更省事的方法首次使用官方提供的快速搭建脚本。在你刚创建的服务器文件夹里新建一个文本文档命名为start.bat批处理文件。我们将用它来启动服务器。在同一个文件夹里再新建一个文本文档命名为eula.txt。这是Mojang的最终用户许可协议必须同意才能运行服务器。3. 服务器核心配置与首次启动详解环境准备好了核心文件也放好了现在进入关键的配置和启动环节。这一步会生成服务器运行所需的所有初始文件。3.1 编辑启动脚本与同意EULA首先右键点击start.bat选择“编辑”。我们将写入启动命令。一个基础但功能齐全的启动命令如下echo off title Minecraft 1.21.11 Server java -Xmx4G -Xms2G -jar server.jar nogui pause让我解释一下每一行的作用echo off 关闭命令回显让批处理窗口看起来更干净。title ... 设置命令窗口的标题方便你识别。java -Xmx4G -Xms2G -jar server.jar nogui 这是核心启动命令。-Xmx4G 设置Java虚拟机最大可用内存为4GB。这是上限服务器不会超过这个值。-Xms2G 设置Java虚拟机初始内存为2GB。服务器启动时就分配这么多避免运行时频繁申请内存。-jar server.jar 指定要运行的Jar包。nogui 以无图形界面模式启动节省资源。服务器通常不需要那个简陋的GUI。pause 命令执行完毕后暂停这样如果服务器崩溃或启动出错窗口不会立刻关闭你能看到错误信息。这对排查问题至关重要。实操心得内存分配-Xmx和-Xms不是越大越好。对于纯原版服4-6GB对于10人左右在线绰绰有余。分配过多内存比如给8G反而可能导致Java垃圾回收GC时间变长引起游戏内卡顿。-Xms可以设置得和-Xmx一样避免内存增长带来的微卡顿但会立刻占用那么多物理内存。接下来打开eula.txt文件。你会看到里面有一行eulafalse。将其修改为eulatrue保存。这代表你同意了Mojang的服务器运行协议。3.2 首次启动与关键文件生成现在双击运行start.bat。第一次运行会做以下几件事解压server.jar中的必要库文件在文件夹内生成libraries等目录。生成默认的服务器配置文件server.properties。生成世界文件夹默认名world。因为我们是无GUI启动所有日志都会输出在命令行窗口里。首次启动可能会花费一两分钟你会看到窗口里快速滚动着“[INFO]”开头的日志。当最后出现类似“Done (XX.XXXs)! For help, type “help””的提示时说明服务器已成功启动并在等待连接。此时在命令行窗口输入stop并回车正常关闭服务器。我们接下来要配置server.properties。首次启动后你的服务器文件夹里应该多了这些文件和文件夹world/,logs/,server.properties,banned-players.json,banned-ips.json,ops.json,whitelist.json,usercache.json。4. 服务器属性精细调优与网络配置服务器能跑了但默认设置可能不符合你的需求。server.properties就是服务器的“控制面板”我们来逐一解析关键配置。4.1 server.properties 核心参数解析用记事本或任何代码编辑器打开server.properties。每一行都是一个配置项格式是键值。以#开头的行是注释说明。我们挑最重要的来说motd 服务器描述。当玩家在多人游戏列表里看到你的服务器时显示的文字。可以写点欢迎语支持颜色代码§符号在游戏内用代替。例如motdA Minecraft Server e1.21.11 f[生存]。server-port 服务器端口。默认是25565。除非这个端口被占用否则一般不用改。max-players 最大在线玩家数。根据你机器性能和带宽设置默认20。不要设得过高否则会卡。online-mode这是重中之重默认是true意味着服务器会连接Mojang的正版验证服务器检查每个连接玩家的账号是否合法。如果你只希望正版玩家加入保持true。如果你希望离线模式破解版玩家也能进入必须将其改为false。请注意关闭正版验证可能存在安全风险且不符合Mojang最终用户许可协议EULA对于公开服务器的规定仅建议在私人局域网或完全信任的环境中使用。pvp 是否允许玩家间互相伤害。true为允许。difficulty 游戏难度。可选peaceful和平easy简单normal普通hard困难。gamemode 默认游戏模式。survival生存creative创造adventure冒险spectator旁观。enable-command-block 是否启用命令方块。如果想玩地图或者需要复杂红石机关设为true。level-name 世界文件夹名称。默认是world。如果你有现成的存档可以把它放到服务器目录下然后把这里改成存档文件夹的名字。view-distance 玩家视距。服务器端允许的最大视距。数字越大服务器需要同步给玩家的区块数据就越多负载越重。对于原版服10是一个性能和体验的平衡点。不要盲目调高。修改并保存server.properties后需要重启服务器才能生效。4.2 内网穿透与端口映射实操这是让互联网上的朋友能连接到你家电脑上服务器的关键一步。因为家庭宽带通常没有公网IP你的服务器处于运营商的内网NAT之后。方案一使用端口映射需路由器支持UPnP或手动配置这是最理想、延迟最低的方案前提是你的宽带拥有公网IP可以百度“IP”查看如果显示的和你在路由器WAN口看到的IP一致通常是公网IP。登录你的路由器管理后台一般是192.168.1.1或192.168.0.1。找到“端口转发”、“虚拟服务器”或“NAT”相关设置。添加一条新规则内部IP地址填写你运行服务器那台电脑的局域网IP在CMD里输入ipconfig查看 IPv4 地址。内部端口25565与server.properties里一致。外部端口25565通常内外一致。协议选择“TCP”或“ALL”。保存并重启路由器。配置成功后你的朋友就可以通过你的公网IP:25565来连接服务器了。你的公网IP可能会变可以告知朋友或者使用动态域名服务DDNS。方案二使用内网穿透工具无公网IP的通用解决方案对于大多数没有公网IP的用户这是最实用的方法。市面上有许多内网穿透工具它们的工作原理是让你本地服务器连接到一个拥有公网IP的中转服务器再由中转服务器将流量转发给你。选择工具例如 SakuraFrp、OpenFrp、NATAPP 等它们通常提供免费的流量和带宽对于一个小型MC服足够用。注册并创建隧道在服务商网站注册创建一个隧道。关键配置是隧道类型TCP。本地IP127.0.0.1如果工具运行在服务器本机。本地端口25565。下载并运行客户端根据你的系统下载客户端使用提供的启动命令或配置文件运行。成功连接后你会获得一个域名或IP:端口例如mc.sakurafrp.com:12345。连接让你的朋友在MC多人游戏中直接输入这个域名和端口即可连接。注意事项免费的内网穿透服务通常有带宽和流量限制且延迟会比直连高一些。如果服务器长期运行且玩家较多可以考虑付费购买更稳定的服务。绝对不要尝试使用任何违反网络安全管理规定的工具或方法进行网络穿透。5. 服务器日常运维与管理命令指南服务器开起来了玩家也能进了接下来就是如何管理它。管理主要通过服务器控制台就是那个启动的CMD窗口和游戏内权限玩家OP来完成。5.1 基础控制台与游戏内命令服务器控制台可以输入各种命令来管理。常用基础命令如下list 列出当前在线玩家。op 玩家ID 给予某个玩家管理员权限。例如op Steve。OP玩家在游戏内可以使用所有单人指令和多数管理指令。deop 玩家ID 撤销某个玩家的管理员权限。ban 玩家ID [原因] 封禁某个玩家。例如ban Alex 破坏公物。pardon 玩家ID 解封某个玩家。whitelist on/off 开启/关闭白名单。开启后只有whitelist.json文件里列出的玩家才能进入服务器。whitelist add/remove 玩家ID 添加/移除白名单玩家。save-all 手动立即保存世界数据。服务器有自动保存但重大操作前手动存一下更保险。stop 正常关闭服务器。务必使用此命令关机直接关闭窗口可能导致世界数据损坏。在游戏内OP玩家可以按T打开聊天栏输入命令最前面要加斜杠/。常用游戏内管理命令/gamemode 模式 [玩家] 切换游戏模式。如/gamemode creative Steve。/tp 目标玩家 目的地玩家或/tp x y z 传送。/give 玩家 物品ID [数量] 给予物品。/time set day/night 设置时间。5.2 自动化与备份策略手动操作毕竟麻烦我们可以借助批处理脚本实现一些自动化。自动重启脚本创建一个restart.bat文件内容如下echo off title Server Restarter echo Stopping server... echo stop input.txt timeout /t 10 echo Starting server... call start.bat这个脚本的原理是向服务器进程发送stop命令通过管道写入input.txt但更可靠的方式是使用RCON或等待进程结束这里是个简化示例等待10秒后重新调用start.bat。你可以配合Windows任务计划程序在每天凌晨低峰期自动执行一次实现每日重启释放内存。世界备份脚本备份太重要了防止熊孩子、BUG或意外导致存档损坏。创建一个backup.batecho off title World Backup set BACKUP_DIRD:\MC_Backups set SERVER_DIRD:\Minecraft_Server_1.21.11 set WORLD_NAMEworld REM 创建以日期时间命名的备份文件夹 set DATE_STR%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2% set BACKUP_PATH%BACKUP_DIR%\%WORLD_NAME%_%DATE_STR% echo Saving world... echo save-all input.txt timeout /t 5 echo Creating backup... xcopy /E /I /H /Y %SERVER_DIR%\%WORLD_NAME% %BACKUP_PATH% echo Backup completed: %BACKUP_PATH% pause这个脚本会先执行save-all保存世界然后使用xcopy命令将整个world文件夹复制到指定的备份目录D:\MC_Backups并以日期时间命名。你应该定期如每天运行它并考虑将备份同步到网盘或其他物理位置。6. 性能监控、问题排查与安全加固服务器运行起来只是开始保持其稳定、安全、流畅才是长期课题。6.1 性能监控与优化点如何判断服务器卡不卡看两个地方控制台TPS每秒刻数 理想值是20。如果经常低于18甚至掉到15以下玩家就会感到明显的卡顿。控制台会显示[INFO] Current TPS: 19.5之类的信息。TPS低通常是因为红石机械过多或低效 尤其是高频红石电路。实体过多 满地的掉落物、未限制的动物繁殖、刷怪塔堆积怪物。区块加载过多 玩家分散在世界各地或者视距(view-distance)开得太大。硬件瓶颈 CPU单核性能不足MC服务器主要吃单核、内存不足或磁盘IO慢如果世界很大。玩家延迟Ping 在玩家列表里可以看到。延迟高通常是因为网络问题与服务器本身性能关系不大。优化建议在server.properties中适当降低view-distance如设为8-10。使用原版提供的性能优化指令如/kill e[typeitem]定期清理掉落物小心使用会清空所有物品。对于长期运行的生存服可以考虑定期重启使用前面的自动重启脚本释放Java内存和清理实体。确保服务器运行在性能模式电源计划下并且电脑没有运行其他大型程序。6.2 常见启动与运行问题排查这里列一个速查表遇到问题可以对照问题现象可能原因解决方案双击start.bat后窗口闪退1. Java未安装或环境变量错误。2.eula.txt未同意。3. 端口被占用。1. 在CMD手动输入java -version验证。2. 检查eula.txt是否为true。3. 修改server.properties中的server-port或关闭占用25565端口的程序。启动时报错UnsupportedClassVersionErrorJava版本过低。安装Java 21或更高版本并确保环境变量指向新版本。玩家无法连接提示“连接超时”或“连接被拒绝”1. 服务器未成功启动。2. 防火墙阻止。3. 端口映射/内网穿透未配置好。1. 检查服务器控制台是否显示“Done”。2. 在Windows防火墙中为java.exe添加入站规则允许TCP 25565端口。3. 检查路由器端口转发规则或内网穿透隧道状态。玩家连接时提示“无效会话”online-mode设置与客户端不匹配。正版服务器(online-modetrue)必须用正版启动器登录。离线服务器(online-modefalse)则用离线账号。确保两者一致。服务器运行一段时间后变卡TPS下降内存泄漏、实体堆积、红石卡服。1. 定期重启。2. 使用/kill命令清理实体谨慎。3. 安装原版优化数据包如Carpet Mod的服务器端但需注意这是模组范畴。世界存档损坏服务器启动失败异常断电或强制结束进程导致。使用备份恢复。如果无备份尝试删除world文件夹中的level.dat_old然后将level.dat重命名为level.dat_old再将level.dat_old重命名为level.dat尝试恢复上一个保存点。6.3 基础安全设置建议即使是私人小服基础安全也不能忽视。白名单whitelist 这是最有效的防打扰手段。在server.properties中设置white-listtrue然后在控制台或游戏中使用whitelist add 玩家ID添加你信任的朋友。陌生人即使知道地址也无法进入。OP权限管理 不要轻易给OP。OP权限过大可以破坏世界、踢人、甚至关闭服务器。只授予绝对信任的管理员。定期备份 如前所述这是最后的防线。至少每天一次全量备份。服务器密码 虽然原版不直接支持服务器密码但你可以通过修改server.properties中的motd来暗示或者通过白名单实现等效功能。关注日志 偶尔查看logs/latest.log文件看看有没有异常的连接尝试或错误信息。搭建和维护一个《我的世界》服务器就像经营一个小型社区。从最初的技术搭建到后来的日常维护和玩家管理每一步都需要耐心和细心。这套基于1.21.11官方核心的教程为你打下了最纯净、最稳定的基础。当你熟练之后可以探索Bukkit/Spigot服务端来添加插件或者使用Forge/Fabric来加载模组那将会打开一个更广阔的世界。记住无论加多少扩展定期备份和关注服务器日志永远是保证稳定运行的好习惯。如果在实际操作中遇到上面没覆盖的问题多看看控制台报错信息那通常是解决问题的钥匙。