如何搭建 Minecraft 基岩版服务器
在你自己的电脑上运行一个 Minecraft 基岩版世界,朋友可以用 Windows、手机和平板加入。Mojang 免费提供 Bedrock Dedicated Server,有 Windows 版和 Ubuntu Linux 版。
准备工作
一台 64 位、Intel 或 AMD 处理器、在大家玩的时候一直开着的电脑:Windows 10 或 11、Windows Server 2016 或更新版本,或者 Ubuntu 22.04 或更新版本。Mojang 不支持其他 Linux,也不支持 ARM 电脑。
Mojang 标的是 4 GB 内存。我们的测试服务器跑一个新世界、没人在线时用了不到 0.4 GB;玩家、较远的 view-distance 和附加包都会增加占用。
玩家通过 19132 端口连接,TCP 和 UDP 都要用。如果有不在你家里的朋友要加入,就在路由器上把两者都转发(见下文“端口和防火墙”)。
测试环境:Bedrock Dedicated Server 1.26.61.1(游戏版本 26.60),2026 年 10 月 31 日。
安装服务器
1. 从上面的页面下载 Windows 版 zip,解压到一个新的空文件夹里,比如 C:\bedrock-server。
2. 双击 bedrock_server.exe,或者在这个文件夹里用 PowerShell 运行它。会打开一个控制台窗口;出现 Server started 就说明服务器准备好了。
3. 第一次启动时 Windows 防火墙会弹出询问。允许专用网络就能让你家里网络的玩家连接;通过互联网进来的朋友还需要允许公用网络。
从上面的页面下载 Ubuntu 版 zip,然后解压并启动:
sudo apt update
sudo apt install unzip libcurl4
mkdir ~/bedrock-server
unzip bedrock-server-1.26.61.1.zip -d ~/bedrock-server
cd ~/bedrock-server
LD_LIBRARY_PATH=. ./bedrock_server服务器需要 libcurl,apt 那行命令会安装它;LD_LIBRARY_PATH=. 让它能找到 zip 里自带的库文件。在 screen 或 tmux 里运行,退出登录后它也会继续运行。
首次启动和文件
第一次启动时控制台显示 CREATING VANILLA WORLD,之后每次启动都显示 LOADING VANILLA WORLD。输出 Server started 时服务器就准备好了;在我们的测试电脑上大约用了五秒。
紧接着会出现 ALLOW LIST WARNING:名单已开启但还是空的,所以现在谁都进不来。这就是接下来要解决的问题(见“允许列表和管理员”)。
| 文件或文件夹 | 内容 |
|---|---|
server.properties | 所有服务器设置(见下一节)。 |
allowlist.json | 允许加入的玩家。新安装时是空的。 |
permissions.json | 按 Xbox 用户 ID 记录的管理员、成员和访客。 |
worlds | 每个世界一个文件夹;level-name 决定运行哪一个。 |
keys | 服务器的身份密钥,保存之后会放在这里(见下文)。 |
behavior_packs, resource_packs | 游戏自带的包。 |
服务器设置
停止服务器,修改 server.properties,再重新启动。文件里每一行下面都有注释说明。示例:
server-name=YOUR-SERVER-NAME
max-players=8
difficulty=normal
allow-list=true
online-mode=true| 设置项 | 默认值 | 作用 |
|---|---|---|
server-name | Dedicated Server | 玩家看到的名字。不能有分号。 |
max-players | 10 | 同时在线的最大玩家数。 |
allow-list | true | 只有 allowlist.json 里的玩家能进。从 26.30 起默认开启。 |
online-mode | true | 玩家必须登录 Microsoft 账户。保持开启。 |
gamemode | survival | survival、creative 或 adventure。 |
difficulty | easy | peaceful、easy、normal 或 hard。 |
allow-cheats | false | 设为 false 时,游戏里会禁止 /give 之类的命令。 |
level-name | Bedrock level | worlds 里要运行的文件夹。换个新名字就会生成新世界。 |
level-seed | (空) | 新世界的种子。留空则随机生成。 |
default-player-permission-level | member | 新玩家的权限:visitor、member 或 operator。 |
view-distance | 32 | 玩家能看多远,单位是区块(至少 5)。 |
tick-distance | 4 | 玩家周围多大范围内世界保持运行,4 到 12 个区块。 |
player-idle-timeout | 30 | 玩家闲置多少分钟后被踢出。0 表示永不踢出。 |
server-port | 19132 | 玩家连接的端口。 |
transport | nethernet | 服务器和玩家通信的方式。raknet 是旧方式,已弃用。 |
texturepack-required | false | 设为 true 时,玩家必须使用世界的资源包。 |
允许列表和管理员
allow-list 开启而名单为空时,谁都进不来,你自己也不行。在服务器控制台里用 Xbox 玩家代号添加每个玩家;名字里有空格的要加引号:
allowlist add YOUR-GAMERTAG
allowlist add "Name With Spaces"每个玩家第一次加入时,服务器会自动填上他的 Xbox 用户 ID。要让某人成为管理员,先让他加入一次,然后你输入 op 加上他的玩家代号。服务器随后会把他写进 permissions.json。
| 命令 | 作用 |
|---|---|
allowlist add <name> | 允许某个玩家加入。 |
allowlist remove <name> | 把玩家移出名单。 |
allowlist list | 显示名单。 |
allowlist reload | 手动编辑 allowlist.json 后重新读取它。 |
op <name> | 让玩家成为管理员。 |
deop <name> | 把管理员改回普通成员。 |
kick <name> <reason> | 把玩家踢出去。 |
changesetting difficulty <value> | 修改难度,直到下次重启。 |
stop | 保存世界并关闭服务器。 |
服务器身份密钥
基岩版服务器有一个身份密钥,玩家的游戏会记住它。新安装的服务器没有保存的密钥,所以每次启动都会生成一个新的,玩家就得再次信任这个服务器。在控制台里保存一次:
serveridentity save服务器会回复 Saved server identity key to keys/server_identity_key.pem。备份时带上 keys 文件夹,更新或搬迁服务器时也要一起带走。
端口和防火墙
现在的服务器同时用 TCP 和 UDP 的 19132 端口:TCP 用来建立连接,UDP 用来传输游戏本身。只有设置了 transport=raknet,19133 端口才有用。
在 Windows 上,以管理员身份在 PowerShell 里放行两者:
New-NetFirewallRule -DisplayName "Minecraft Bedrock server TCP" -Direction Inbound -Protocol TCP -LocalPort 19132 -Action Allow
New-NetFirewallRule -DisplayName "Minecraft Bedrock server UDP" -Direction Inbound -Protocol UDP -LocalPort 19132 -Action Allow在 Ubuntu 上用 ufw:sudo ufw allow 19132(会同时开放 TCP 和 UDP)。如果有不在你家里的朋友要加入,就在路由器上把 19132 的 TCP 和 UDP 转发到服务器电脑的局域网 IP 地址。
加入服务器
玩家在游戏的 Play 界面添加服务器:在 Servers 标签页里滚到列表最底部,选择 Add Server。名字随便填,输入地址,端口填 19132。
| 玩家所在位置 | 地址 |
|---|---|
| 在同一个家庭网络里 | 服务器电脑的局域网 IP 地址 |
| 其他任何地方 | YOUR-SERVER-IP(你的公网 IP 地址) |
在运行服务器的同一台 Windows 电脑上玩,会被 Windows 拦截,需要先放行一次。在服务器停止的状态下,以管理员身份打开终端,运行下面这行;然后重新启动服务器,连接 127.0.0.1:
CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436存档、备份和更新
一个世界就是 worlds 里和 level-name 同名的文件夹,新安装时叫 Bedrock level。备份时先停止服务器,复制这个文件夹,再加上 server.properties、allowlist.json、permissions.json 和 keys 文件夹。
如果要在服务器运行时复制世界,先让它暂停写入文件:
save hold
save query
(copy the files it lists)
save resume执行 save query 后,控制台会显示 Files are now ready to be copied,并列出每个世界文件和它的大小。复制这些文件,然后用 save resume 让世界恢复变化。
Mojang 的说明还提到,每个复制出来的文件都要截断到列出的大小。停止服务器再复制文件夹就不用做这一步。
每次更新都是一个新的 zip,里面带着全新的 server.properties、allowlist.json 和 permissions.json。直接解压覆盖到你的服务器上,会把你的设置和玩家名单都重置掉。
所以先备份,把新 zip 解压到一个新文件夹,再把你的 worlds、keys、server.properties、allowlist.json 和 permissions.json 复制进去。新版本有时会在 server.properties 里加新行:对比一下两个文件。
常见问题
谁都进不来,连我自己也不行
allow-list 已开启,而 allowlist.json 是空的。在控制台用 allowlist add <gamertag> 添加每个玩家。
玩家看到 Outdated server
游戏更新了,服务器没更新。从 minecraft.net 下载新的 zip,按上面的方法更新。Outdated client 表示玩家的游戏版本比服务器旧。
每次重启后玩家都要重新接受服务器
运行一次 serveridentity save,让服务器保留它的密钥。
我在运行服务器的电脑上进不去
Windows 默认会拦截。运行一次“加入服务器”一节里的 CheckNetIsolation 命令。
不在我家里的朋友连不上
把 19132 的 TCP 和 UDP 都转发,在防火墙里两者都放行,并检查他们用的是不是你的公网 IP 地址。有些网络运营商不给家庭用户分配公网 IPv4 地址(CGNAT),这种情况下端口转发没用。
问答
Bedrock Dedicated Server 要花钱吗?
不用。Bedrock Dedicated Server 可以在 minecraft.net 免费下载,有 Windows 版和 Ubuntu 版。
Minecraft 基岩版服务器要转发哪个端口?
19132,TCP 和 UDP。只有改成 transport=raknet 时才需要另外转发 19133。
为什么谁都进不了我新开的基岩版服务器?
允许列表默认是开启的。在控制台用 allowlist add <gamertag> 添加玩家。
怎么在我的基岩版服务器上成为管理员?
先加入一次,然后在服务器控制台输入 op 加上你的玩家代号。
基岩版服务器能在 ARM(比如树莓派)或 macOS 上运行吗?
官方的不行。它是为 64 位 Intel 和 AMD 处理器做的,运行在 Windows 或 Ubuntu 上。
Java 版玩家能加入基岩版服务器吗?
不能。Java Edition 有自己的服务器。
Wikily Servers 提供 Minecraft 基岩版服务器托管
每月 €4.99 起