尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Minecraft基岩版1.21.11离线服务器搭建:从BDS部署到管理维护全攻略

Minecraft基岩版1.21.11离线服务器搭建:从BDS部署到管理维护全攻略 如果你最近在找 Minecraft 服务器可能已经看到happydog.ltd这个地址了。这是一个运行在 1.21.11 版本的基岩版服务器支持离线模式进入玩家直接在客户端添加服务器地址就能连。有人问“1.21.11 离线可进”是什么意思也有人问“这个服务器是怎么搭的”这篇博客就把开服思路、环境准备、服务端部署、玩家加入、管理维护和常见问题完整拆一遍。这个服务器最大的特点是版本锁定在 1.21.11客户端版本匹配就能进没有强制正版验证离线客户端可以直接进入使用域名happydog.ltd而不是裸 IP玩家只需要记一个地址。对于想自己开服的朋友来说这套方案可以照抄用官方 BDS 服务端一台 Linux 服务器开 UDP 19132 端口查好域名解析客户端添加地址完事。下面按真实开服流程展开从选服务端到部署、启动、加入测试、RCON 管理再到备份和排查全部走一遍。1. 核心能力速览能力项说明游戏类型Minecraft 基岩版Bedrock Edition服务端版本1.21.11客户端需匹配或兼容该版本服务器地址happydog.ltd默认端口19132/UDP基岩版默认正版验证关闭/未强制验证离线客户端可进服务端推荐官方 Bedrock Dedicated ServerBDS支持平台Linux / Windows 均可部署硬件建议2GB 内存起步CPU 单核性能越高越好管理方式控制台命令、RCON 远程管理批量任务批量导入 allowlist、定时备份脚本适合场景好友联机、小型社区服、生存服、建筑服需要注意这里不涉及 GPU 显存问题。Minecraft 基岩版服务器是 CPU 和内存密集型服务瓶颈通常在单核性能和内存容量不在显卡。2. 服务器搭建思路与适用场景2.1 为什么选择基岩版 BDSJava 版服务器常用 Paper、Spigot、Fabric 等服务端但基岩版玩家用的不是同一套服务端。happydog.ltd这个服务器面向的是基岩版客户端正确选择是官方发布的 BDSBedrock Dedicated Server。BDS 的好处是版本跟进快官方发布了 1.21.11 版本服务端就能同步跟进确保客户端版本兼容。有人可能问“能不能用 Nukkit 或 PocketMine-MP”这些第三方服务端注重插件生态但版本跟进速度往往慢于官方 BDS。如果你想跑在 1.21.11 这个具体版本优先选官方 BDS兼容性最稳。2.2 离线可进的含义“离线可进”指服务端不强制进行 Xbox Live 正版验证。基岩版客户端在加入服务器时如果服务端没有开启强制验证离线模式客户端也能直接进入。它的好处是门槛低玩家不需要额外准备正版账号风险是玩家用户名可以被随意取名可能出现冒充管理员等问题。对开服者来说离线模式意味着必须额外做好权限管理和白名单控制。后面会专门说怎么补这个坑。2.3 适用场景这个模式适合朋友之间的小型联机服想快速开一个生存服试水的新手不要求正版验证、希望低门槛拉人的社区服想学习基岩版服务端部署和维护的玩家不适合需要严格身份认证的大型公服需要大量插件扩展玩法的服务器BDS 插件支持有限追求极致性能和高度自定义的服务器应选择 Java 版生态3. 环境准备与前置条件3.1 服务器硬件BDS 对硬件的要求不算高但也不算低。内存建议 2GB 起步4GB 会更舒服。如果同时在线人数达到 10 人以上4GB 内存和 2 核 CPU 是比较稳妥的起点。CPU 方面BDS 的主逻辑是单线程的单核性能比核心数量更重要。同样一颗 CPU高频比多核带来的提升更明显。硬盘建议使用 SSD。世界地图会持续读写区块数据机械硬盘在玩家快速移动或加载大范围区块时容易出现卡顿。3.2 操作系统Linux 和 Windows 都可以跑 BDS。happydog.ltd这种带域名的服务器部署在 Linux 上更常见因为云服务器成本低、远程维护方便。下面以 Ubuntu 22.04 / Debian 12 为例。3.3 依赖工具Linux 下需要安装以下工具apt update apt install -y unzip curl wget libcurl4 libssl3不同发行版包名可能有差异Debian 系一般这样够了。CentOS / Rocky Linux 则使用 dnf 安装。3.4 防火墙与安全组基岩版服务器默认使用 UDP 19132 端口。云服务器通常有两层防火墙云控制台的安全组规则服务器系统内的 iptables / firewalld / ufw两层都要放行 UDP 19132。# ufw 示例 ufw allow 19132/udp ufw reload# firewalld 示例 firewall-cmd --permanent --add-port19132/udp firewall-cmd --reload如果只开 TCP玩家会一直卡在“无法连接”状态。3.5 域名解析happydog.ltd通过域名访问需要把域名解析到服务器公网 IP。在 DNS 管理后台添加一条 A 记录记录类型主机记录记录值A服务器公网 IPAmc服务器公网 IP玩家在客户端添加服务器地址时可以直接填happydog.ltd也可以填mc.happydog.ltd取决于你给玩家公布哪个地址。如果解析配置正确域名会自动指向服务器 IP。验证解析是否生效ping happydog.ltd dig short happydog.ltd如果解析记录已经添加但 ping 不通等 DNS 全球生效可能需要几分钟到几小时。4. 服务端部署与启动4.1 下载 BDS 1.21.11BDS 官方下载页面提供 Windows 和 Linux 版本。Linux 版本是一个 zip 包文件名类似bedrock-server-1.21.11.zip。下载后解压到固定目录mkdir -p /opt/mc-bedrock cd /opt/mc-bedrock unzip bedrock-server-1.21.11.zip解压后目录里应该有bedrock_server、bedrock_server_how_to.html、server.properties、permissions.json等文件。4.2 配置 server.propertiesserver.properties是 BDS 最核心的配置文件。关键项如下server-port19132 server-portv619133 level-nameBedrock level gamemodesurvival difficultynormal allow-listfalse online-modetrue view-distance32 player-idle-timeout30 max-players10需要注意BDS 1.21.11 的离线进入并不直接通过online-modefalse这一个开关控制服务端默认允许没有正版验证的客户端进入但你可以通过 allow-list 做白名单限制。更稳妥的做法是关闭正版强制验证后立即开启 allow-list只允许你认识或登记过的玩家进入管理员账号单独配置权限如果allow-listfalse任何离线玩家都能进方便但也危险。4.3 设置 allowlist开启 allowlist 后需要编辑allowlist.json文件[ { ignoresPlayerLimit: false, name: 玩家名 } ]这个文件里填的是玩家游戏内名字。离线服务器没有唯一 ID 绑定所以玩家名就是唯一身份凭证。这也是离线模式最大的隐患如果有人使用管理员同名 ID 进入就会被当作管理员。所以还要配合permissions.json设置权限。[ { permission: operator, xuid: 玩家XUID } ]XUID 是基岩版玩家的唯一标识。离线服获取 XUID 比较麻烦但如果是正版验证或混合验证XUID 就很有用。离线云服务器上管理权限时要尽量绑定 XUID 而不是只认玩家名。4.4 启动服务端启动 BDScd /opt/mc-bedrock LD_LIBRARY_PATH. ./bedrock_server看到控制台输出类似Server started的日志就说明启动成功。如果需要后台运行可以用 nohup 或 screenscreen -S mc LD_LIBRARY_PATH. ./bedrock_server按CtrlA再按D退出 screen服务保持后台运行。重新进入控制台用screen -r mc。4.5 使用 systemd 托管更好的做法是把 BDS 注册成 systemd 服务开机自启崩溃自动拉起。创建/etc/systemd/system/mc-bedrock.service[Unit] DescriptionMinecraft Bedrock Server Afternetwork.target [Service] WorkingDirectory/opt/mc-bedrock ExecStart/opt/mc-bedrock/bedrock_server Restarton-failure RestartSec10 Usermcserver Groupmcserver [Install] WantedBymulti-user.targetsystemctl daemon-reload systemctl enable mc-bedrock systemctl start mc-bedrock查看运行状态systemctl status mc-bedrock4.6 确认端口监听启动完成后检查 UDP 19132 是否正常监听ss -ulnp | grep 19132正常会看到类似udp UNCONN 0 0 0.0.0.0:19132的输出。如果没有监听检查服务端是否启动成功以及端口是否被占用。5. 玩家如何加入服务器5.1 客户端版本匹配加入前先确认客户端版本是 1.21.11 或兼容版本。版本不匹配时玩家会在连接界面看到版本错误提示。5.2 添加服务器基岩版客户端操作路径打开游戏进入“游戏”选项卡。选择“服务器”标签。点击“添加服务器”。服务器名称随便填比如happydog。服务器地址填happydog.ltd。端口填19132。保存并加入。如果域名解析正常、防火墙端口放行玩家就能看到服务器在线并进入世界。5.3 判断是否成功加入进入服务器后服务端控制台会输出类似日志Player connected: 玩家名, xuid: ...同时在线的其他玩家也能在玩家列表里看到新玩家。跑通这一步说明整个开服链路是通的。6. 管理接口与批量操作6.1 控制台命令BDS 控制台支持多种管理命令命令作用op 玩家名设为管理员deop 玩家名取消管理员kick 玩家名踢出玩家ban 玩家名封禁玩家unban 玩家名解封玩家save保存世界list查看在线玩家say 内容向全服发送消息reload重新加载设置在 screen 或 systemd 托管模式下直接在控制台输入命令回车即可。6.2 RCON 远程管理如果你不想每次登录服务器系统操作控制台可以开启 RCON。在server.properties中修改enable-rcontrue rcon-port25575 rcon-password修改为强密码重启服务端后用 mcrcon 连接mcrcon -H 127.0.0.1 -P 25575 -p 你的密码 listRCON 走 TCP 协议远程连接时需要在安全组和防火墙放行 TCP 25575。RCON 不要直接暴露到公网最好限制为内网 IP 或通过 SSH 隧道访问。6.3 批量导入 allowlist如果服务器要一次性添加多个玩家不必手工编辑 JSON。可以用脚本生成 JSON 内容再写入allowlist.json。for name in steve alex creeper; do echo {\ignoresPlayerLimit\: false, \name\: \$name\}, done注意 JSON 格式结尾不能有多余逗号生成后建议用jq校验格式jq . allowlist.json写完后执行reload或重启服务端生效。6.4 定时备份脚本BDS 世界数据保存在worlds/目录。定期备份是离线服务器最重要的事情。创建一个备份脚本/opt/mc-bedrock/backup.sh#!/bin/bash BACKUP_DIR/backup/mc WORLD_DIR/opt/mc-bedrock/worlds TIMESTAMP$(date %Y%m%d-%H%M%S) mkdir -p $BACKUP_DIR tar -czf $BACKUP_DIR/world-$TIMESTAMP.tar.gz -C $WORLD_DIR . find $BACKUP_DIR -name *.tar.gz -mtime 7 -deletechmod x /opt/mc-bedrock/backup.sh加入 crontab每天凌晨 3 点备份0 3 * * * /opt/mc-bedrock/backup.sh如果是小服备份前建议先执行控制台命令save确保存档落盘。7. 资源占用与性能观察7.1 内存占用BDS 启动后内存占用会随着世界加载而增长。单人世界可能占用 1GB 左右多人上线、区块加载增多时会继续上升。如果内存不足服务端可能卡死或崩溃。观察命令free -h重点看available是否充足。如果 available 长期低于 500MB就该考虑加内存或减少视距。7.2 CPU 占用CPU 瓶颈通常出现在玩家密集移动加载大量区块红石机械大量运行实体数量过多比如大量动物、掉落物视距设置过高观察命令top -d 1如果bedrock_server进程的 CPU 占用持续接近 100%说明单核性能已经吃满。降低view-distance是立竿见影的办法。7.3 如何降低负载在server.properties中调整view-distance24 max-players10 player-idle-timeout30更小的视距意味着服务端需要发送给玩家的区块数据更少CPU 和带宽压力都会下降。7.4 日志观察BDS 的日志输出在控制台如果用 systemd 托管可以通过journalctl查看journalctl -u mc-bedrock -f如果使用 screen 托管日志会显示在 screen 窗口里。定期看日志能提前发现崩溃、玩家异常连接等问题。8. 常见问题与排查方法问题现象可能原因排查方式解决方案玩家添加地址后无法连接UDP 19132 未放行ss -ulnp | grep 19132检查安全组放行 UDP 19132提示版本不兼容客户端版本与服务端不一致服务端控制台查看版本客户端降级或服务端升级到 1.21.11域名解析不通DNS 未生效或 A 记录错误dig short happydog.ltd检查 A 记录指向公网 IP离线玩家无法进入allowlist 开启但未添加玩家名查看allowlist.json添加玩家名到 allowlist执行 reload玩家进入后没有权限permissions.json 权限缺失检查控制台是否输出错误重新配置 operatorRCON 连接失败RCON 未启用或密码错误检查 server.properties重启服务端确认端口和密码服务器自动崩溃内存不足或存档损坏free -h、查看 journal 日志增加内存恢复备份存档控制台中文乱码系统 locale 不支持设置LANGen_US.UTF-8调整系统字符集服务器卡顿CPU 单核跑满top -d 1观察占用降低 view-distance清理实体8.1 连接失败但端口正常如果ss显示 19132 已监听但玩家还是进不来优先检查云控制台安全组。很多服务器系统内防火墙已关闭但安全组没有放行 UDP 19132一样连不上。8.2 allowlist 修改不生效修改allowlist.json后如果服务端没有报错但仍进不来先确认 JSON 格式是否正确jq . allowlist.json格式错误会让服务端读取失败。修改后记得执行reload或重启服务端。8.3 离线服务器被冒充离线模式下任何人都可以用别人名字进入。处理办法开启 allowlist限制进入名单。管理员权限绑定 XUID而不是玩家名。定期查看控制台玩家连接日志发现异常及时 ban。不要在服务器里公开管理员密码或授权命令。8.4 备份恢复如果存档损坏先把旧备份解压回worlds/cd /opt/mc-bedrock rm -rf worlds/Bedrock\ level tar -xzf /backup/mc/world-20250601-030000.tar.gz -C worlds/恢复后重启服务端。备份时间越频繁丢失数据越少。9. 最佳实践与安全建议happydog.ltd这种离线可进的小型服务器核心玩法是低门槛联机。但正因为离线可进安全措施必须到位。9.1 开服前必做清单服务器系统更新到最新补丁。创建独立系统用户运行 BDS不要用 root 直接运行。RCON 密码设置高强度密码RCON 端口不要暴露公网。防火墙只放行必要端口UDP 19132、TCP 25575如需要。定期备份worlds/目录。保存一份server.properties、allowlist.json、permissions.json的备份。9.2 建立最基本的玩家规则服务器发布到社区后玩家会越来越多。建议提前写好公告禁止破坏他人建筑。禁止偷窃物品。禁止使用作弊客户端。禁止冒充管理员。违规处理方式。配合控制台kick、ban命令可以快速处理。9.3 更新版本时注意存档兼容BDS 每次大版本更新存档可能不再兼容旧版本。升级前先备份整个worlds/目录在测试环境加载一次确认无报错再切换生产版本。9.4 日志留存与隐私服务器日志包含玩家连接时间、IP 等信息。不要在公开渠道擅自发布玩家 IP、隐私信息。如果服务器涉及未成年人更要注意内容管控和隐私保护。10. 总结与下一步这个服务器最有价值的点在于用最低的门槛把玩家聚在一起。一个域名、一个 UDP 端口、一个 1.21.11 服务端离线玩家也能直接进。对想自己开服的人来说这套链路并不复杂但每一步都不能错尤其是安全组放行 UDP 19132、版本匹配、allowlist 权限这两三个关键点。如果你想复刻这套方案建议按以下顺序验证先在一台 2GB 内存以上的服务器上部署 BDS。用客户端加域名测试能否进入。确认进入后立即开启 allowlist 和 RCON。配置定时备份脚本。再考虑对外开放、发布到社区。最容易踩的坑是版本不匹配、UDP 端口没放行、allowlist 格式写错。这三个问题占了开服新手 80% 的失败原因。后续如果想继续扩展可以研究 BDS 的插件加载器、跨服白名单同步、定时任务自动重启或者把备份上传到对象存储。先把服务器稳定跑起来再逐步加功能这是最稳妥的开服节奏。如果你已经在happydog.ltd里玩至少现在你知道后台是怎么跑起来的了。服务器地址依然有效的话1.21.11 离线客户端直接加就行。还没跑通连接流程的按上面的排查表一项项查很快就能定位问题。
返回列表