0%

MC 基岩版(PE) 服务器来了

好长时间没写了,前段时间登陆上MC官网,发现PE版本的服务端已经放出来了,有 Windows 版本和 Linux 版本,小小的尝试了一下,记录一下遇到的坑。
先放链接https://minecraft.net/en-us/download/server/bedrock/

Windows 上运行

下载,双击 bedrock_server.exe 就OK了,局域网内可以发现它。

如果是在 Windows 上运行应用商店的版本,并且服务端也在同一台机子上的话,得先把 Windows 10 对 UWP 应用的网络循环关掉,打开注册表,前往 HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings\ ,这里会列出电脑上安装好的 UWP 应用,然后一个一个往下找,同时观察右边窗口的 DisplayName ,直到找到 Minecraft for Windows 10 ,然后记录下左边条目的名字,如果没错的话,应该是这个:S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436 ,就像下图这样

然后以管理员权限打开命令提示符,输入 CheckNetIsolation.exe LoopbackExempt –a –p=ID ,ID就是上面注册表内找到的条目的名字,提供一个示范

1
CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436

出现如下提示的时候

然后就可以在 Windows 10 的 UWP 版本在当前机子开黑了。超赞👍。

Linux 上运行

极其不建议在Linux上运行服务端,目前的情况来看,官方的服务端会缺很多动态库,它所需要的动态库安装非常繁琐,有时候还会遇到依赖问题。

Linux上运行就有点麻烦了,如果使用 Ubuntu 的话,倒是很方便(注:我使用的是18.04版本)

1
2
sudo apt-get update
sudo apt-get install libcurl3 build-essential

就可以完成依赖包的安装,下载服务端文件之后直接运行就OK。

对于 Cent OS 就麻烦很多了,官方提供的服务端在 Cent OS 7.5 上会缺东西,首先是 libssl.0.0.so 的缺失,就算自行下载 openssl1.0.0 编译好,它又提示 glibc 版本低,编译安装 glibc ,又会遇到 gcc 版本过低的问题,折腾时间增加很多,十分不合算。这里提供一个折中的办法—— docker
docker真的是一个好东西啊,直接放解决办法吧:

1
2
docker pull ubuntu:18.04
docker run -p 19132:19132/tcp -p 19132:19132/udp -it ubuntu:18.04 bash

两个-p参数,分别把tcp和udp协议的主机的19132端口映射到容器实例的19132端口(19132是MCPE服务器的默认端口),有UDP协议,客户端才能发现服务端,有tcp协议,客户端才能连接到服务端。
PS:上面的操作只是做一个示范,启动容器之后需要像在Ubuntu那样安装好依赖,然后再启动MCPE服务端。

参考链接

一开始不知道docker怎么让容器同时支持tcp和udp,真是翻遍了度娘和404网站啊,最后还是官方的文档给了惊喜 https://docs.docker.com/config/containers/container-networking/