Minecraft基岩版开服:安装、白名单与存档检查
这篇教程使用Ubuntu 24.04 LTS、x86_64 和 Minecraft Bedrock Dedicated Server 1.26.61.1 正式版,从空目录开始部署。先用 Windows 上的基岩版客户端完成首次连接,客户端须与服务端版本兼容;Java 版客户端不能直接加入基岩版服务器。
本例按至少 4 GB 内存准备,世界规模、视距和附加包还会增加资源占用。服务器需要提供可访问的公网入口,并允许配置本文用到的 TCP、UDP 端口。NAT 产品还要提前确认可用的外部端口和映射范围。
下载对应版本,保留原始安装包
用具有 sudo 权限的普通账号登录服务器,游戏文件和进程归这个账号管理。先核对系统,再安装工具:
cat /etc/os-release
uname -m
free -h
df -h "$HOME"
sudo apt-get update
sudo apt-get install unzip tmux nano curl ca-certificates libcurl4t64
mkdir "$HOME/minecraft-bedrock-1.26.61.1"
系统应识别为 Ubuntu 24.04、架构为 x86_64。如果目录已经存在,先检查其中是否有旧世界,不要直接覆盖。逐条执行命令,某一步报错时先处理,再继续。
在 Minecraft 官方服务端下载页选择 Ubuntu(Linux)正式版,阅读软件协议后自行决定是否接受。下载页为 https://www.minecraft.net/en-us/download/server/bedrock。本例使用的文件名是 bedrock-server-1.26.61.1.zip,对应官方下载地址:
https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.26.61.1.zip
通过 SFTP 将安装包上传到刚创建的目录。不要把 Preview 预览版或其他版本仅改名后代替本例安装包。上传完成后执行:
cd "$HOME/minecraft-bedrock-1.26.61.1"
unzip -t bedrock-server-1.26.61.1.zip
sha256sum bedrock-server-1.26.61.1.zip > bedrock-server-1.26.61.1.zip.sha256
unzip bedrock-server-1.26.61.1.zip
chmod u+x bedrock_server
压缩包检查没有报错再解压。这里保存 SHA-256 是为了以后辨认这份文件,不代表已经核实下载来源;文件仍须从官方入口取得。目录中的 bedrock_server_how_to.html是随包提供的使用说明,应与安装包一起保留。
先配置世界,再配置NetherNet端口
服务端尚未启动时,编辑配置:
nano "$HOME/minecraft-bedrock-1.26.61.1/server.properties"
找到对应项目并修改已有值,避免在文件末尾堆叠重复设置:
server-name=Baole Survival
gamemode=survival
level-name=baole-survival
online-mode=true
allow-list=true
transport=nethernet
server-ip=
server-port=19132
server-udp-ports=49152-49200
在 nano 中按 Ctrl+O、回车保存,再按 Ctrl+X 退出。level-name决定使用的世界目录,本例是 worlds/baole-survival;以后随意修改它,可能会生成一个新世界,看起来就像原存档不见了。
NetherNet 的连接分为两段:server-port=19132用于 TCP 连接握手,server-udp-ports=49152-49200限定游戏通信使用的 UDP 范围。只开放 UDP 19132 的旧写法不适用于这组配置。server-ip留空,让服务监听本机接口;不要把未分配在网卡上的公网地址直接填进去。
本例保留客户端认证和允许列表。不要为了排除连接错误,将 online-mode改为 false。NetherNet 模式也不能通过修改旧的 server-portv6来代替上述端口配置。
把云侧和系统内的规则对应起来
先按安全组操作教程,为这台实例开放TCP 19132和UDP 49152—49200。来源范围按实际玩家网络设置。随后检查系统防火墙:
sudo ufw status
只有确认这台机器使用 UFW,且状态为 active 时,才执行下面两条放行命令:
sudo ufw allow 19132/tcp
sudo ufw allow 49152:49200/udp
如果使用 firewalld、nftables 或其他防火墙,应在实际生效的规则中处理。不要为了开服清空整套规则,也不要在没有保留 SSH 管理规则时直接启用防火墙。
公网入口经过 NAT 时需要另外核对映射。TCP 握手端口和 UDP 游戏端口都必须能到达这台服务器。外部端口与内部端口不同时,客户端填写外部 TCP 端口,UDP 配置则需要描述实际的公网映射。
例如:外部 UDP 50000—50048 映射到内部 UDP 49152—49200,公网地址为示例地址 203.0.113.10,对应设置是:
server-udp-ports=203.0.113.10:50000-50048:49152-49200
这行用于替换前面的 server-udp-ports,不是同时保留两种方案。公网地址和端口必须换成实际分配值,两边的端口数量要相同;内外端口没有变化时,两段范围填写相同值。系统防火墙对应内部端口。映射操作参照NAT 端口映射教程,不能只在配置文件里写一个公网地址,就认为映射已经建立。
启动服务端,添加允许加入的玩家
创建一个 tmux 会话,再启动服务端:
tmux new -s mc-bedrock
进入会话后执行:
cd "$HOME/minecraft-bedrock-1.26.61.1"
LD_LIBRARY_PATH=. ./bedrock_server
记录启动日志显示的完整版本,确认世界加载完成,没有立即退出。接下来在游戏服务端控制台输入以下命令,不是在另一个 Linux 命令行窗口输入:
allowlist add "Your GamerTag"
allowlist list
serveridentity save
将 Your GamerTag替换为玩家实际的 Xbox Gamertag,含空格的名字保留英文双引号。允许列表会保存到 allowlist.json。如停服后手工编辑过该文件,启动后可以使用 allowlist reload重新加载。
serveridentity save保存当前服务器身份,避免每次重启都生成一个新的身份让玩家重新确认。生成的 keys目录应随存档一起备份,其中的私钥不要公开、贴进工单或放到可下载的网站目录。
分开检查握手和真正进服
保留游戏控制台,再开一个 SSH 窗口检查 TCP 监听和本机信令接口:
sudo ss -lntp 'sport = :19132'
curl --fail --show-error --max-time 5 http://127.0.0.1:19132/v1/join
接口返回包含服务器名称、版本等信息的 JSON,说明本机信令入口可以响应;这还没有验证外部安全组、UDP 通信和玩家认证。
在 Windows 基岩版客户端进入服务器列表,选择添加服务器,填写实际公网地址和 TCP 入口端口。普通直连示例使用 19132,NAT 产品使用分配的外部 TCP 端口。第一次出现服务器信任提示时,先确认目标确实是自己搭建的服务器。
玩家发起连接时,可以在 SSH 窗口执行 sudo ss -lnup,结合进程和端口范围观察 UDP 端点。UDP 端点可能在连接过程中建立,不要仅凭启动后暂时没有某条 UDP 记录,就认定服务器没有启动。
首次验收要实际进入世界、移动、放置一个方块并保持一段时间。出现 Door、InitialConnection 或明确的版本、白名单错误时,保留完整提示和对应时刻的服务端日志,再检查出错的阶段。
正常关闭一次,检查存档有没有留下
记下刚放置方块的位置和角色状态,在游戏服务端控制台输入:
stop
等到保存结束、进程退出并返回 Linux 提示符,再用之前的启动命令重新运行。客户端重新加入同一个世界,确认方块、位置和物品等状态仍在。这个检查通过,才说明本次存档能跨正常重启保留。
停服后备份整个服务端工作目录最容易避免漏项。至少保留实际存在的 worlds、server.properties、allowlist.json、permissions.json、keys,以及使用到的行为包、资源包目录,并保留原来的目录结构。
需要暂时离开 SSH 时,按 Ctrl+B,松开后按 D 分离 tmux;以后执行 tmux attach -t mc-bedrock返回控制台。tmux 可以让进程继续运行,但没有替你配置整台服务器重启后的自动开服。