当前位置:   article > 正文

脚本在xshell上如何运行_如何在CentOS7上原生运行Minecraft Bedrock服务器并结合Multicraft管理...

minecraft服务器shell启动脚本

前言:目前主流开服教程基本是Ubuntu+Screen来运行Minecraft Bedrock服务器,CentOS7很少。本文适用于服务器为CentOS7或是不适用于目前Ubuntu通用开服教程,且无法把vps更换为CentOS8+/Ubuntu的Linux腐竹们

本文将带你完成:

  1. 在CentOS7上原生运行bedrock服务器,不借助他人编译库包,或是wine [exe]

2. 不使用screen进行进程保留,使用Multicraft面板托管并前端管理bedrock服务器

先上效果

956612242ebfc0eb15275246d47e5734.png

1b9680a2c047f33da33dea17e7e66e1d.png

本人运行环境为Aliyun学生轻量应用服务器

第一部分 原生运行

本片段参照一位日本老哥的做法(原文链接: https://minecraft.server-memo.net/bedrock_server_install/)

总结了一下,CentOS7缺少以下几个库(的新版本)导致无法运行

  • openssl(libssl.so.1.1)
./bedrock_server: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
  • GCC 9.1.0+(GLIBCXX_3.4.20,GLIBCXX_3.4.21,GLIBCXX_3.4.22)
  1. ./bedrock_server: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./bedrock_server)
  2. ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./bedrock_server)
  3. ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./bedrock_server)
  4. ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./bedrock_server)
  5. ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./libCrypto.so)
  6. ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./libCrypto.so)
  • glibc(libm.so.6)
./bedrock_server: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./bedrock_server)
  1. openssl(libssl.so.1.1)

由于CentOS7主流的源并不带有所以这些库的新版本,这就需要手动make openssl

  • 编译准备:
  1. yum install gcc perl zlib-devel
  2. cd ~
  • 源码准备:
  1. wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz
  2. tar zxvf openssl-1.1.1c.tar.gz -C /usr/local/src/
  3. cd /usr/local/src/openssl-1.1.1c
  • 配置编译:
  1. ./config --prefix=/usr/local/openssl shared zlib
  2. make
  3. make install
  • 库更新:
  1. cd /etc/ld.so.conf.d/
  2. vi openssl-1.1.1.conf

添加文字

/usr/local/openssl/lib

保存,执行

ldconfig

可以执行

ldconfig -p  | grep libssl

看到了libssl.so.1.1就代表成功了

92adf15075922caa328bdcd1ee3e1517.png

2. (gcc)libstdc++

编译准备:

yum install gcc-c++ bzip2

源码准备:

这里建议去tuna镜像站看看版本(https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/)

演示使用9.1.0版本

  1. cd ~
  2. wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz
  3. tar zxvf gcc-9.1.0.tar.gz -C /usr/local/src/
  4. cd /usr/local/src/gcc-9.1.0/

前置软件准备:

编译gcc需要gmp,mpfr,mpc等前置软件,gcc源码下有自动下载脚本,但默认源对于aliyun貌似无法访问或是访问很慢,所以切到gcc源码目录之后,我们需要把默认前置脚本的源换成其他的源(所有官方源列表: https://gcc.gnu.org/mirrors.html)

这里推荐日本源

在gcc源码目录下执行

vi ./contrib/download_prerequisites

找到base_url:

3ef1947df51e141975cda68126ef64e7.png

改成

http://ftp.tsukuba.wide.ad.jp/software/gcc/infrastructure/

保存,执行

./contrib/download_prerequisites

然后就会开始下载前置库,中间可能下载失败,可以通过

./contrib/download_prerequisites --force

来进行重试

配置编译:

然后就可以进行编译了

  1. mkdir build
  2. cd build/
  3. ../configure –enable-languages=c,c++ --prefix=/usr/local –disable-bootstrap –disable-multilib
  4. make

这一项需要挺久时间,请耐心等待

然后安装

make install

库更新:

  1. cd /etc/ld.so.conf.d/
  2. vi gcc-9.1.0.conf

添加文字

/usr/local/lib64

保存,执行

ldconfig

执行

ldconfig -p | grep libstdc++.so.6

可以看到

1b75955377ff01a367033a3bdfd2ced1.png

执行

strings /usr/local/lib64/libstdc++.so.6 | grep ^GLIBCXX_3.4.2 | sort | uniq

4d29491dae24372775c34e62728a49de.png

可以看到这里就有我们需要的GLIBCXX_3.4.2x了

3. glibc(libm.so.6)

编译准备:

执行

 yum install bison

同时我们需要暂时升级到python3.6+,为什么是暂时?因为升级后yum可能出现问题,我们只需要python3.6来编译一次

这里可以通过yum安装,添加IUS源

原文的链接已经过时,新的ius安装命令为

  1. yum install
  2. https://repo.ius.io/ius-release-el7.rpm
  3. https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

完成后

yum install python36u python36u-libs python36u-devel python36u-pip

然后进行暂时性替换

  1. update-alternatives --install /bin/python python /usr/bin/python2.7 1
  2. update-alternatives --install /bin/python python /usr/bin/python3.6 2
  3. update-alternatives --config python

输入2回车

这时你可以通过python –version查看,已经是3.6+了

完成python替换后需要升级make到4.+

这里还是使用国内的tuna源(https://mirrors.tuna.tsinghua.edu.cn/gnu/make/)

  1. cd ~
  2. wget https://mirrors.tuna.tsinghua.edu.cn/gnu/make/make-4.3.tar.gz
  3. tar zxvf make-4.3.tar.gz –C /usr/local/src
  4. cd /usr/local/src/make-4.3
  5. ./configure --prefix=/usr/local/make-4.3
  6. make
  7. make install

替换make

  1. mv /usr/bin/make /usr/bin/make-3.82
  2. update-alternatives --install /usr/bin/make make /usr/bin/make-3.82 1
  3. update-alternatives --install /usr/bin/make make /usr/local/make-4.3/bin/make 2
  4. update-alternatives --config make

选择4.3

查看版本

make –v

cb6926025061183078578d101dd5f253.png

源码准备:

这里仍然使用tuna源

  1. wget https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/glibc-2.31.tar.gz
  2. tar xzfv glibc-2.31.tar.gz -C /usr/local/src
  3. cd /usr/local/src/glibc-2.31
  4. mkdir build
  5. cd build

配置编译:

  1. ../configure --prefix=/usr/glibc-2.31
  2. make
  3. make install

注意,这个库不要进行系统替换或链接!

现在可以把python换回2.x版本了

update-alternatives --config python

选择旧版本

174a3b5f4f58ed442d1fdba4fbba59aa.png

到此,所有前置库安装完成

可以进行bedrock_server的配置

前往https://www.minecraft.net/zh-hans/download/server/bedrock

右键选择复制链接地址

45e5ae6df843e3d7d80a463d314de0b6.png

我写这个的时候服务器版本为1.16.1

为了安全起见,同时为了对应multicraft,这里我们创建用户minecraft

  1. useradd minecraft
  2. passwd minecraft

切换到用户

su minecraft

下载并解压

  1. cd ~
  2. mkdir bedrock
  3. cd bedrock
  4. wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.16.1.02.zip
  5. unzip bedrock-server-1.16.1.02.zip

把刚刚编译完但没有引用到系统的库复制过来

cp -p /usr/glibc-2.31/lib/libm.so.6 .

然后就可以使用官方的开服指令

LD_LIBRARY_PATH=. ./bedrock_server

便完成了首次运行

f01566c52787d1743956594a3b47a4e6.png

第二部分 multicraft结合

很多教程到这里就开始教你screen之类的东西了,我这里开始不一样,先介绍下使用multicraft的原因

Multicraft可以说是一个老牌面板,老腐竹应该挺熟悉,卖服也是很方便,它允许前端控制服务器,有人可能跟我说mcsm,那个需要nodejs+screen,我这就是要脱离ssh screen,并且听说不好卖服(虽然我不卖),所以这里不做考虑

要使用multicraft这里有一堆前置操作

Nginx,SSL,PHP,tcp_bbr(可选),我这不进行讲述,老vps玩家应该都会,新的就自己去查资料

Multicraft的安装我这也不进行赘述,网上有很多相关教程

现在讲讲如何在一个正常运行的multicraft上开bedrock服务器

切换到minecraft用户

  1. cd ~
  2. cd bedrock
  3. vi start.sh

然后输入

cd /home/minecraft/bedrock && LD_LIBRARY_PATH=. ./bedrock_server

如图

e0246426489de6d8f51b29cb27706ee1.png

保存退出

进入multicraft daemon后端安装目录/jar

新建一个bedrock_server.jar(只是占位用的)

bedrock_server.jar.conf

打开bedrock_server.jar.conf

a2637c42ea909c180fd5e92a56b70716.png

输入

  1. [config]
  2. name = Minecraft Bedrock Edition Native Server
  3. [encoding]
  4. encode = system
  5. decode = system
  6. fileEncoding = latin-1
  7. [start]
  8. command = /usr/bin/sh /home/minecraft/bedrock/start.sh
  9. [settings]
  10. restartOnTimeout = True
  11. pingTimeout = 20000
  12. pingInterval = 15000
  13. crashRestartDelay = 2000
  14. [commands]
  15. say = say
  16. list = list
  17. save-all = save
  18. stop = stop
  19. tell = tell
  20. give = give
  21. tp = tp
  22. deop = deop
  23. op = op
  24. pardon-ip = pardon-ip
  25. ban-ip = ban-ip
  26. pardon = pardon
  27. ban = ban
  28. kick = kick
  29. help = help

166f529fab05ca49470b47a8e69129c0.png

保存,然后multicraft就会有这个可选项了

abd1119cbb8df7b4211b233f87bd6f66.png

选上便可进行开服

由于bedrock服务器文件目录限制在自己的文件夹,所以multi这边的人数限制等服务器配置不会对你自己服务器配置产生影响同时multicraft部分操作默认状态下将会不可用,需要配置自己的服务器可以前往/bedrock/server.properties

在这里插点个人的广告:

我完成了原生Android的进程音量控制,或者说app音量,酷安链接

[Magisk]应用音量控制器(AudioHQ)(io.alcatraz.audiohq) - 0.8_2020_5_13_play_stable_4_b704c0b - 应用 - 酷安网​coolapk.com
a4981180aa5526fa05a364d073f29ab3.png

还有Android手机上的Chrome Devtools(非Eruda,原生Devtools),链接

Alcatraz323/F12Browser​github.com
fd158e5b3a97b569a4bf16ede91969c3.png

本人酷安id: Decontamination

Github:https://github.com/Alcatraz323

欢迎浏览我的其他项目

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/173107
推荐阅读
相关标签
  

闽ICP备14008679号