视频教程:
BV1GL411w7HK(基础篇),
BV1xT4y1e7c8(插件篇)
一直以来,我的世界国际版的联机都是玩家们的一大难题,由于某 些 原 因不开加速器的的话官方的领域服务器(Realm)在国内的体验十分糟糕,而第三方的开服端诸如nk、pmmp等又缺少完整的原版特性,于是由Mojang官方推出的Bedrock Dedicated Server(基岩专用服务器,以下简称BDS)呼之欲出。BDS不仅解决了原版特性的问题,也支持Xbox成就、皮肤、披风等,今天我们就来讲一讲如何自己搭建一个BDS服务器吧。
打开浏览器,输入以URL,进入官方服务端下载页面。说到服务器,可能很多小伙伴第一反应就是Linux,但是就我个人经验而言,开基岩版服务器我强烈不推荐大家使用Linux版服务端开服。
你可能会觉得Linux操作系统资源占用更低,Mojang官方也提供了Ubuntu版开服包,但其实服务端的程序集基本没有优化过,几乎就是从源码直接编译过来的,运行效率十分低下,这使得Linux操作系统的资源占用低、稳定性好的优势完全体现不出来,实际使用体验远差于Windows版,谁叫Mojang是微软旗下的呢,Wintel联盟万岁***(buhsi),更何况Windows的易用性深入人心。由于以上原因,目前主流的BDS插件加载平台都是基于Windows版开发的,在扩展性方面Windows版完胜Linux版。
如图所示:

官方下载页面
下载完成后你将得到一个这样的zip包:

下载
2. 配置服务端
解压我们刚才得到的zip包,你将看到以下文件:

bedrock_server.exe 服务端主程序
bedrock_server.pdb 调试符号以及其他调试信息,如果你想安装插件的话这个必须保留
server.properties 服务器配置文件,我们等会会讲具体配置细节
permissions.json 玩家权限配置文件,一般用不到,直接在后台改就好了(会自动同步到这里面)
allowlist.json 白名单列表,需要在配置文件中开启白名单后才会生效
bedrock_server_how_to.html 官方教程,全英文的,英文不好的话可以使用Chrome浏览器或者Edge浏览器自带的翻译功能翻译一下
我们首先打开,这里我们简单讲解一下一些重要的配置项,
配置项可取值默认值备注server-name任意字符串Dedicated Server客户端的服务器列表里面显示的名字,可以修改成你喜欢的名字gamemodesurvival (0) - 生存creative (1) - 创造adventure (2) - 冒险survival默认游戏模式max-players任意自然数10最大同时在线玩家数difficultypeaceful (0) - 和平easy (1) - 简单normal (2) - 普通hard (3) - 困难(推荐)easy默认游戏难度allow-cheatsBoolean(true或者false)fasle是否允许作弊 *开启后无法在此存档获得Xbox成就online-modeBoolean(true或者false)true在线模式,类似Java版服务器的正版验证,开启后可屏蔽一部分挂壁和熊孩子,强烈建议开启level-seed任意数字留空,代表随机生成种子,只在生成存档时生效white-list(高版本叫allow-list)Boolean(true或者false)false是否开启白名单server-port0~65535中任意空闲端口19132服务器ipv4端口server-portv6同上19133服务器ipv6端口,没有公网IP小伙伴(比如移动大内网受害者)可能会用到default-player-permission-levelvisitor - 访客member - 成员operator - 操作员(管理员)members玩家加入服务器时的默认权限
我们首先把的值修改为一个你喜欢的名字,然后将的值改为true,保存。

放通防火墙

运行服务器
双击bedrock_server.exe,如果出现安全警告,点击“允许访问”, 第一次运行服务器会自动生成诸如words、resource_packs这样的文件夹。服务端就算初始化完成了,我们在控制台输入安全的关闭服务端。

配置完毕
基本的服务器配置就讲完了,接下来我们就可以开始部署我们的服务器了·。
局域网部署较为简单,适合几个基友在同一个WIFI下联机,等同于普通的联机,只不过使用专门的服务器可以安装插件来增强服务器原有的功能,比如领地、TPA、回城、商店等。关于插件的相关内容我会在稍后讲解,这里不做赘述。
(1)运行服务端,然后我们右键开始菜单 - 打开终端,输入 ,查看内网IP,记下这个IP

打开终端

查询IP
(2)我们让我们的好基友们来到游戏中,把我们的服务器添加到服务器列表

姬友的游戏

添加你的服务器
(3)看到以下画面说明添加成功

添加成功
*(4)这一步不是必须的,只有当你需要在同一台电脑上既开服又想运行游戏时才需要。右键开始菜单,以管理员身份打开终端,输入 ,这条命令可以解除UWP应用的本地回环限制
至此,服务器已经可以正常运行了
有小伙伴就要问了,你这不行啊,要在同一个WIFI那我还不如直接联机啊。您先别急,这时候就需要将服务器部署到公网上了。公网部署相对会复杂一些,而且需要一点成本,具体有两种方式:1.内网穿透,2.购买云服务器,3.端口映射。
由于第一种方式配置繁琐,稳定性差,第三种需要你家的宽带有公网IPv4地址。而且关于内网穿透和端口映射方面的教程站内已经有很多了,我就不再赘述了。我们这里以第二种方式为例,带大家一起将我们的服务器部署到公网环境。
(1)购买云服务器或者轻量应用服务器,目前有很多云服务器提供商可以选择,像阿里云、腾讯云、百度云、滴滴云等等,这里推荐阿里云和腾讯云的学生优惠机,平均10块钱/月,几个好基友一人出一个月的钱就能开好久了。配置最好1核心2G内存以上。操作系统我们选Windows Server 2019 64位(win server 2016也行,但是不推荐)。
当然,如果你有比较高的性能需求(比如需要十几名玩家同时在线等等),手上又正好有Visa或者万事通的信用卡的话,强烈推荐微软的Azure和亚马逊的AWS。
https://azure.microsoft.com/zh-cn/
https://aws.amazon.com/cn/
(2)找到服务器的IP,用远程桌面将之前配置好的服务器上传到云服务器中,然后运行服务端。如果提示缺少运行库,可以到微软官网下载:https://aka.ms/vs/17/release/vc_redist.x64.exe
(3)在云服务器安全组面板(有的叫防火墙)中放通端口,协议选择
(4)部署完成
(1). 在服务器个目录新建一个文本文件,命名为,例如"_START_.bat"
(2). 在文本文件中粘贴以下内容:

崩服自启脚本
(3).保存
当服务端意外退出后,命令行变量会变为非零值,有基础的小伙伴可能马上就会明白,没错,这就是程序main方法的返回值。不理解也没关系,你只需要知道,当程序出现错时,会返回非零值,非零就代表出错就可以了。上述批处理脚本代码表示,启动服务端程序,当服务端崩溃或意外停止运行时,重新回到开头,也就是重启服务端。如果服务端正常退出时(一般表现为你输入stop命令安全退出)则不会重启。
和Java版需要先装Mod API一样,要让我们的服务器支持插件,首先就要安装插件加载器。
由于基岩版官方服务器BDS在linux上的性能和稳定性都十分糟糕,所以目前主流的还在持续维护插件加载器全部都是基于Windows版BDS开发的,所以我这里以windows版为例。
(1). 首先到Github下载最新的release:https://github.com/LiteLDev/LiteLoaderBDS


(2). 下载完成并解压到服务器根目录后我们会得以下文件:

(3). 运行,它会生成一个叫的文件,服务端中的也会被提转化成,配置完毕!这时我们只需吧插件放进plugins目录即可开服了。
(4).BDS插件大多都发布在Minebbs(https://www.minebbs.com/),这里我们以LiteLoaderBDS官方发布的反作弊插件LLAntiCheat为例,我们前往Minebbs资源中心搜索“LLAntiCheat”,将下载得到的LLAntiCheat.dll文件复制到服务器根目录下的plugins目录,然后启动服务端即可。

LLAntiCheat

加载成功
您必须接受 Minecraft 的最终用户许可协议(EULA).
它意味着请勿将任何违反 EULA 的内容用于商业用途
接受这个许可证意味着您也接受了Minecraft EULA
如果您违反了 EULA,任何法律责任都与开发者无关
开发者不对您负责,开发者没有义务为你编写代码、为你使用造成的任何后果负责
另外,您需要遵守本项目的开源许可证条款,以及下列提到的各关联项目的开源许可证条款
LiteLoader GPLv3以及额外限制和例外 BedrockX GPLv3以及额外限制和例外 ElementZero GPLv3 ScriptX Apache License Version 2.0 ChakraCore MIT License OpenSSL Apache-2.0 License SimpleIni MIT License Nlohmann-Json MIT License nbt-cpp MIT License Hash GPL v3 ThreadPool Zlib License LightWebSocketClient MIT License magic_enum MIT License dyncall ISC license