好长时间没写了,前段时间登陆上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 | sudo apt-get update |
就可以完成依赖包的安装,下载服务端文件之后直接运行就OK。
对于 Cent OS 就麻烦很多了,官方提供的服务端在 Cent OS 7.5 上会缺东西,首先是 libssl.0.0.so
的缺失,就算自行下载 openssl1.0.0
编译好,它又提示 glibc
版本低,编译安装 glibc
,又会遇到 gcc
版本过低的问题,折腾时间增加很多,十分不合算。这里提供一个折中的办法—— docker
docker真的是一个好东西啊,直接放解决办法吧:
1 | docker pull ubuntu:18.04 |
两个-p参数,分别把tcp和udp协议的主机的19132端口映射到容器实例的19132端口(19132是MCPE服务器的默认端口),有UDP协议,客户端才能发现服务端,有tcp协议,客户端才能连接到服务端。
PS:上面的操作只是做一个示范,启动容器之后需要像在Ubuntu那样安装好依赖,然后再启动MCPE服务端。
参考链接
一开始不知道docker怎么让容器同时支持tcp和udp,真是翻遍了度娘和404网站啊,最后还是官方的文档给了惊喜 https://docs.docker.com/config/containers/container-networking/