[PE]用 MCMrARM 的 mcpelauncher 实现在 VPS 上运行全特性支持的基岩版服务器! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Useful Links
Minecraft Wiki
合成配方
codehz
V2EX    Minecraft

[PE]用 MCMrARM 的 mcpelauncher 实现在 VPS 上运行全特性支持的基岩版服务器!

  •  1
     
  •   codehz 2018-01-16 14:44:24 +08:00 9245 次点击
    这是一个创建于 2824 天前的主题,其中的信息可能已经有所发展或是发生改变。
    (不公开我自己架设的 demo 服务器,免得被打(

    众所周知基岩版官方没有提供的公开的独立服务端。

    然后第三方服务端主要有 PocketMine 和 Nukkit
    他们都比较弱鸡
    特别是对于生物,以及一些红石的支持
    (当然优点在于有各种辅助插件)

    当然自从 Better together 更新之后,客户端均提供了向 xbox 公开的功能,但是这种服务器需要机主在线才能玩(以及 3 个 py 服务器,日常延迟上千的那种
    ( Realms 当然也是一个选项,国内连接延迟还过得去,但是不方便自定义,以及,人数上限
    (不提中国版:P

    MCMrARM 的 mcpelauncher-linux 原本是为了解决在 linux 端运行 mcpe 的问题,但是也同时提供了一个可以在 headless 服务器上单独运行服务端的功能: https://github.com/MCMrARM/mcpelauncher-linux

    我对这个项目的构建文件( CMakeLists.txt )稍微做了一些修改,于是现在它可以直接在 VPS 上编译了: https://github.com/codehz/mcpe-server (本来可以是单文件的,但是由于项目使用了 dlsym 来获取相关函数地址,所以没办法完全静态链接

    事实上我使用了 docker hub 作为自动构建的平台。镜像链接: https://hub.docker.com/r/codehz/mcpe-server/

    镜像使用方法可以参考我这个仓库: https://github.com/codehz/mcpe-demo
    先 clone,然后将 Android x86 架构的 minecraft apk 改名 game.zip ,用这个 dockerfile 即可启动(或者你愿意的话也可以直接把 docker 镜像里的文件提取出来(
    第 1 条附言    2018-01-17 13:46:50 +08:00
    现已支持 1.2.9
    同时放出简要部署指南:
    典型用法:
    docker run --rm -ti -v 某个目录:/root/app -p 19132:19132/udp codehz/mcpe-demo
    第一次运行后( Ctrl+C 安全退出)就可以直接在那个绑定的目录里找 games/com.mojang/minecraftWorlds 目录,里面应该就是存档
    存档可以自己配置(下面),或者上传一个上去(就是导出地图获得 mcworld 文件,当作 zip 解开)
    配置文件是 server.properities
    内容如下
    level-seed= 地图的种子
    gamemode= 游戏模式
    force-gamemode= 强制游戏模式
    difficulty= 难度(0 和平 1 简单 2 正常 3 困难)
    level-generator= 世界生成器(0 旧世界 1 无限世界 2 超平坦)
    player-idle-timeout= 闲置时间(分钟为单位,支持小数)
    level-dir= 存档路径,不写表示直接在根目录( games/com.mojang/minecraftWorlds
    level-name= 存档名字,主要为了导出时使用
    motd= 就是服务器对外显示的一串字符串,支持颜色字符
    view-distance= 服务器视距
    server-port= 服务器端口
    max-players= 最大玩家数量
    online-mode= 联网验证( xbox 登陆,虽然我没发现不登陆要怎么看服务器列表。。。)
    暂时不支持 rcon 和服务器查询
    部分选项只有在生成新的地图的时候才会生效,比如种子啊,游戏模式啊,不过其实可以用 op 来修改
    指令的话,就是运行了服务器之后即可输入,要注意的是,pe 服务器只支持用户在线的时候使用用户相关的指令。。
    op 指令可以使用户成为 Operator,之后就可以直接在游戏菜单里修改设置了(注意这个指令也受到用户在线的限制)
    关于服务器部署值得注意的一点是 PE 服务器用的是 udp 端口,所以确保对应的防火墙选项已经打开
    第 2 条附言    2018-03-20 13:16:22 +08:00

    用法更新,顺便typo

    新的用法使用/data/目录作为数据存储目的

    docker run --rm -ti -v 某个目录:/data -p 19132:19132/udp codehz/mcpe-demo 

    typo: server.properities -> server.properties

    第 3 条附言    2018-05-08 19:34:42 +08:00
    最新消息:
    Docker 版本由于打包的问题,已经放弃维护,未来将会移除 demo 镜像
    但是,现在又有两个新的方案
    (具体介绍: http://www.mcbbs.net/thread-794302-1-1.html
    简单介绍就是
    https://github.com/codehz/mcpe-server-script <- 一个基于 bash 的脚本集合
    https://github.com/codehz/mcpeserver <- golang 写的下载 /apk 解压 /加载器
    当然,构建环境还是 docker,只不过不再使用 docker 部署而已
    44 条回复    2018-05-07 22:05:36 +08:00
    galenzhao
        1
    galenzhao  
       2018-01-16 21:16:13 +08:00
    果然 android x86.。。
    codehz
        2
    codehz  
    OP
       2018-01-16 22:15:54 +08:00 via Android
    @galenzhao 要不是没有 Android x86_64.
    galenzhao
        3
    galenzhao  
       2018-01-17 12:37:40 +08:00
    @codehz 性能怎么样,vps 都是木有显卡的。。。
    pm 个地址我试试呗
    codehz
        4
    codehz  
    OP
       2018-01-17 12:58:07 +08:00
    @galenzhao #3 v2 什么时候有私信的功能了(
    galenzhao
        5
    galenzhao  
       2018-01-19 11:34:31 +08:00
    楼主把 apk 打进去了 不怕被举报么
    codehz
        6
    codehz  
    OP
       2018-01-19 12:37:01 +08:00 via Android
    @galenzhao 举报了再下
    SCGabriel
        7
    SCGabriel  
       2018-03-20 12:29:26 +08:00
    楼主您好,想用您这种方法搭服,但是怎么用没咋看懂,求再解释下
    codehz
        8
    codehz  
    OP
       2018-03-20 13:14:03 +08:00
    @SCGabriel #7 docker run --rm -ti -v 某个目录:/data -p 19132:19132/udp codehz/mcpe-demo
    这样,看看有没有什么报错,之前修改了一下格式,忘记更新这里了,等会写个附言
    SCGabriel
        9
    SCGabriel  
       2018-03-23 10:53:54 +08:00 via Android
    @codehz 大佬,咱萌新,想问下咱需要先 git 什么文件,然后再执行你这个?
    codehz
        10
    codehz  
    OP
       2018-03-23 11:08:44 +08:00   1
    @SCGabriel #9 不需要任何依赖,直接装 docker 运行我这个命令就可以了(会自动下载镜像
    当然你要自己构建的话,推荐到作者的仓库去看看 -> https://github.com/MCMrARM/mcpelauncher-linux
    SCGabriel
        11
    SCGabriel  
       2018-03-23 11:38:07 +08:00
    @codehz 需不需要把你这个 https://github.com/codehz/mcpe-demo 给 git 下来?然后 mc 的 x86 的 apk 文件需要自己去找不?
    codehz
        12
    codehz  
    OP
       2018-03-23 11:45:02 +08:00   1
    @SCGabriel #11 嘘,理论上我已经打包进 docker 镜像里去了(没人找我有事就先挂着(
    SCGabriel
        13
    SCGabriel  
       2018-03-23 11:50:18 +08:00
    @codehz 0_0 开启服务器和停止服务器的命令有不?
    codehz
        14
    codehz  
    OP
       2018-03-23 11:54:22 +08:00   1
    @SCGabriel #13 没有,你可以发送 SIGINT (也就是 Ctrl+C )停止服务器(相关管理模组还在开发中,
    SCGabriel
        15
    SCGabriel  
       2018-03-23 12:00:37 +08:00
    @codehz OK,其实会用了,请问下对应的是 PE 的什么版本的?会自动更新服务器端吗?
    先谢谢大佬了
    codehz
        16
    codehz  
    OP
       2018-03-23 12:05:51 +08:00
    @SCGabriel #15 对应最新发布的版本,更新的话,主要靠我手动上传(
    其实是可以跑测试版本的,但是毕竟大家用的主要还是正式版)需要拉取新版本的时候可以运行 docker pull codehz/mcpe-demo (建议写在一起做成脚本,即 docker pull codehz/mcpe-demo && docker run ....
    SCGabriel
        17
    SCGabriel  
       2018-03-23 13:09:20 +08:00
    @codehz 大佬,再问下您一个简单的问题,server.properities 这个文件里面格式应该是怎样写的?每行句尾是接;还是, ?
    codehz
        18
    codehz  
    OP
       2018-03-23 13:18:24 +08:00 via Android
    @SCGabriel 行尾直接换行,另外种子只能是数字,而且是 32 位有符号整数(又发现忘记写了
    SCGabriel
        19
    SCGabriel  
       2018-03-23 14:09:31 +08:00
    @codehz 大佬,服务器开了之后,win10 的基岩版连不上服务器




    配置应该没写错的
    SCGabriel
        20
    SCGabriel  
       2018-03-23 17:06:18 +08:00
    @codehz 在腾讯云广州的一个 vps 上跑,游戏里依然连接不上


    win10 的 uwp 也是基岩版吧,难道必须 PE ?
    codehz
        21
    codehz  
    OP
       2018-03-23 18:02:36 +08:00
    理论上是可以连接的(你看看是不是版本没匹配上(这里是 1.2.11 ,另外你贴一下运行命令,顺便检查下防火墙(注意是 udp 的端口
    codehz
        22
    codehz  
    OP
       2018-03-23 18:08:34 +08:00
    @SCGabriel #20 忘记点回复了(
    我之前也在腾讯云上跑过,似乎也是经常性无法连接,用香港的服务器就没问题(不是腾讯云的),再不行试试用 ssh 反向代理,
    SCGabriel
        23
    SCGabriel  
       2018-03-23 23:08:05 +08:00 via Android
    @codehz 应该不是腾讯云的关系,因为咱在腾讯云之前还在搬瓦工上跑过,都是连不上,朋友也连不上。防火墙应该也不是问题搬瓦工的防火墙上次被咱手动关掉的。。。。。
    SCGabriel
        24
    SCGabriel  
       2018-03-23 23:09:41 +08:00 via Android
    @codehz 咱去检查下是不是版本号问题,之前没弄个 uwp 的 mc,商店里买来好像就是给咱直接升级了最新的
    codehz
        25
    codehz  
    OP
       2018-03-24 00:25:47 +08:00
    @SCGabriel #23 不如试试 127.0.0.1 开服,我测试的时候都是本地测试的,还有就是可能是运营商对 udp 协议有 QoS 处理(
    https://imgur.com/a/lxR4m 正常是能看到这样的提示的
    codehz
        26
    codehz  
    OP
       2018-03-24 00:29:37 +08:00
    @SCGabriel #24 你可以来 tg bedrock_server 群组来获得更多信息(然后可以给我发 ip 我看看能不能诊断出什么问题(
    SCGabriel
        27
    SCGabriel  
       2018-03-25 14:36:56 +08:00
    如果有人是和咱一样是那种用腾讯云的 centos7,始终启动不了 docker,可以按照这个教程升级系统内核,docker 就可以正常运行了
    https://blog.csdn.net/qq_28347599/article/details/70768522
    QDavid
        28
    QDavid  
       2018-04-27 00:57:17 +08:00
    @codehz 大佬我在后台输任何命令,都报一大堆错,求问怎么解决
    ![]( https://s1.ax1x.com/2018/04/27/C3GgTf.png)
    QDavid
        29
    QDavid  
       2018-04-27 01:20:36 +08:00
    @codehz 试了下能成功连上,但是没法把橡木分解成原木= =背包里的合成台有问题,版本 1.2.13
    QDavid
        30
    QDavid  
       2018-04-27 01:27:55 +08:00
    SCGabriel
        31
    SCGabriel  
       2018-04-27 09:27:34 +08:00 via Android
    @QDavid 这个 1.2.13 版本有 bug,你没发现所有自然的合成表都消失了嘛。题主目前也没有在 docker 里更新,等 1.3 大版本更新吧
    codehz
        32
    codehz  
    OP
       2018-04-27 10:13:00 +08:00
    @SCGabriel #31 不,我在等 1.5 大更新(这个更新破坏了一大堆东西
    SCGabriel
        33
    SCGabriel  
       2018-04-27 10:54:30 +08:00 via Android
    @codehz 那遥遥无期?感觉不用玩了
    codehz
        34
    codehz  
    OP
       2018-04-27 10:55:19 +08:00
    @SCGabriel #33 最新测试版就是 1.5.0.0,1.3 和 1.4 都被跳过了
    codehz
        35
    codehz  
    OP
       2018-04-27 11:16:07 +08:00 via Android
    @QDavid 再 pull 一下就好了
    QDavid
        36
    QDavid  
       2018-04-27 12:27:58 +08:00
    @codehz 666,晚上回去再试试
    QDavid
        37
    QDavid  
       2018-04-27 12:28:51 +08:00
    @SCGabriel 没有啊,点右上角的切换,能切出合成表
    QDavid
        38
    QDavid  
       2018-04-27 19:43:28 +08:00
    @codehz 还是不能分解木头,是不是 docker 里的版本号和客户端对不上
    codehz
        39
    codehz  
    OP
       2018-04-27 19:48:27 +08:00
    @QDavid #38 表示没遇到这个问题(版本不匹配是无法进入服务器的)。。。当然那个命令的问题已经解决了。
    你看看是不是存档的问题,比如使用了行为包
    QDavid
        40
    QDavid  
       2018-04-28 14:57:13 +08:00
    @codehz 没有呀,我直接 docker run 的,连配置都没动,就给了自己 op
    QDavid
        41
    QDavid  
       2018-04-28 15:00:12 +08:00
    @codehz 这样沟通效率挺低的= =方便加个微信或者 qq 嘛,我 qq 1218118777
    QDavid
        42
    QDavid  
       2018-05-01 19:31:12 +08:00
    @codehz 各种姿势开服都没法分解木头= =求解决呀
    SLKun
        43
    SLKun  
       2018-05-07 21:58:45 +08:00
    @QDavid 我用了 aur 里面的 pkgbuild 完整编译了一份 mcpelauncher 没这个问题诶
    你要不自己重新编译一份试试看?
    codehz
        44
    codehz  
    OP
       2018-05-07 22:05:36 +08:00
    @QDavid https://github.com/codehz/mcpe-server-script 来试试这个,用法 先 clone 然后 ./build.sh && ./extract.sh (mcpe x86 apk 的路径) && ./run.sh
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6059 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 02:37 PVG 10:37 LAX 19:37 JFK 22:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86