Minecraft

基岩版服务器(BDS)

新版基岩版服务端(NetherNet 传输)的隧道与 server.properties 配置
本教程适用于使用 NetherNet 传输的新版基岩版服务端。旧版服务端请参考 旧版基岩版(RakNet)。
如果这里面没有说明哪些要动,就不需要动,本教程基于默认情况下的 BDS 配置文件,如果您自行修改了哪些部分,我们相信您知道您在做什么,否则应该改回去。

一、准备服务端

  1. 从 Minecraft 官方网站 下载 BDS。此处的教程使用 Windows 版本,Linux 版本差异不大
  2. 解压形如 bedrock-server-1.26.61.1.zip 的压缩包

二、修改 server.properties

server-port=19132
online-mode=true
  • server-port:服务器的本地端口,下面两条隧道都要填写这个数值
  • online-mode=true:保留账号验证,您和朋友使用自己的 Microsoft/Xbox 账号登录游戏
默认情况下allow-list=true,即白名单处于打开状态,如果不希望打开白名单可以改为false;在控制台命令使用 allowlist add 朋友的名字 添加白名单

保存后重新启动服务器,先在本机或局域网加入一次,确认能正常进入世界。

三、创建两条隧道

NetherNet 把一次连接拆成两步,所以需要一条 TCP 隧道和一条 UDP 隧道:

步骤作用协议
信令客户端先问「这个服务器要怎么连」TCP,HTTP(S)
游戏按信令给出的地址建立连接UDP,WebRTC

两者端口号不需要相同:客户端只填写信令的地址,游戏地址由信令下发。

3.1 信令隧道

注意 Lolia FRP 目前尚未对 BDS NetherNet 联机进行优化,故您需要准备一个已备案的域名,如果没有备案,则可以使用海外节点创建信令隧道,由于游戏实际传输内容走webrtc,因此可以创建国内节点隧道。
字段填写
隧道类型HTTPS
本地 IP127.0.0.1
本地端口19132
域名绑定自己的域名,例如 mc.example.com
AutoTLS开启
HTTPS 隧道必须使用客户端信任的证书。自签名证书会被 Minecraft 拒绝并回落到 HTTP,Lolia 的 HTTPS 隧道不接受 HTTP 请求,所以必须启用 AutoTLS 或改用 HTTP 隧道,这里使用 HTTPS + AutoTLS 的方案。

3.2 游戏隧道

字段填写
隧道类型UDP
本地 IP127.0.0.1
本地端口19132
远程端口留空自动生成

记下 UDP 隧道的远程端口,下一步要写进服务端配置。

四、填写公网地址

打开 server.properties,把 UDP 隧道的公网地址写进去:

server-udp-ports=远程地址:远程端口:本地端口

填写格式形如cn-frp-1.qwq.fan:14514:19132

保存后重新启动服务器。

五、加入服务器

  1. 打开 Minecraft 基岩版,在「服务器」页面点击「添加服务器」
  2. 服务器名称自行填写,服务器地址填 mc.example.com,端口填 443
  3. 点击「添加并开始」加入
地址要填域名,不要填 IP,否则一定会弹出「是否信任此服务器」的提示。

六、常见问题

服务器能显示,但进不去

先检查 UDP 隧道是否开启,再核对 server-udp-ports 里的远程地址、远程端口与本地端口是否都填对。服务器能显示信息,不代表游戏连接已经正常。

进服时提示「是否信任此服务器」

说明信令没有走 HTTPS,检查信令隧道是否绑定了域名并开启了 AutoTLS,以及玩家填写的是不是域名。

域名和证书都正确,仍无法连接

确认玩家填写的是信令隧道的域名与端口,隧道日志里已经加载证书,并且两条隧道都处于启动状态。